본문 바로가기

Observability/성능테스트

[성능테스트]성능 테스트의 목적 / 종류 / 지표 / 용어 정리

성능 테스트 목적

성능 테스트는 시스템이 특정 상황에서 얼마나 잘 작동하는지 확인하기 위한 테스트입니다. 이 테스트를 통해 시스템의 한계와 필요한 리소스를 파악할 수 있습니다.

최대 TPS는 어느정도 인지?

  - 최대 TPS를 파악한 뒤 WAS의 work thread 개수를 설정한다.

  - work thread와 active user수를 일치시키면 최적의 TPS를 이끌어 낼 수 있다.

      - TPS = Active User / Response Time

시스템 리소스는 얼마나 필요한지?

성능 측정 ↔ 결함 검출 ↔ 병목 제거 ↔ 용량 검증 - 반복

성능 측정

시스템이 운영 전에 적정한 성능을 내는지 확인

결함 검출

시스템 운영 상태에서 나타날 수 있는 문제를 사전에 진단

병목 제거

검출된 결함에 대한 조치 진행

용량 검증

운영 시스템의 용량이 peak 시 업무를 처리할 수 있는지 확인

성능 테스트 종류

목적에 따른 분류

단위 성능: 하나의 성능만 테스트

임계 성능: 시스템이 어디까지 버틸 수 있는지 측정

통합 성능 테스트: 전체 시스템의 성능을 평가

방법에 따른 분류

Loop Back: 영향이 가면 되는곳까지만 테스트 진행

Spike: 이벤트성 부하 테스트 → 타임세일, 쿠폰 결제

성능 지표

용어 정의

명확히 단어정리를 하고 시작하는것이 좋다

Response Time - 응답 시간

사용자가 request한 시점에서 시스템이 Response할 때까지의 시간

Visit Time - 방문시간

요청 주기(Request Interval), Think Time

Active User

Request 요청을 하여 응답을 기다리는 사용자

Active User = TPS * Average Response Time

Throughput - 처리량

단위: tph, tpm, tps, pps, rps, hit/sec

Throughtput = Number of Request / Measure Time

Saturation Point - 임계점

최대 TPS가 나타나는 최초의 지점

Saturation Point가 넘어 사용자가 몰리면 TPS는 고정된 상태에서 응답시간이 길어진다.

성능테스트 계산식

HPS(hit per second) = 시스템이 처리할 수 있는 모든 웹 요청의 초당 처리

TPS

TPS = Active User / Average Response Time(s)

Active User = TPS * Average Response Time(s)

Active User

TPS = Active User / Average Response Time(s)

  - TPS = Concurrent User / Request Interval

      - Active User = Concurrent User * Response Time / Request Interval Time

Request Interval Time = Response Time + Think Time

  - Active User = Concurrent User * Response Time / (Response Time + Think Time)

Concurrent User

TPS = Active User / Average Response Time(s)

Active User = Concurrent User * Response Time / (Response Time + Think Time)

  - Concurrent User = Active User * ( 1 + (Think Time / Response Time))

      - Concurrent User = Active User + (TPS * Think Time)

          - Concurrent User = TPS * (Response Time + Think Time)

e.g. 목표 TPS구하기

Concurrent User = 2000

Average Response Time = 0.5s

Think Time = 10s

수식: Active User = Concurrent User * Response Time / (Response Time + Think Time)

Active User = 2000 * 0.5 / (0.5 + 10) = 95.23 = TPS(s)

'Observability > 성능테스트' 카테고리의 다른 글

[Database]Buffer Cache Hit Ratio 감소  (0) 2023.12.10