웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

27
® IBM Software Group © 2007 IBM Corporation 웹웹웹 웹웹웹웹 웹웹 웹웹웹웹 웹웹 웹웹 웹웹웹 웹웹 웹웹웹 [email protected] om

Upload: anne

Post on 16-Jan-2016

113 views

Category:

Documents


0 download

DESCRIPTION

웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안. 박성민 [email protected]. Agenda. Performance Testing What, Why, When & How? Rational Performance Tester Test Creation Workload Scheduele Execution & Analysis Summary. Review : Performance Testing. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

®

IBM Software Group

© 2007 IBM Corporation

웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

박성민 [email protected]

Page 2: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Agenda

Performance Testing What, Why, When & How?

Rational Performance Tester Test Creation

Workload Scheduele

Execution & Analysis

Summary

Page 3: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Review : Performance Testing What is : 시스템의 성능상 문제점을 찾기 위해 부하 발생 도구를 이용하여

실제 사용자의 부하를 모방하여 애플리케이션을 테스트 하는 일련의 과정 Why do : 시스템 상에서 발생되는 문제로 인해 사용자들이 받아야 하는

서비스를 받지 못할 수 있으므로…

RationalPerformance

Tester

System Under TestPerformanceTester Agents

Page 4: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Cost of Defects vs. Where Found

발생발견

결함이 발견된 단계 및 수정에 소요되는 비용

Inception Elaboration Construction Transition

Inception $25 ~ $100

Elaboration $100 ~ $500 $50 ~ $250

Construction $500 ~ $1K$250 ~ $1.5K

$75 ~ $500

Transition $8K ~ $10K $1.5K ~ $5K $500 ~ $3K ?

Source : Profiles of Level 5 CMMI Organizations by Donald J. Reifer

프로젝트 후반으로 갈 수록 발견된 결함을 해결하는 데 더 많은 비용 및 노력 소요

대부분 성능 테스트는 실환경 도입 직전에 수행하는 문제

Page 5: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Type of Tests vs Phases

개발 초기 ~ 후반 Load test

짧은 시간 동안 반복적인 결과를 얻기 용이 계속적인 테스트를 통해 일관된 결과를 도출할 수 있으며 , 이후 테스트

결과 분석의 기준을 설정하는데 도움 개발 후반

Spike test

점진적인 부하의 증가를 통해 시스템의 가용성 산출 Endurance test

시스템이 수용 가능한 부하를 장기간 동안 발생시켜 시스템의 성능 분석을 통해 시스템의 robustness 검증

Peak – Rest test

부하의 반복적인 up & down 을 통해 시스템의 여러 수치가 정상을 회복하는지 파악

Page 6: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Common Pitfalls for performance testing

“ 최대 사용자” 혹은 “최대 커넥션”을 기준으로 한 테스트 계획

동시 활성 사용자와 동시 접속자 혼돈

워크로드 분석의 중요성 과소 평가

테스트 시나리오의 요소들 미반영

시간대에 따른 부하에 대한 분석 데이터 미비

“ 업계 표준”에 기준을 둔 비현실적인 기대값

Page 7: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Load Profile Creation

실제 사용자로부터 actor 를 정의

시스템 수행이 아닌 비즈니스 프로세스로부터 Use Case 추출

월 단위로 Use Case 에서 부하량 결정

피크 기간을 선택하고 부하의 양을 주 – 일 – 시간 단위로 분류

실제 시스템의 워크로드와 유사하게 사용될 시나리오들의 부하 비율을 결정

Page 8: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Execute & AnalyzeSchedule WorkloadBuild Scripts

Script Creation Considerations 테스트 레코딩 , 입력 데이터의 가변화와 서버 응답의 correlation

Scheduling Considerations 실제 사용자의 워크로드를 가능한 유사하게 emulation

Execute and Analyze Considerations 응답 결과 분석 및 병목 지점 발견

Creating a Performance Test

Page 9: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

No-Code Tests

