성능테스트

cch_chan·2022년 5월 11일
0

DevOps

목록 보기
9/19

Throughput과 Latency

시스템 성능 지표의 주요 메트릭은 Throughput(처리량)과 Latency(대기시간) 입니다.

Throughput
시간 당 처리량을 의미합니다. 웹 애플리케이션 성능 지표로서의 throughput의 대표적인 예는 다음과 같습니다.

  • 1초에 처리하는 HTTP 요청 수 (rps)
  • (동영상 스트리밍 서비스와 같이 대역폭이 중요한 경우) 네트워크로 전송되는 데이터 전송 속도

Latency
처리 시간을 의미합니다.

사용자가 어떤 웹페이지를 보기 위한 Latency는 사용자의 인터넷 환경, 브라우저 등의 개별 환경에 대한 변수가 존재합니다.
즉, "네트워크를 통한 데이터 왕복 시간"도 포함합니다.
그러나 성능 테스트를 진행할 때에는, 사용자 환경에 따른 변인을 통제하거나, 네트워크 상황을 고려하지 않고 테스트를 진행합니다.

Throughput과 Latency를 고속도로로 표현한 이미지

여기서 Latency는 서울->부산 까지가는 시간인 5시간이 소요
Throughput은 각 구간에 도달하는 차량 대수 중 최소값인 800대/시간이 됨
-> 서울에서 대구에서는 1000대가 지나갈 순 있어도 대구에서 부산에서 결국 병목현상이 일어나기 때문에 의미가없음

Throughput 개선
개선을 위해서는 병목 구간이 어디인가를 먼저 파악하는 것이 가장 중요
위 이미지에서 Throughput 개선을 하기 위해서는 대구 부산에 처리량을 늘려야함

Latency 개선
2가지 방법이 있음

  • 애플리케이션 개선
    -> 애플리케이션 성능 최적화는 현상을 파악(APM, Application Performance Monitoring)하는 것으로 시작하여 알고리즘 개선, I/O 최소화 등의 개선 방안이필요

  • (애플리케이션 성능 향상을 위한) 하위 시스템의 확장
    -> 고속도로의 예를 살펴보면 처리량이 부족하면 대기시간이 늘어 날수 있기 때문에 애플리케이션이 실행 환경(하위 시스템)의 성능을 최대한 활용할 수 있다면, 하위 시스템의 확장에 따라 Throughput도 개선되며, 대기 시간도 줄어듭니다. 즉 많은 경우 Throughput이 개선되면 Latency도 개선됩니다.


Action Items

Q. AWS에서는 버스트 가능한 인스턴스의 경우, CPU 성능을 적게 사용하는 평상시에는 "크레딧"을 누적했다가, 단기간의 사용자 요청 증가와 같이 CPU 사용량이 증가할 경우, 모아둔 크레딧을 성능을 끌어올리는 용도로 사용할 수 있습니다. 이 때 잔고에 충분한 크레딧이 있어야 합니다. 그렇지 않을 경우 100%의 CPU 성능을 제공하지 못하여, 파열(burst)에 이르며, 시스템 사용 불능 상태가 됩니다. 어떠한 메커니즘으로 작동하는지 한번 알아보세요.

아마존 t타입 ec2에는 baseline이라는게 존재하고 이 베이스라인을 기준으로 베이스라인을 오버하면 크레딧을 소모하여 성능을 끌어 올리고 베이스라인보다 낮으면 크레딧을 충전하는 형태입니다. 여기에는 최대로 쌓을 수 있는 크레딧이 존재하고 t2는 일반모드, t3는 무제한모드로 일반모드에서는 Burst가 일어 날 수 있지만 무제한모드에서는 aws에서 부족한 크레딧을 빌려주고 추가 결제로 해결 할 수 있다는 차이가 있습니다.

즉 이러한 메커니즘을 고려해 cpu 사용량을 조절을 잘해야 burst현상을 막을 수 있습니다.


번외) 기본적인 데이터 상식

  • MB와 Mb는 어떻게 다른가요?

    • 메가 비트는 Mbps 로 표기됩니다 .
    • 메가 바이트는 MBps 로 표기됩니다 .
    • 메가 비트(Mb)는 다운로드 및 업로드 속도를 측정하는 데 사용됩니다.
    • 메가 바이트(MB)는 파일 크기를 측정하는 데 사용됩니다. 측정은 저장 장치를 참조하든 파일 전송을 참조하든 동일합니다.
    • 메가 바이트에는 8 메가 비트가 포함 됩니다. 1MB=8mb
  • MB와 MiB는 어떻게 다른가요?
    MB는 메가바이트 MiB는 메비바이트라고 읽고
    MB 10진수로 사람이 보기 좋은 숫자이고 MiB는 2진수로 나타낸 것

  • 1GB 파일을 100Mbps 의 전송속도를 가진 네트워크에서 전송한다면 얼마나 걸릴까요?
    1GB = 1000MB
    100Mbps = 12.5MBps
    1000/12.5 = 80
    80초가 걸립니다.

  • 1GiB=1024MB

profile
꾸준히 새로운 기술을 배워나가는중입니다.

0개의 댓글