jmeter
Post on 20-Oct-2014
686 views
DESCRIPTION
JMeter 설정및 사용법 made by 정문철 reviewed by 손영수TRANSCRIPT
JMETER간단하게 부하 테스트를 해보자
학습목표
- JMeter를 사용하여 부하 테스트를 하는 방법을 알아봅니다. !- 테스트 결과를 바탕으로 문제점 파악과 성능 개선을 해 봅니다.
JMeter란?JMeter란 아파치에서 관리하는 오픈소스중 하나로
Java로 만들어진 데스크탑 어플리케이션입니다. !
사용하는 사용자가 많아 문서도 잘 되어있는 편이고 결과를 직관적으로 잘 보여주면 사용하기 간편합니다.
!JMeter를 사용하여 안전성, 확장성, 부하, 기능등을
테스트해볼 수 있습니다.
jmeter를 다운받아 줍니다. https://jmeter.apache.org/download_jmeter.cgi
압축을 풀면 bin-jmeter.sh가 있습니다.
sudo sh jmeter.sh로 jmeter를 실행시켜줍니다.
기본 화면이 등장하였습니다!
TestPlan을 오른쪽 버튼 클릭으로 Thread Group를 생성해줍니다.
스레드 갯수와 테스트 시간, 반복횟수를 정합니다.
테스트할 사용자의 수(스레드 수)
희망 테스트 시간 (1이면 거의 모든 스레드가 동시 실행)
한 스레드당 반복 횟수
이번에는 Thread Group에 TCP Sampler를 추가합니다.
서버 정보와 접속 방식 선택, 보낼 내용을 정합니다.
Close connection체크!
테스트 결과를 보기 위해서는 Listener가 필요합니다. Thread Group에 View Results Tree를 추가하였습니다.
그래프로 보여주는 Spline Visualizer를 Thread Group에 추가하였습니다.
중요 지표들을 보여주는 Summary Report를 Thread Group에 추가하였습니다.
자… 이제 기본적인 설정을 마쳤습니다. (Listener가 오류나 지연의 원인이 되는 경우도 있으니 적당히 추가합시다…)
테스트 설정을 저장을 하고…
이제 이때까지 만들어본 서버를 테스트해 보겠습니다.
예전 서버 코드는 깃에서 복구…
먼저 서버를 실행하고…
Clean버튼을 누르고 Start버튼을 눌러 테스트를 시작합니다.
테스트 결과는 그때그때의 서버 상황에 따라 결과가 달리 나옵니다. 이 자료도 정확히 측정 안한 그냥 참고용…
Reactor Single Thread
Throughput은 600정도에 Error는 9정도가 나왔습니다.
Reactor Thread Per
Throughput은 1300정도에 Error는 2정도가 나왔습니다.
Nio Proactor
Throughput은 1000정도에 Error는 4.8정도가 나왔습니다?!
가장 성능이 좋아야 할 것 같았던 nio Proactor 서버가 별로 결과가 좋지 않았습니다…
View Results Tree를 보니 Connection reset by peer가 적혀있습니다.
사실 문제가 있는 특정 부분을 명확히 알려주는 에러 메시지는 아니지만 스레드풀과 backlog가 의심스럽습니다.
스레드와 backlog갯수를 막 올려봤습니다…
스테드 갯수를 올리고 다시 테스트를 해보니 Throughput은 1800정도에 Error는 0이 나왔습니다.
이런 식으로 몇 번을 반복하면서 적당한 스레드 개수를 측정하며
!
계속 개선 작업을 합니다. !
(이 외에도 튜닝 방법은 엄청 많습니다…)
http://wiki.javajigi.net/pages/viewpage.action?pageId=183 !http://verystrongjoe.tistory.com/19 !http://blog.naver.com/blueday9404?Redirect=Log&logNo=110181703656 !http://www.codeigniter-kr.org/lecture/view/289