성능테스트 개념 정리

sunny·2022년 11월 22일
0

성능을 검증해야 한다면 어느 부분을 테스트 해야 할까?

어플리케이션
TPS : Transaction Per Second
응답시간 : Response Time

미들웨어
Message Queue
Database
Web Server

인프라
CPU
Memory
Disk IO
Network IO

성능테스트에 혼용되는 테스트를 정리해본다.

성능테스트 performance test

특정 상황에서 시스템의 구성 요소가 어떻게 수행되는지 확인하기 위해 수행하는 테스트
제품의 리소스 사용, 확장성, 안정성을 확인한다.
결함을 찾는 테스트가 아니기 때문에 pass/fail이 나올 수가 없다.
데이터베이스, 네트워크, 소프트웨어, 하드웨어 등과 관련될 수 있는 성능 문제를 예측하고 테스트를 수행한다.

부하테스트 load test = volume teset, endurance test

임계값 한계에 도달할 때까지 시스템의 부하를 지속적으로 증가시켜 시스템을 테스트한다.
웹서버, db, 인프라 등 모든 요소의 임계치를 찾아 미래를 대비한다.

부하테스트의 결과로
버퍼오버플로우, 메모리누수, 메모리문제로 발생되는 어플리케이션의 결함 노출,
로드밸런싱문제, 대역폭 문제, 시스템용량 문제 등 발생

스트레스 테스트

기존 자원에 과부하시키는 다양한 활동을 수행해서 시스템을 무너뜨리는 시도를 한다.
이때 시스템이 무너졌을때 발생하는 오류와 어떻게 정상복구되는지 모니터링 하는 것이 목표임.
오류 시 로그가 잘 찍히고, 모니터링이 되고, 민감정보가 노출되지 않고, 장애복구가 잘 되는지 확인해야 한다.

스트레스 테스트의 결과로
동기화 문제, 메모리 누수 등 발생

부하테스트와 성능테스트는 혼용해서 사용하지만 동일하지 않다.
목표와 목적, 테스트해야 할 범위, 속성이 다르다.

또한, 부하테스트를 할때 스트레스 테스트를 함께 하는 경우가 많은데,
서로 분리해서 수행되어야 한다.

용어

임계점 = 포화점 saturation point
임계점에서 얻은 최대 처리량은 실제 최대 성능으로 보면 안됨
비즈니스 관점에서 최대처리량을 재정의하고 여유를 두어야함

버클존 Buckle zone
시스템 과부하로 최대 처리량보다 더 떨어지는 구간
임계점 이후에 발생

워크로드 workload
주어진 시간동안 컴퓨터가 처리한 일의 양
웹에서는 http요청이 워크로드의 역할을 함

메트릭 metric
응답시간 response time
출력량 throughput
TPS Transaction Per Second
CPU의 연산속도

성능모니터링 툴

  • 제니퍼, Scouter, Pinpoint

성능 테스트 툴

  • Jmeter, NGrinder, LoadRunner
profile
Believe in yourself :)

0개의 댓글