본문 바로가기

IT 제품 용어 정리/Apatche JMeter

[JMeter] JMeter 정리

*개인적인 정리임을 미리 말씀드림*

 

부하 모델링이 어려움*

 

*성능테스트

-1) 단위 성능테스트: ex.로그인 하나만 부하테스트(가상 유저들)

-2) 통합 성능테스트: 피크된 모든 업무를 업무 비율별로 통합으로 발생시켜놓고 이상이 있나 없나봄, TPS 계산하고, TPS만큼 부하줌

- 3) 임계 성능테스트: TPS 증가시켜봄(부하량 증가시켜봄, TPS관찰), 부하를 계속주는데 TPS가 증가하지 않는 것 까지 관찰

-- 부하를 확주지 않고, 목표 TPS만큼 부하량을 서서히 줌, TPS이상으로도 더 부하를 줘서 TPS테스트, 현실세계 사용자들처럼 부하를 줌

-- 현실세계 사용자들처럼이란말은 이 페이지보고 하나 담고, 저 페이지보고 하나 담고, 이런식으로 하는 방식을 의미

 

부하모델링: 가장 많은 사용자들이 시스템을 하는 시간을 고름

- 그 시간에 호출된 업무들을 리스트화함

- 부하 비율을 산정

 

성능테스트 방법에 따른 분류

- 2) Spike 테스트: 특정 시점에 부하를 확줌

Ex) 쿠팡에서 오후 10시에 십만원짜리 키보드를 만원에 팔면, 사람들이 너도나도 들어오게됨

10시되면 키보드가 열리게 되고, 순식간에 사람들이 엄청 들어옴, 이런 시물레이션이 Spike 테스트

 

용어정리

- Resp Time = CPU T + Wait T(OS가 자동으로 함, 자원보호목적)

- Think Time = 페이지를 둘러보는 시간

- 요청 주기(sec)[클릭하고, 클릭 전까지 시간] = 응답시간(sec) + Think Time(sec)

- Visit Time = 로그인하고 페이지를 훑어보고 로그아웃까지의 시간

- Concurrent User(동시사용자) = 특정 시점에 단면을 짤랐을 때, 10분 전후에 모두 한번 이상 호출된 서로 다른 IP Address 개수

-- Concurrent User = Active user + Inactive User

- inactive User: 10분 전후에 모두 1번이상 있던 사용자

- active User: 특정 시점에 request보내고, 아직 response 받지 않은 사람

 

Throughput(처리량): 단위 시간당 서버에서 처리되는 요청 건수 = TPS(초당 요청 건수)

 

Saturation Point(임계점): 최대 TPS가 나타나는 최초의 시점

- TPS가 높으면 높을수록 좋음, 초당 처리건수가 증가하는 것이니까

 

성능테스트 프로세스

1) 분석 = 요구사항 수집, 자료 분석, 목표 수립

2) 설계 = 목표 TPS 설정

3) 준비 = 스크립트 작성, 성능테스트 환경 설정

4) 수행 = 단위 성능테스트, 통합 성능 테스트(자원검사, 병목검사, 개선), 안전성 테스트

5) 평가 = 결과 분석, 시스템 최적화, 검증 테스트, 보고서 작성  

 

JMeter: Plugin Architecture 지원

- Sample:

- JDBC Request:

- JMS Publisher: Java Message Service,

- Java Request: TCP방식으로 정보전달함

- LDAP Requset: Domain 로그인할때, 로그인 인증 Protocol

 

- Logic Controller: 부하테스트는 전제조건을 따져가며 해야됨

-- if Controller

- While Controller

 

Listener: Run Time Monitering 할때 많이 사용

 

레코딩

- Proxy Server이용

-- Proxy? 대신하다, 대리하다 뜻으로, Forward Proxy, Reverse Proxy가 있음

-- Forward Proxy: 외부로 나가는 모든 트래픽을 거쳐가게 하면서, 정보의 data들을 cache해놓고, 정적인 Resource들은 Cache를 통해 빨리 전달가능함.

-- 단점은 모두 감청당함

-- Reverse Proxy:

 

Test Fragment

- 아무 의미없음

- 그냥 구성 나눌 때 좋음