nGrinder 세팅하기
서론
스레드를 배우기만 하고 막상 실제 써먹을 데가 없어서 깊은 공부가 안된다고 생각하던 중 부하테스트에 대해 알게 되었고, 스레드를 사용하여 부하테스트의 지표를 좋게 해보면 재밌겠다라는 생각이 들었습니다.
그래서 티켓팅 서버를 구현한다는 가상의 시나리오를 갖고, 서버에 큰 부하를 주고 이를 점차 개선을 해보며 스레드를 어떻게 사용해야 하고, 서버에 부하를 처리하는 성능을 어떻게 하면 높일 수 있을지를 공부해보기로 했습니다.
nGrinder란?
nGrinder는 네이버에서 만든 오픈소스로, 어플리케이션의 부하를 테스트 하는데 사용되는 툴입니다.
비슷한 툴로는 아파치의 Jmeter가 있는데, 아무래도 nGrinder가 네이버에서 만들었기 때문에 레퍼런스도 더 많은 편이고 현업에서 nGrinder를 더 주력으로 많이 쓴다고 해서 nGrinder를 선택했습니다.
nGrinder의 구조
nGrinder는 크게 컨트롤러와 에이전트로 구성되어 있습니다.
컨트롤러는 관리를 위한 UI와 부하 스크립트 작성, 부하테스트 작성등의 기능을 지원하여 관리할 에이전트들을 승인하거나 테스트를 시작해 부하를 발생시킬 수 있도록 제어하는 역할을 합니다.
에이전트는 컨트롤러의 명령을 받아 서버에 실제 부하는 발생시킵니다.
따라서 컨트롤러를 통해 에이전트에 명령을 내리면, 에이전트가 우리가 작성한 스크립트대로 타겟서버에 부하를 발생시키는 것이죠.
그럼 컨트롤러와 에이전트를 설치해서 직접 사용해보도록 합시다.
컨트롤러 설치하기
보통 현업에서는 부하 테스트용 서버를 따로 만들어 사용하는게 일반적이겠지만, 저의 경우는 제 로컬 환경에 컨트롤러와 에이전트를 설치하여 타겟서버에 부하를 걸어보려 합니다.
먼저, nGrinder를 사용하기 위해 자바가 필요합니다.
1
$ java - version
위 명령을 터미널에 실행하면 java의 버젼을 확인할 수 있습니다. 혹시나 명령어가 제대로 실행되지 않는다면, java를 설치해주어야 합니다.
nGrinder 릴리즈 링크 - https://github.com/naver/ngrinder/releases/
다음은 위 링크에서 최신버젼의 nGrinder 컨트롤러를 다운받아 주어야 합니다. 최신버젼의 ngrinder-controller-x.x.x.war 파일을 다운 받은 뒤, 현재 터미널 명령 위치로 옮겨 주세요.
1
$ java -jar ngrinder-controller-3.5.8.war --port = 8300
저의 경우는 3.5.8버젼을 사용했습니다.
이제 위 명령어를 사용하여 war파일을 실행시키면 됩니다.
포트의 경우는 원하는 포트를 아무거나 실행해도 됩니다. 저의 경우는 8300번 포트를 사용했습니다.
그럼 이제 로컬호스트로 접속하면 nGrinder 컨트롤러 화면을 접할 수 있습니다.
localhost:8300
초기 아이디와 비밀번호는 아이디 : admin, 비밀번호 : admin 입니다.
로그인 후 admin > User Management에서 유저를 추가하거나 유저의 정보를 변경할 수 있습니다.
로컬환경일지라도 보안을 위해 꼭 바꾸는 것을 추천드립니다.
이제 간다한 스크립트를 작성해봅시다.
nGrinder 로고 오른쪽에 있는 script를 누른뒤,
파란색 +Create > create a script를 눌러주세요.
그럼 다음과 같은 모달창이 뜰텐데, 스크립트 이름과 테스트할 서버의 url을 적어줍시다.
저의 경우는 제가 운영하고 있는 동아리 홈페이지를 추가해 주었습니다.
그 후 create 버튼을 누르면, 다음과 같은 창을 볼 수 있습니다.
이것이 바로 부하 테스트를 진행할 Script입니다. 여기서 테스트를 어떻게 진행할지를 코딩해주면, 해당 테스트대로 부하테스트를 진행하게 됩니다. 우선은 그냥 “Validate”를 클릭한 뒤, 이상이 없다면 “Save/Close” 클릭해 스크립트를 저장해줍시다.
에이전트 설치하기
컨트롤러 설정이 끝났다면, 이제 실제로 부하를 발생시킬 에이전트를 설치할 차례입니다. 컨트롤러 설치와 비슷합니다.
위 버튼을 눌러 에이전트 파일을 받아줍시다.
그리고 해당 파일을 터미널 명령위치로 옮겨 압축을 풀어줍니다.
1
$ tar -xvf ngrinder-agent-3.5.8-localhost.tar
이제 해당 폴더로 이동한 뒤,
1
cd ngrinder-agent
에이전트를 실행해줍니다.
1
$ ./run_agent.sh
이렇게 복잡한 실행로그가 뜨면 성공입니다.
부하테스트 시작해보기
agent Management로 이동해줍니다.
그러면 방금 설치 했던 에이전트가 활성화되어있는 것을 확인할 수 있습니다.
혹시 Disapproved가 활성화 되어있다면 Approved를 눌러 해당 에이전트를 활성화 해줍시다.
만약 에이전트가 없다면 에이전트를 올바르게 설치했는지 다시 확인해주세요.
그럼이제 위의 로고 옆에 Perfomance Test 탭으로가서 본격적으로 부하테스트를 시작해봅시다.
오른쪽에 있는 파란 Create Test를 누르면, 다음과 같은 화면을 만날 수 있습니다.
우선 nGrinder가 잘 동작하는지만 확인해볼 수 있도록 이름과 agent수, Vuser per agent를 작게 설정해줍시다. 스크립트는 아까 만들어둔 기본 스크립트를 지정해주도록 합시다.
그리고 위의 Save and Start를 눌러 부하테스트를 진행하도록 하겠습니다.
시간을 예약할수도 있지만, 우리는 당장 부하테스트를 진행해야 하므로 Run Now를 통해 즉시 실행해줍시다.
잠시 기다리면, 다음과 같은 Test Running 창을 볼 수 있습니다.
댓글남기기