nGrinder란
nGrinder는 부하테스트를 위한 플랫폼으로 웹 애플리케이션 Controller와 자바 애플리케이션 Agent로 구성 되어있다.
nGrinder Controller
- 웹 애플리케이션으로 스크립트를 설정하여 성능테스트를 하게하는 도구이다.
nGrinder agent
- 가상 유저 생성자로 실제 부하를 주는 클라이언트이다.
설치
선행 조건
- nGrinder의 Controller와 agent를 설치하기 위해선 Oracle JDK 1.6 이상 혹은 OpenJDK 1.7 이상이 필요하다.
- nGrinder는 agent간 통신을 위해 여러 포트를 사용한다. 아래의 포트들이 방화벽에 걸리지 않는지 확인이 필요하다.
- Agent: Any ==> Controller: 16001
- Agent: Any ==> Controller: 12000 ~ 12000+(동시 테스트 허용수만큼)
- Controller: Any ==> Monitor: 13243
- Controller ==> Public user: 톰캣설정에 따르지만 기본은 8080이다.
다운로드
- https://github.com/naver/ngrinder/releases 에서 ngrinder-controller WAR 파일을 받는다.
Controller 설치
- 다운받은 WAR파일을 ${TOMCAT_HOME}/webapps 하위에 위치 시킨다. /ngrinder-controller 경로를 제외하고 싶다면 WAR파일명을 ROOT.war로 변경한다.
메모리 설정을 상향 조절한다. catalina.sh 상단에 아래의 내용을 추가한다.
1
JAVA_OPTS="-Xms600m -Xmx1024m -XX:MaxPermSize=200m"
톰캣 실행, ${TOMCAT_HOME}/startup.sh 후 http://localhost:8080/ngrinder-controller-X.X 로 접속한다.
Agent 설치
- nGrinder 3.3 이후로는 Agent를 Controller에서 받는다.
- http://localhost:8080/ngrinder-controller-X.X에 접속후, 로그인한다. 로그인 아이디와 비번은 동일하게 admin 이다.
- 우측 상단 메뉴에서 Download Agent를 클릭한다.
Agent 압축을 푼다.
1
tar xzf ngrinder-agent-3.4.2-localhost.tar
nGrinder 3.3 이후로는 연결된 Agent는 Controller에 의해 자동적으로 승인된다(Agent 시작후 Controller에서 바로 사용할 수 있음을 의미한다)
- Agent를 실행한다.
1
2
3
4
5# Agent 실행
./run_agent.sh
# Agent 백그라운드 실행
./run_agent_bg.sh
Quick Start
- Controller 접속 후 로그인 (아이디/비번 : admin 동일)
- Quick Start는 테스트를 만들기 편리한 방법이다. 테스트할 URL을 입력만 하면 테스트 스크립트가 자동적으로 생성된다.
설정 페이지
- Agent: Agent수, Controller에 연결승인된 수만큼까지만 지정할 수 있다.
- Vuser per agent: Agent당 가상 유저수, Process와 Thread로 구성한다.
- Script: 테스트할 스크립트
- Target Host: 테스트 대상 호스트
- Duration: 테스트할 시간
- Run Count: 테스트 실행 횟수(각 Thread당으로 전체 실행 횟수는 Vuser per agent를 곱한 값이다)
- Enable Ramp-Up: 트래픽을 서서히 증가하게하는 설정
테스트 실행
- Save and Start 클릭시 테스트 실행
결과 화면
- Total Vusers: Vusers 수
- TPS: 평균 TPS
- Peak TPS: 최고 TPS
- Mean Test Time: 평균 테스트시간
- Executed Tests: 테스트 실행 횟수
- Successful Tests: 테스트 성공 횟수
- Errors: 에러 횟수
- Run time: 테스트 실행시간
Reference : nGrinder README