[성능테스트 따라잡기-01] 성능테스트 관련 주요 개념의 이해
[들어가며]
몇 일전 HP에서 주관하는 행사인 HP Solution World 2007 에 참석했다.
IT transformation to BT 를 주제로 한 세미나에서는 IT가 현업의 업무기반 시스템에서 발전하여 현업의 전략을 주도하는 핵심 기술로의 변모를 추구해야 한다는 이야기와 이를 대비한 HP 솔루션에 대한 세미나였다.
회사의 프로젝트 테스트 방안에 대한 고민으로 컨설팅 박스에서 상담을 하던차에 선물로 받은 책 한권이 인상적으로 다가왔다.
<“성능테스트 방법론과 실무” / 박성훈, 유성곤, 이원영 / 한빛미디어>
성능테스트의 효과적인 수행방안에 대해 이야기하고 있는 책의 내용이 만족스러워 블로그를 통해 함께 나눠보고 싶었다.
—————————————————-
I. 성능테스트 관련 주요 개념의 이해
저자는 최근 품질에 대한 관심으로 성능관련 분야가 이슈가 되고 있지만, 짧은 기간에 따라 용어의 혼선을 초래하여 오히려 성능테스트의 이해에 대한 어려움이 늘어나고 있다고 말하면서 우선 용어정의를 내렸다.
*전체사용자(Named User)
– 컴퓨터 시스템을 사용하고 있는 모든 사람들
> ERP/CRM등 인트라넷기반의 시스템에서는 쉽게 파악 but 포탈/인터넷뱅킹 등
웹기반 불특정 다수 대상 시스템의 경우 파악 곤란
> 부하량 언급때 보다는 주로 인트라넷(ERP/CRM 등) 기반의 시스템 규모를
언급할 때 사용
[그림1-1]
*동시사용자(Concurrnet User)
– 특정시점하에서 대상 시스템에 현재의 부하(Load)를 주고 있는 사용자
> 부하를 결정하는 중요한 수치로 사용 & 가상사용자 수 결정 기준
> Active User와 Inactive User의 합으로 표현
.Active User: 현재 시스템에서 처리되고 있는 요청의 사용자
.Inactive User: 시스템에 연결되어 있지만 요청을 보내지 않고 놀고 있는 사용자
(메인프레임, C/S, TP-Monitor기반의 경우 A/Ia를 명확히 구분가능 but 웹기반 시스템은 http 특성상 불가능)
[그림1-2]
*부하(Load)
– 특정시점에 시스템을 사용하고 있는 동시사용자를 일컫는 용어
> 동시사용자의 수에 따라 Lightly Loaded 시스템과 Heavily Loaded 시스템으로
구분
cf) 피크부하: 피크일자에서 피크 시간대의 가장 높은 부하를 나타낸 것
(대상 시스템의 용량산정이나 성능시험의 비교기준이 될 수 있는 중요한 수치항목)
*응답시간(Response Time)
– 사용자의 요청 내용을 처리하기 위해서 소요된 총 시간
(요청 à 서버처리 à 화면디스플레이)
> 사용자측면에서 시스템의 성능을 평가하는 KPI
> 응답시간은 구분기준에 따라 다양하게 구성
.소요시간 별 구분
à R.Time = Service Time + Queuing Time
.Tier 별 구분
à R.Time = Network Time + AP Server Time + WAS Time + DB Time
(Tier별 구분은 응답지연원인 분석에 효과적이며 상용 APM툴에서 기능제공)
[그림 1-4]
– 응답시간은 가장 대표적인 성능지표지만 한계점 있음
> 한 사용자의 응답시간 측정에 현재 시스템의 동시사용자 수와 밀접한 연계성 결여
> 따라서, 응답시간은 반드시 대상시스템의 동시 사용자 수와 함께 언급해야 함
but 동시사용자수를 실시간으로 분석하는 것은 어려움.
cf) 소요시간(Elapsed Time): 해당 배치작업을 수행할 때 까지 소요된 시간
(배치Job에서 응답시간 대신 성능측정의 기준으로 사용)
*Think Time
– 사용자가 마우스클릭으로 시스템에 요청을 보낸후, 다음요청(클릭)까지의 준비시간
> 입력필드/콤보에 입력 값을 넣는 시간, 조회 데이터 읽는 시간, 커피브레이크 등
> 성능시험의 부하환경을 결정하는 중요한 요소로 일반적인 툴에서 소프트웨어적
으로 구현
(실제 환경을 반영해 주지 못하면 비현실적인 상황에서 왜곡된 결과 나타남)
> 실제 일부 APM에서는 평균 Think Time 분석
cf) 비즈니스도메인별 ThinkTime (경험치) à적용주의점: 경험치는 경험치 일뿐 ^^;;
구분 |
Think Time |
TM(Telemarketing) 시스템 |
10~15초 |
MIS/인트라넷 시스템 |
15~20초 |
인터넷 뱅킹 시스템 |
30~35초 |
온라인 쇼핑몰 시스템 |
30~40초 |
포털 시스템 |
40초 이상 |
*
호출간격(Request Interval)
– 응답시간과 Think Time의 합
> 클라이언트에서 대상시스템으로 부하를 주는 시간 간격
[그림1-6] – Response Time / Think Time / Request Interval
(그림 한꺼번에 설명)
*처리량(Throughput)
– 단위시간당 시스템에 의해 처리되고 있는 요청 건 수
> 시스템 측면에서 대상 시스템에 대한 성능을 평가하는 KPI
> 처리량을 표현하는 용어의 구분
리소스 구분 |
용어 |
CPU |
MIPS(Millions of Instructions Per Second) |
MFLOPS(Millions of Floating-Point Operations Per Second) |
|
네트워크 |
PPS (Packets Per Seconds) |
BPS (Bits Per Seconds) |
|
하드웨어 벤더(IBM, HP, SUN) |
TPMC |
메인프레임, C/S, TP-MONITOR |
TPS (Transation Per Seconds) |
à TPS가 가장 일반적인 처리량 표현 용어임
> 시스템 처리량인 TPS는 특정 형태를 나타냄
[그림 1-10]
.Light Load Zone:
.Heavy Load Zone:
.포화지점(Saturation Point): 특정리소스에 병목현상이 발생하면서 요청내용이 처리되지
못하고 대기하기 때문에 발생
.병목지점(Bottleneck Point): 포화지점을 야기하는 리소스
. Buckle Zone: 1차 병목지점 이외에 추가 병목지점 발생하여 병목중첩으로 TPS 감소되어 발생
à 병목지점을 찾아 이를 개선하는 과정이 성능개선의 핵심과제임
*응답시간과 TPS의 상관관계
[그림 1-11]
– Light Load Zone: 부하가 증가함에 따라 처리량이 선형적으로 증가
(대상시스템에서 수행되는 요청에 대한 응답시간은 일정하게 유지)
(대기시간 증가로 응답시간 기하급수적으로 증가)
– 최대 허용 동시 사용자: 포화지점에서의 동시사용자
(동시사용자 증가하더라도 성능개선이 이루어지지 않는 시점에서의 동시사용자)
à 이것을 찾는 것이 임계시험(성능시험의 한 형태)의 목표가 됨