성능테스트 – Little’s law 포함
태그 :
- 개념
- - 사용자가 시스템을 사용하기에 성능상 문제가 있는 지를 검증하여 개선하기 위한 테스트
I. 성능테스트의 개요와 원리 Little’s law
가. 시스템 테스트의 정의
- 사용자가 시스템을 사용하기에 성능상 문제가 있는 지를 검증하여 개선하기 위한 테스트
나. 소프트웨어 성능 테스트의 기본 원리 Little’s law
- ‘공간 내에 머무는 객체 수(L)’는 ‘객체의 공간유입량(λ)’과 ‘객체가 머무는 시간(W)’에 비례한다. 즉 L = λW이다.
- 시스템의 성능(TPS)는 트랜잭션을 발생시키는 사용자(Active User)를 평균응답시간(Mean Response Time)으로 나눈 값이다.
- TPS(Transaction Per Second) = AU(Active User) / MRT(평균응답시간(Mean Response Time))
- TPS = CU(동시사용자) / Request Interval(응답시간 + Think Time)
- Active User : 실제로 서버에 트랜잭션을 일으키는 사용자
- CU(Concurrent User) : Active User + InActive User, 즉 실제로 트랜잭션을 일으키는 사용자와 그렇지 않은 사용자를 모두 포함함.
- TPS(Transaction Per Second) : 초당 트랜잭션 횟수. 즉, 초당 몇 개의 트랜잭션을 처리할 수 있는가는 나타냄.
다. Little’s Law을 통한 성능 테스트의 목적
ㄹ. 성능테스트의 환경
- 성능 테스트 Controller : 성능 테스트 스크립트 작성 및 부하 분산의 주체
- 성능 테스트 Agent : Controller로부터 지시를 받아서 실제 부하는 발생 시키는 Agent PC
- 로그 수집기 : 성능 테스트를 수행하면서 발생하는 로그를 실시간으로 수집하는 PC
II. 성능테스트의 종류 및 구성요소
가. 성능테스트의 종류
분류 기준 |
성능 테스트 |
설명 |
목적 분류 |
단위 성능 테스트 |
대상 시스템을 업무 단위로 각각 테스트 수행 |
복합 성능 테스트 |
실제 사용자 사용패턴을 적용하여 동시 사용자 및 가중치를 주어 실제시스템이 사용되는 상황을 재현하여 테스트 수행 |
|
임계 성능 테스트 |
시스템이 최대한 발휘할 수 있는 성능 측정 |
|
방법 분류 |
루프백 테스트 |
시스템의 특정 지점 이후로 발생하지 않도록 하는 테스트 방법(병목지점 도출 목적) |
스파이크 테스트 |
사용자 트랜잭션을 동시에 발생시켜 점검하는 테스트 |
|
확장성 테스트 |
확장계수를 산정하여 확장성 보장 여부 테스트 |
|
가용성 테스트 |
트랜잭션을 특정 기간 동안 발생시키면서 시스템 상황 점검 및 테스트 |
나. 성능테스트의 구성요소
구성요소 |
세부 구성요소 및 설명 |
성능 테스트 조직 |
- 성능 테스트 의뢰자, 성능 테스트 관리자, 성능 테스트 실행자, 인프라 담당자, 업무 개발자 |
성능 테스트 대상 |
- 소프트웨어, 서버 및 시스템 인프라등 |
성능 테스트 도구 |
- 테스트 자동화 도구, 부하 솔루션등 |
성능 테스트 스크립트 |
- 성능 테스트 도구에 따른 성능 테스트용 스크립트 - 웹(Html), Unix(shell script), Windows(bat) 파일 등 |
성능 지표 |
- 전체사용자(Named User): 대상 소프트웨어를 사용하는 모든 사람 - 동시사용자(Concurrent User): 특정 시점에 대상 시스템에 접속하여 서비스를 사용하고 있는 사용자 - 부하(Load): 대상 소프트웨어를 동시에 사용하는 사용자, 사용자가 서버에 요청하는 Request들을 의미 - 응답시간(Response Time): 사용자가 서버에 서비스를 요청한 후 그에 대한 응답을 받을 때까지 걸리는 시간 - Think time : 사용자가 서비스를 제공받은 뒤 다른 서비스를 요청할 때까지 걸리는 시간 - 호출간격(Request interval) : 호출간격= Response time + Think time - 처리량(Throughput): 시스템 측면에서 대상 시스템에 대한 성능을 평가하는 KPI, 단위 시간당 대상 시스템에 의해서 처리되는 요청건수 |
다. 성능지표 상세(처리량)
- 성능 테스트 시 처리량을 측정하며, 처리량은 리소스 별로 단위가 다름
구분 |
처리량 단위 |
CPU |
MIPS(Millions of Instructions Per Second) MFLOPS(Millions of Floadting-Point Operations Per Second) |
Network |
PPS(Packets Per Seconds) BPS(Bits Per Seconds) |
하드웨어 벤더 |
TPC(Transaction Processing Performance Council)에서 규정한 TPMC |
Main Frame, C/S시스템, TP-Monitor 시스템 |
TPS(Transaction Per Seconds) |
III. 성능지표 간의 상관관계
가. 이상적인 TPS와 성능 지표간 상관관계 그래프
- 대표적인 TPS와 응답시간, TPS와 자원 사용량간의 상관 관계
- 이론적으로 가장 이상적인 경우 TPS가 높아지는 경우 자원 사용량이 증가되고, 일정한 수준의 응답시간을 가져야 됨
나. 실제 측정 시 TPS와 성능 지표간 상관관계 그래프
- 실제 TPS를 증가시키는 경우 자원 사용량 간의 상관 관계
- 실제 성능 측정을 진행하면 자원 사용량이 급격하게 증가하다가, 일정수준(임계점: Saturation Point)에 도달하면 증가폭이 감소함
- 주요 원인으로는 균등한 부하 발생 문제, 네트워크 상태, 시스템 내 BUS 크기, caching 등의 원인이 될 수 있음
다. 응답시간과 처리량의 상관관례
- Light Zone에서의 응답시간은 일정하게 유지
- Heavy Zone 에서의 응답시간은 동시 사용자가 늘어나면 응답시간도 증가
- 이때 동시 사용자 수가 최대 허용 동시 사용자
IV. 성능테스트의 절차
절차 |
세부 절차 |
활동 |
분석 |
요구 사항 분석 |
- 요구사항 분석 - 요구사항 수집 - 현행 시스템 설명 |
프로젝트 수행 계획 수립 |
- 적용 기술 검토 - 일정 계획 수립 - 투입 자원 계획 수립 |
|
설계 |
성능 목표 수립 |
- 현행 목표 수립 - 현행 성능치 산정 - 목표 성능치 산정 |
이행 절차 수립 계획 |
- 성능 측정 대상 선정 - 성능 측정 절차 계획 - 성능 측정 조건 계획 - 자원 감시 기술 검토 |
|
자원 감시 방안 설정 |
- 테스트 성공 기준 설명 - 테스트 데이터 설명 - 테스트 도구 설명 - 테스트 스크립트 작성 |
|
이행 |
이행 준비 |
- 성능 테스트 시간 계획 - 시스템 인프라 구성 점검 - 성능 테스트 최종 점검 |
성능 테스트 이행 |
- 단위 성능 테스트 수행 - 통합 성능 테스트 수행 - 임계 성능 테스트 수행 |
|
평가 |
성능 테스트 결과 분석 |
- 성능 테스트 결과 수집 및 결과 분석 |
성능 테스트 결과 보고 |
- 성능 테스트 분석 결과 정리 및 보고 |
V. Little’s Law를 적용한 성능 테스트 결과 분석 방법
- 가상 사용자가 증가함에 따라서 응답시간이 느려지고 TPS는 증가한다.
- TPS가 더 이상 증가하지 않고 완만하게 되는 시점이 그 시스템의 임계치임.
- 운영서버의 임계치 분석
- 튜닝 포인트 분석 : 서버, DBMS, 미들웨어, 네트워크, Client PC등의 튜닝 포인트 분석
- 향후의 성능 위험요소 분석 : 서버 증설, 환경 설정 변경으로 인한 위험요소 분석
- 튜닝의 향상 효과 분석 : AS-IS 응답시간과 TO-BE응답시간 분석