ngrinder통한 서버 부하 테스트

2023. 1. 29. 18:50카테고리 없음

42억 동기화 :) :: window에서 nGrinder 설치 및 실행 (tistory.com)

 

window에서 nGrinder 설치 및 실행

윈도우에서 nGrinder 를 사용해보자 java 기반이라 java를 설치해야 한다. 꼭 어떤버전을 사용해야 한다는 내용은 찾아보기 귀찮고 집에 1.8버전이 설치되어 있기 때문에 그냥 진행을 하였다. 울집은

darozzang.tistory.com

ngrinder가 깔려있는 폴더 위치에서cmd로 java -XX:MaxPermSize=200m -jar ngrinder-controller-3.4.1.war -p 포트 번호 입력한다
해당 경로에서cml창을 띄운다 run_agent.bat 실행 시킨다.
localhost:7777 지정한 포트 번호로 사이트 접속 한다.
스크립트를 하나 만든다
가상 으로 트래픽을 설정한다.

 

TPS (Transaction Per Second) :초당 처리량 높을수록 좋다.

 

mySQL 트래픽 왔을때 현 상황 모니터링 결과
톰캣 모니터링 결과
해당 URL로 요청이 들어오는 것이 console에 찍힌다.

 

-> 여기서 내가 간과한 부분이 있다.

jmx로 모니터링 할때는  동일한 환경에서 진행이 되어야 정확한 지표를 확인할 수 가 있다. 

백그라운드가 달라지면 의미가 없다. 

동일한 조건에서 백그라운드가 달라져도 같은 지표를 확인 할수 있게 하기 위해서는 

xmx,xms heap size 조절 옵션들이 있는 데 그 옵션들을 설정해야 하는것이 중요하다.

 

 

#xmx,xms 옵션을 동일하게 설정하는 이유?

gc데이터를 모니터링 하면 비교적 짧은 시간에 jvm이 결국 힙크기를 xmx설정으로 늘린다.

jvm이 힙크기를 느릴때마다 os에 추가 메모리를 요청해야 하는데 여기에는 시간이 걸린다.

또한 일반적으로 jvm은 해당 메모리를 한번 공급 받으면 놓지 않고 계속 가지고 있다.

 

또 다른 이유는 힙크기가 작을수록 xmx로 시작시 gc가 더 자주 발생한다.

빈번한gc를 겪을때 마다 os에 많은 메모리를 요청하게 될거고  시간이 소비 된다 .

https://developer.jboss.org/thread/149559

https://stackoverflow.com/questions/43651167/is-there-any-advantage-in-setting-xms-and-xmx-to-the-same-value

 

그다음에 heap이 oom이 발생시에 힙덤프를 자동으로 뜰수 있는 옵션들도 있는지 살펴 보면 좋다.

 

또한  나는 localhost:8080/member/list 로 접속시에 member에 목록이 가져오는 url를 지속적으로 트래픽을 줘서 

요청을 하게 하였는데  시간 측정이 0인것으로 봐서  잘 작동이 된건지 확인이 필요하다 .

 

https://dkswnkk.tistory.com/440

 

[Java] JVM의 메모리 구성요소와 영역에 관한 고찰

서론 응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리합니다. 그렇지만 여기서 여

dkswnkk.tistory.com

 

힙->영역