기록하는 습관

[스마일게이트 인턴] nGrinder를 이용한 성능 테스트 본문

스마일게이트 인턴 - Dev Camp

[스마일게이트 인턴] nGrinder를 이용한 성능 테스트

로그뉴 2021. 2. 10. 00:04

1. nGrinder 이슈해결

nGrinder에서 run_agent.bat 실행 시 에러 발생.

특정 위치에 jvm.dll이 없다는 뜻이므로 해당 위치에 jvm.dll 파일을 복사하여 해결함.
(참고 : https://kingle1024.tistory.com/206)
Can't not set headers 에러 발생
→ 헤더 설정이 제대로 되지 않아서 발생하는 이슈. 우리 경우는 헤더에 인증 토큰을 넣어 전달해야 하는데 전달이 제대로 되지 않음.



배열 객체로 헤더를 설정해주고 request.GET에 url과 headers를 넣어줌.

(참고: https://gist.github.com/ihoneymon/a83b22a42795b349c389a883a7bbf356)
GET content detail에 대한 성능 테스트 진행

 

2. 성능 개선 진행

content detail api 로직 변경
- 변경 이유: 계속 tps가 160 정도 나오고 Error가 많이 나왔음.



1. getComment 함수 제거
- 게시글 조회에서 댓글 data가 필요 없어지고 댓글 count만 필요한 것으로 변경
2. getContent 함수도 아예 api 모듈 안에서 쿼리를 돌려서 진행
Vusers=3000 일 때로 테스트 진행
- Vusers= 99 일 때 tps 1527, Error=1이 나와서


Error가 4000개가 넘개 나와서 로그 파일을 보니 Read Time out이 뜸.



timeout = 600 에서 30000으로 늘려줌.



 

결과적으로 TPS 1508, Error=0으로 성공적인 성능 테스트를 마치게 되었다.

 

 

** nGrinder 로그 파일 확인하는 법

 

성능 테스트한 결과가 Controller에 로그로 남는다.  

로그가 남는 경로는

${user.home}/.ngrinder/perftest 이다.

1 ~ 999까지 테스트한 순서대로 쌓인 로그를 확인할 수 있다.

 

참고 블로그 :https://m.blog.naver.com/theswice/221437717499

Comments