본문 바로가기
JAVA

Jmeter performance configuration

by 아이티.파머 2019. 12. 4.
반응형

1. 다운로드

https://jmeter.apache.org/

→ Sample File

Spring webflux-kafka default tps .jmx

AdServer tps Test.jmx

2. 플러그 인 설치

https://jmeter-plugins.org/install/Install/

(Download **plugins-manager.jar** and put it into lib/ext directory, then restart JMeter.) 설치 위치 : ${JMETER_HOME}/lib/ext

플러그인 파일을 체크 하고 설치 한다.

3.  Jmeter 테스트 환경 설정

  • Number of Thread(users) : 동시접속자수를 지정
  • Ramp-Up Period (in seconds) : Thik Time 증 서비스를 사용자 패턴을 감안하여 User가 몇초에 한번 서비스를 클릭하는지 선정 한다. 또한 지정한 수만큼의 Thread 실행되기 까지 걸리는 시간이다. 여기서는 300 유저가 1초에 한번씩 서비스를 클릭하고, 300 개의 Thread가 1초안에 생성된다.
  • Loop Count 몇번 반복해서 요청 할것인가

3.1 jp@gc - Stepping Thread Group (deprecated) 생성

 

Max 200 Thread 생성 30초후에 10개씩 Thread 생성 최대 Thread로 600초간 유지

이후에 1초 간격으로 5개씩 Thread Stop

  • This group will start 는 총 몇개의 Thread를 발생할것인가.
  • Next, add는 몇개씩 더해질것인가
  • threads every 몇초후에 더해질것인가
  • using ramp-up는 Next add되는 데 걸리는 시간
  • Then hold load for는 몇초동안 최대 Thread를 유지할것인가
  • Final stop 몇개씩 Thread를 줄일것인가
  • threads every 는 몇초간격으로 줄일것인가.

3.2 HttpRequest 생성

 

3.2.1 해당 Requst 에 대한 결과 를 보기 위한 Repoet View 생성

- Summary Report

- View Results Tree

- Aggregate Report

- Aggregate Graph

- AdServer Graph Results

- Constant Throughput Timer

분당 제어량을 설정 하기 위해 사용, 정확한 제어량은 불가능 하며 분당 제어량시 근사치의 제어량이 가능.

3.1 jp@gc - Active Thread Over Time

시간에 따른 접속 사용자

3.3 jp@gc - Response Times Over Time 생성

테스트 시간에 따른 응답 시간

3.4 jp@gc - Transactions per Second 생성

초당 처리량 확인 (HTTP 요청 성공 및 실패에 대한 Chart)

3.5 jp@gc - Response Times vs Threads

Thread 변화에 따른 응답 속도

3.5 jp@gc - Composite Graph

종합 적인 그래프를 함께 보여준다.

TPS 계산법

TPS = 스레드 개수 / 평균응답시간

Remote Jconsole 및 Scoter agent 실행 방법

scocter agent 실행

 

nohup java -javaagent:/home/mezzo/download/scouter/agent.java/scouter.agent.jar \
-Dobj_name=AdServerMiddleware1 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=210.221.235.202 \
-Dcom.sun.management.jmxremote.authenticate=false \
-jar /home/mezzo/download/AdApiServer.jar &


# scouter/agent.java/conf
### scouter java agent configruation sample

obj_name=AudienceServerTest01
net_collector_ip=127.0.0.1
net_collector_udp_port=6100
net_collector_tcp_port=6100
hook_method_patterns=com.mezzomedia.core.service.audience*.*, com.mezzomedia.core.service*.*,com.mezzomedia.server.handler*.*
hook_service_patterns=
_trace_auto_service_enabled=true

JMX JMX - Jconsole Remote

# Option 
# -Dcom.sun.management.jmxremote
# -Dcom.sun.management.jmxremote.port=<사용할포트>
# -Dcom.sun.management.jmxremote.ssl=false
# -Djava.rmi.server.hostname=<서버아이피>
# -Dcom.sun.management.jmxremote.authenticate=false
nohup java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=210.221.235.202 \
-jar /home/mezzo/download/AdApiServer.jar &

#Jconsole guides 
# -> https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html

 

Virtual VM

# -Dcom.sun.management.jmxremote.local.only=false : localOnly가 true 켜져있으면 remote 연결이 안될 수 있다.
# -Dcom.sun.management.jmxremote.port=1099 : remote port설정
# -Dcom.sun.management.jmxremote.ssl=false : ssl접속설정
# -Dcom.sun.management.jmxremote.authenticate=false : 접속인증 설정. true하면 인증관련된 추가 설정 필요
# -Djava.rmi.server.hostname=192.168.0.7 : remote서버 ip, ifconfig로 확인
# -Dcom.sun.management.jmxremote.rmi.port=1099 : rmi포트 설정


nohup java -jar -Xmx3g -Xms3g \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote \
-Djava.rmi.server.hostname=210.221.235.208 \
-Dcom.sun.management.jmxremote.rmi.port=1099 \
./hc-tracking-server-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
반응형

'JAVA' 카테고리의 다른 글

QueryDsl Mysql DATE_ADD, ADDDATE  (0) 2020.04.08
Logback filter (slf4j)  (0) 2019.12.09
Intellij 2019.2 build tool gradle default  (0) 2019.11.07
java excle 대용량 다운로드 poi  (0) 2019.09.19
java null safe stream 생성 방법  (0) 2019.09.05