devops
부하 테스트와 가용성 확장성 본문
가용성과 확장성
가용성(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) 경합
- 어플리케이션 및 서버 에러 발생
- 데이터 일관성 문제와 손실
'DevOps' 카테고리의 다른 글
DevOps와 SRE는 무슨 차이가 있는 걸까 (0) | 2022.09.14 |
---|---|
Throughput, Latency 그리고 병목 구간 (0) | 2022.07.20 |
서비스 수준 용어 (0) | 2022.07.19 |
DevOps에서 모니터링(Monitoring) 정의 및 분류 (0) | 2022.07.13 |
가변적 인프라, 불변적 인프라 차이와 Terraform 선언적 방식과 상태 (0) | 2022.06.24 |