스마일게이트 인턴 - 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까지 테스트한 순서대로 쌓인 로그를 확인할 수 있다.