성능테스트 – 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응답시간 분석

댓글