테스트 레코딩 결과는 웹 페이지 및 이미지 등과 같이 페이지 내에 포함되는 요소들의 리스트가 계층적 구조로 표시됨

다양한 수준의 사용자에게 적합

Page 10: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Data Substitution

HT

TP

Ser

ver

Web

Bro

wse

r

GET /PlantsByWebSphere/login.jsp

Request

POST /PlantsByWebSphere/servlet/AccountServlet?

action=login&updating=false

Request

<form method="post" action="/PlantsByWebSphere/servlet/AccountServlet?

action=login&updating=false"><input type="text" name="userid“>

Response

[email protected]

Datapool

userid=

Page 11: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Creating a Performance Test사용자 데이터

사용자 입력 데이터의 자동 가변화 테스트 레코딩 시에 사용자 입력값과 같은 데이터풀 후보를 자동으로

인식하여 에디터에 표시 CSV 파일 형태의 데이터풀을 import 하거나 RPT 내에서 데이터풀을

생성하여 사용 가능 처리된 변수들은 테스트 실행 시에 가상 사용자마다 데이터풀의 값들에 의해

순차적으로 대체되어 실행되므로 사용자마다 고유한 값으로 테스트

User Name: JSmith

User Name: CBryson

User Name: TJones

Page 12: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Creating a Performance Test서버 동적 데이터 처리

IBM RPT 는 서버에서 발생시키는 동적인 값에 자동으로 대응 HTTP 헤더에 포함되는 세션 정보 등 서버가 각 사용자에게 고유하게 부여하는

정보 등을 자동으로 저장 테스트 수행 시 각 사용자마다 서버가 전달한 고유한 값으로 수행

Session No. 100

Session No. 101

Session No. 102

Page 13: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Portal Parameterization ExampleDynamic URL identification and parameterization

URL for Job Search Page is:http://www.mdes.ms.gov/wps/portal/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4i3dAHJgFiO-pFQgSB9b31fj_zcVP0A_YLciHJHR0VFAJIEy7w!/delta/base64xml/L0lDU0lKQ1RPN29na21DU1Evb0tvUUFBSVFnakZJQUFRaENFSVFqR0VKemdBIS80SkZpQ28wZWgxaWNvblFWR2hkLXNJYnpRQSEhLzdfMF9DSy80NjY!?PC_7_0_CK_MESCCommand=JobSeeker#null

Page 14: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Performance Tester CaptureAutomatic Data Parameterization Reduces Test Maintenance

RPT 가 자동으로 동적인 URL 을 변수화하여 이후의 테스트 실행의 성공을 보장 동적인 URL 이 재생성 되더라도 테스트를 수정할 필요가 없으므로 많은 시간을 절약할

수 있음

접근한 페이지

자동 변수 처리된 동적 URL

Page 15: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Workload Analysis

워크로드 분석 – 테스트 환경에서 테스트 대상 아이템들이 수행해야 하는 부하 조건을 정의하는 것 목적 : 성능적인 리스크를 보다 정확하게 찾기 위해 실제

워크로드와 유사하게 부하를 설계하는 것

시스템 컴포넌트 , 사용자 , 목적과 목표 , 이전 결과 및 벤치마크 데이터 등의 통계 자료 수집을 통한 Workload analysis document 작성 성능 테스트의 목적 정의 워크로드 정의

Critical business functions

User characteristics

Data access pattern

측정 기준 선택 : 응답 시간 , throughput 등

Page 16: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Other Workload Considerations

Workload interval : 테스트가 수행하는 시간대 Peak Usage

Normal Day

Test Variables : 테스트 수행 조건 Various User Load (flat / increasing)

Realistic Variable Data

Different Configurations

User job roles : 사용자의 종류 Identify groups

Identify percent of total workload

User work profile : 사용자가 수행하는 태스크 Identify use cases, tasks, and transactions

Determine frequency and order of tasks

Page 17: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

정밀한 워크로드 모델 구현 가능 Selector

Loop, Delay

User Load options

Think Time & etc

