devops

부하 테스트와 가용성 확장성 본문

DevOps

부하 테스트와 가용성 확장성

vata500 2022. 7. 20. 13:41
반응형

가용성과 확장성

https://blog.sqlauthority.com/2018/07/12/scalability-and-availability-challenges-and-shareplex-solutions/

가용성(Availability)는 시스템이 정상적으로 사용 가능한 정도를 의미한다. 정상 사용시간(Uptime)을 정상사용시간과 사용불가시간(Downtime)을 합친 전체 사용시간으로 나눈값을 표현한다.

가용성 99.95%는 1년에 4시간 22분의 다운타임이 된다. 서비스 사용 불가시간을 최소로 하는 것이야말로, 더 높은 가용성을 달성하는 것이다.

또한, 가용성의 핵심으느 단일 장애점(Single Point of Failure)를 없애는 것이다. 어떤 한 노드가 장애가 발생하더라도, 다른 노드가 대체할 수 있어야한다. 이것을 시스템 확장이라고 말한다.

확장성(Scalability)은 요구되는 시스템의 성능에 따라서 동적으로 서버 구성이 변경되고, 시스템 처리 능력을 최적화할 수 있는 것을 의미한다.

  • 수직 확장(Scale up) : 하나의 머신에서 메모리, CPU를 늘리는 것
  • 수직확장(Scale out) : 머신의 인스턴스 수를 늘리는 것

수직 확장은 타운 타임이 발생하여 가용성이 떨어지는 한계가 있으므로, 수평 확장이 비교적 선호되는 편이다.


부하 테스트

부하 테스트를 하는 목적 in 클라우드

  • 시스템 확장성 확인
  • 성능 개선을 위해 확장해야하는 시스템 확인
  • 부하 발생시 문제 대응
  • 병목 지점 예측하여 진단 및 개선

확장성 특징 파악

Throughput은 시간 당 처리량을 의미하며, 시스템의 성능 지표는 RPS(Request per second), TPS(Transaction per second)와 같은 단위로 표현된다.

Throughput은 데이터 전송량에 포커스를 둔 지표다. 볼륨 성능 측정은 IOPS(Input/Output per second)라는 단위를 사용한다. 성능 측정 시, 인프라 내의 구성요소로 구분된 각 요소를 구분하지 않고 통합하여 작업이 얼마큼의 Throughput을 갖는지 측정한다.

부하가 많이 발생할 때 다음과 같은 문제가 발생한다.

  • 응답 속도(Latency) 저하
  • 시스템 잠금(Lock) 경합
  • 어플리케이션 및 서버 에러 발생
  • 데이터 일관성 문제와 손실

 

 

 

반응형
Comments