서버 부하테스트를 하는 툴은 시중에 많이 있지만 이번엔 Jmeter를 사용해서 테스트를 실행해보았다.
Jmeter는 다른 툴에 비해 다양한 기능과 플러그인이 존재하고 빠른 시나리오 작성이 가능하다.
Jennifer 같은 APM을 같이 이용해 테스트 해보면 여러 수치들을 볼 수 있으니 같이 사용하는게 좋다.
http://jmeter.apache.org/download_jmeter.cgi
해당 URL에서 Binaries에 있는 zip 파일 다운로드 후 압축풀기
압축해제한 폴더의 bin폴더로 들어간 후 (ex)C:\util\apache-jmeter-5.3\bin)
jmeter.bat 파일 실행
https://jmeter-plugins.org/get/
에서 jar 파일 다운받은 후 lib/ext 폴더에 넣기(C:\util\apache-jmeter-5.3\lib\ext)
넣은 후 다시 jmeter.bat 실행하면 아래와 같이 나온다.
https://jmeter-plugins.org/?search=jpgc-graphs-basic
에서 다운받고 압축 해제 후 lib 폴더에 넣기
넣은 후 다시 jmeter 실행하고 옆의 Test Plan마우스 오른쪽 클릭하면 아래와 같이 추가되어서 나온다.
-Thread Group에 마우스 오른쪽 클릭 후 Http Request 추가
- Basic에서 ip, port, path 등 설정
- Advanced에서 설정
- 아래 아이콘을 클릭하면 테스트가 실행된다.
- 아래와 같이 테스트 결과가 나온다.
대용량 부하 분산 테스트를 할 때는 한 대의 부하발생기로는 불가하고, 여러 대의 부하발생기를 병렬로 연결해서 동시에 테스트 해야한다. Jmeter가 jmeter-server를 원격에서 실행할 수 있는 Remote Testing 기능 제공한다.
jmeter controller : 실제로 부하 발생시키는 jmeter-server에 명령을 전달. Master역할.
jmeter server : 실제로 부하 발생하는 노드. jmeter-controller에서 받은 명령 수행하고 그 결과를 다시 jmeter-controller에 전달하는 Slave역할.
(Master와 Slave의 Jmeter버전 동일하게 맞춰줘야함.)
/bin/jemter.properties 파일에서 설정 수정
1.Jmeter controller 설정 (master PC)
-remote_hosts 부분에 원격 연결할 서버 ip들을 ,로 구분해서 입력한다. (port를 따로 입력하지 않으면 default값 1099가 된다.)
-client.rmi.localport 부분에 port 입력
2.Jmeter server 설정(slave PC)
server_port 부분에 port 입력 & server.rmi.localport 부분에 port입력
3. Master,slave 둘 다 방화벽에서 포트 열기(참고 : https://wiki.mcneel.com/ko/zoo/window7firewall)
나 같은 경우는 이렇게 포트열어도 안됐다가 V3쪽의 방화벽도 있길래 개인방화벽 규칙 추가해서 포트 열어주었음.
-> cmd에서 telnet 이용해 Master에서 slave로 접속 되는지 체크
4. slave PC에서 jmeter-server.bat 을 실행시킨다.
이런 식으로 나오면 정상구동이다.
5. Master PC에서 jmeter.bat실행하여 Run->Remote Start 에서 설정한 ip들 확인
6. Master PC에서 Remote Start 시키고 Slave PC의 server에 나오는지 확인
Starting...... 나오면 성공
-만약 연결 시 SSL Exception 에러가 나거나, jmeter-server 부분에서 rmi_keystore.jks 파일 찾을 수 없다고 나온다면 해당 부분 true로 수정
출처 & 참조 : https://www.mynotes.kr/jmeter-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EB%B6%80%ED%95%98%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%84%A4%EC%A0%95/
, https://www.slideshare.net/arload/bestcon-load-test
, https://xzio.tistory.com/51
, https://stormaa.tistory.com/75