다양한 시나리오의 스케줄 작성 코드가 필요없는 비주얼 스케줄

에디터 Delay 등과 같은 다양한 coordin

ator 제공 적은 메모리와 CPU 사용량

기반의 보다 정확한 대규모 부하 생성 가능

테스트 수행 중에 부하 추가 가능

Creating a Performance Test워크로드 스케줄

Controller

Agent

SUT

Page 18: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Real Time Monitoring 테스트 실행 중 및 실행 후에 분석을 위한 다양한 차트 및 테이블 기반의

리포트 제공 페이지 응답 시간 , 페이지 요소 별 응답 시간 , 테스트 성공 실패 여부 로그 제공

Page 19: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Performance & Resource Statistic Report Overlay

부하 생성시 시스템 측의 자원 상황을 응답 시간 데이터와 연계해서 표시로 보다 다각적인 분석

Page 20: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Further Analysis

성능 테스트의 결과 분석 페이지 , 페이지 요소 등의 응답 시간 트랜잭션 , throughput 등 서버의 자원 사용률 등시스템 수준의 튜닝

애플리케이션에서 발생된 문제 분석 ?

실제 운영 시점에서 발생되는 성능 관련 문제 ?

Page 21: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Performance Problem Identification During Test

성능 테스트는 병목 구간을 찾아낸다 . 다음 찾아야 하는 문제 : 어디서 왜 병목이 발생하는가 ?

Root Cause Analysis 기능으로 문제를 밝힐 수 있는 도구를 제공

RPT 의 페이지 성능 리포트는 웹 페이지 당 평균 응답 시간을 보여준다 .

Highest bar = Performance Problem

Page 22: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Response Time Breakdown

Feature: 페이지 응답 시간을 세부적인 단위로 분할하여 분석이 가능

Benefit: 분할된 데이터 분석하여 병목이 발생한 페이지에 대해 가장 문제가 되는 ( 느린 )

컴포넌트를 찾을 수 있음 .

응답 시간 데이터는 tier 와 트랜잭션 컴포넌트 (JDBC, JSP, Servlet 등 ) 단위로

분할

Page 23: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Deep Diagnostic Data

생성된 UML 시퀀스 다이어그램으로 시간 정보를

포함하는 클래스 관계를 보여줌 .

실행 결과에서 모든 메쏘드에 대한 응답 시간

확인 가능

성능 향상을 위한 테스터와 개발자 간의 협업 근거 자료로 사용 WebSphere 와 Weblogic 서버에서 구동되는 J2EE 애플리케이션에 적용

가능

Page 24: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Performance Problem Identification from IT Operations

IT 운영자는 가동되고 있는 시스템의 성능 문제를 통보 받음 다음 찾아야 하는 문제 : 어디서 어떤 문제가 발생했는가 ?

Tivoli 의 모니터링 도구인 ITCAM 과 RPT 의 Root Cause Analysis 기능이 문제를 밝힐 수 있는 도구를 제공

IT CAM Dashboard

Red Box = 성능 문제

Page 25: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

IBM Tivoli Monitoring Data Import

Use Case:

ITCAM for WebSphere 와 같은 Monitoring 도구가 운영 중 발생된 성능상의 문제를 통보

IT 운영자는 시스템 상에서의 문제 분석 후 , 개발 및 QA 담당자에게 장애를 통보하고 RPT 에서 관련 데이터를 import 하여 분석하도록 함

애플리케이션 부분에서의 문제를 분석할 수 있어 운영팀과 개발팀의 협업 가능

Page 26: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Summarizing performance testing with RPT

Phase 에 따른… 발견된 결함을 해결하는 데 드는 비용 성능 테스트의 종류

Rational Performance Tester 테스트 생성 시 고려 사항

Data driven & data correlation

스케줄 디자인 워크로드 분석

테스트 수행 및 결과 분석 개발 시점 및 운영 시점의 결과 분석

Page 27: 웹기반 시스템의 성능 최적화를 위한 성능 테스트 방안

IBM Software Group | Rational software®

Thank You