본문 바로가기

개발일지/TIL

[230825] 입찰 테스트 중 겪은 Jmeter 한계

Scale-Up으로 인한 성능 테스트

💬 AWS EC2 Instance를 t2.micro에서 c5.large로 업그레이드한 후에 입찰 성능 향상이 얼마나 되었는지 확인을 해야 했습니다. 병목 현상이 어느 정도 완화가 되었는지 확인하기 위해서였습니다.

 

✔ Jmeter 문제

💢 Scale-Up 하기 전에 문제가 되었던 SSE 400명 연결, 1분당 입찰 3000건 테스트는 Scale-Up 이후로 정상적으로 처리가 되는 것으로 확인이 되었습니다. 이후 해당 서버가 감당할 수 있는 요청에 대해서 알아보기 위해 SSE 연결 수와 1분당 입찰 건수를 증가시킬 때 Jmeter에서 에러가 발생했습니다.

 

✔ 해결 방법

💬 문제는 Jmeter에 할당된 메모리(기본 3G)가 부족했기 때문입니다. 메모리가 부족했을 때 해결 방법에 대해서 Jmeter는 두 가지 방법을 제시했습니다.
     ➡ Jmeter GUI를 사용하지 않고 CLI로 테스트를 실행
     ➡ 기본 Heap 설정을 변경하여 Jmeter를 실행

✅ GUI를 통해 결과를 보는 것이 저에게 많은 도움이 되었기에 기본 Heap 설정을 변경하여 Jmeter를 실행하기로 했습니다. 기본 3G Heap을 6G로 설정하여 Jmeter를 실행하여 이 문제를 해결했습니다.
     ➡ Jmeter 폴더 안에 있는 Jmeter.bat 파일 변경 [ set HEAP=-Xms6g -Xmx6g -XX:MaxMetaspaceSize=256m ]

 

✔ 결론

💬 Jmeter에 대한 Heap을 늘려서 해결하는 방법은 임시방편입니다. Jmeter를 실행하고 있는 컴퓨터의 하드웨어 자원은 한정되어 있기 때문입니다. Jmeter 요청을 처리하기 위한 CPU, Memory 등은 언젠가 한계에 도달할 것입니다. 이때에는 하드웨어 사양을 더 늘린다는 것은 현실적으로 불가능한 일이기에 또 다른 해결 방법을 찾아야 합니다. 이것은 현재 Jmeter가 가지고 있는 명백한 한계입니다.