성능 테스트 개념 정리
성능 테스트 용어 정리
트랜젠션
- 화면 조작을 통한 Request발생~Response를 받기까지의 동작을 의미
TPS
- 1초에 처리할 수 있는 트랜젝션 수를 의미하며 성능 테스트의 중요한 지표
응답시간
- Request~최종화면 표시까지 걸리는 시간이며 영향을 주는 변수들이 많아 지표로서는 좋지 않으나, 사용자들이 직접 체감하는 지표이므로 같이 측정을 해 준다.
성능 테스트 종류
-
부하 테스트(Load Test)
- 목표 성능 도달 여부를 측정하기 위함(realse할때 사용)
- 우리 사이트가 출결이면 최소 동시접속 80명까지는 가능해야 함
- 성능 목표치는 요구사항에서 주어지며 이를 도달하지 못하면 도달을 위한 개선작업 필
-
스파이크 테스트(Spike Test)
- 일시에 부하가 몰릴때 시스템이 버틸 수 있는지 체크
- 수강신청 시스템처럼 일시에 부하가 몰릴것을 가정했을때, 이때 부하 가정 시나리오를 수강신청 모델을 사용한다.
- 한계 성능 테스트
-
신뢰성 테스트(Stress Testing)
성능 테스트 수행 흐름
- 사용자 프로파일 분석
- 수행할 성능 테스트 종류 결정
- 시스템 구조 분석
- 시나리오 준비
- 테스트 수행
- 결과 분석
성능 테스트 도구
- 상용
- 오픈소스 점유율비교
- Jmeter
- nGrinder
- Naver에서 Grinder를 베이스로 제작한 성능 테스트 툴.
- Locust
Jmeter 다운로드 및 설치
jmeter설치
jmeter-plugins설치
- 다운받아서 jmeter 디렉터리안에 lib/ext밑에 파일을 복사해야 한다.
- 3 basic graph, jpge-standard set 설치
참고
프로젝트 수행 안내
간단한 구조로 진행
- Jmeter Server-Client같은 구조를 사용하지 않습니다.
- 본인 PC에서 수행함.
가급적 Jmeter 버전은 5.x로 진행
성능 측정은 1학기때 수행한 관통 프로젝트중 랜딩 페이지(제일 처음 나오는 페이지)를 대상으로 수행합니다.
측정은 active user 100부터 20씩 올려서 진행합니다.. 예를 들어 아래와 같이 측정되었다면 이 경우 한계 성능은 160tps 입니다.
active user | 서비스 |
---|
100 | 죽지않음 |
120 | 죽지않음 |
140 | 죽지않음 |
160 | 죽음 |
실습
기존 진행한 프로젝트의 부하테스트
- 대상 시스템의 개략적인 한계 부하(TPS) 측정 결과
- 한계 부하 당시의 CPU, MEM 점유율
한계부하 기술
한계 부하 발생후의 그래프
-
TPS그래프
-
응답속도 그래프
-
유저 쓰레드 그래프