본문 바로가기

Solution/JMeter

[JMeter] Thread.sleep을 이용한 Active Service와 Heap Memory, TPS의 상관 관계

728x90

Thread.sleep을 이용한 성능 테스트

위 소스 코드는 test.do라는 url 주소에 get 방식의 parameter 값을 abc=30000을 주었을 때

30초 후에 스레드를 재우고 후에 main화면으로 리다이렉트 하는 코드이다.

http://IP:Port/WebArchive/member/test.do?abc=30000

 

 

 

 

====================

한번 호출 시에 30초 스레드 슬립 시키는 것을 설정

=====================

1초당 30번의 request를 보내는 설정

==================

결과 분석 화면

계단이 한칸 오를 때 마다 TPS가 내려갔다가 올라가는 것을 확인 할 수 있다.

 

==================

1초당 30번 30초 Thread.sleep 부하를 추가 했을 때 결과 화면 

 

메인 페이지는 먹통

1초당 30번 30초 Thread.sleep x 2의 수치를 보면

CPU는 사용하지 않지만

Heap 메모리는 상단에 위치한 것을 알 수 있다.

 

 

===========================================

Thread.sleep 5초 1초에 30번 요청

Active Service에서 붉은 색으로 넘어가지는 않으나

TPS는 12정도에 머뭄

 

===========================================

Thread.sleep 120초 1초에 30번 요청

 

힙 메모리를 모아놨다가 한번에 정리하는?? GC 인듯하다

 

============================================

30초 슬립의 100명의 유저를 10초에 한번씩 보내는 설정

 

10초마다 끝과 끝을 달리는 응답시간

(아래쪽에 응답을 처리하고 100개의 Thread Sleep이 차있는 동안 응답시간이 위쪽에 머뭄)

힙 메모리도 쓰레드를 꽉 잡고 있는 동안에는 꽉 차있는 것을 볼 수 있다.

슬립 시간이 끝나면 바로 힙 메모리를 회수하여 요청과 응답을 한다.

 

TPS도 6.5정도를 유지하는 것을 볼 수 있다.

 

 

============================================

1초당 30, 100, 200, 300의 요청을 보냈을 때

 

 

 

TPS 400~ 500

 

 

 

 

 

 

Elapased Time = 경과시간

 

728x90