티스토리 뷰

Docker

[Docker] nGrinder 사용법

Jane Kwon 2022. 1. 6. 19:56
반응형

 

nGrinder란, 네이버에서 서버의 부하 테스트를 위해 오픈 소스 프로젝트로 진행한 도구로,

애플리케이션을 서비스하기 전에 서버가 얼마나 많은 사용자를 수용 가능한 지 요청함으로써

서버의 성능을 측정해볼 수 있도록 도와준다.

 

 

 

nGrinder는 Controller와 Agent로 구성된다.

  • Controller :  성능 측정을 위한 웹 인터페이스를 제공하며, 테스트 수행 및 결과를 수집하여 시각화함
  • Agent : Controller의 명령을 받아 실행하며, agent 모드와 monitor 모드로 실행될 수 있음
    • agent mode : target 머신에서 프로세스 및 스레드를 실행하여 부하를 발생
    • monitor mode : target 머신의 CPU 및 Memory 사용량을 모니터링

 

 

 

 

 

Docker로 nGrinder 실행

아래 링크를 통해 쉽게 Docker로 실행하는 방법과 설명을 알 수 있다.

 

Docker Hub

 

hub.docker.com

 

Docker Hub

 

hub.docker.com

 

 

 

Controller 설치

% docker pull ngrinder/controller
Using default tag: latest
latest: Pulling from ngrinder/controller
6c40cc604d8e: Pull complete
93e89d51b14f: Pull complete
a9db8812b63a: Pull complete
3e0299ece4cc: Pull complete
018e62743d76: Pull complete
316cff05d08b: Pull complete
879040fac2a6: Pull complete
f05be963a0b6: Pull complete
Digest: sha256:bb669e6c63313337d50917554b38ce801e4300911a3ec8be99e1d3c3e64dd417
Status: Downloaded newer image for ngrinder/controller:latest
docker.io/ngrinder/controller:latest

Controller 실행

% docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller
  • 80 : Controller 웹 UI 포트
  • 9010-9019 : Agent를 Controller에 붙도록 해주는 연결 포트
  • 12000-12029 : Controller가 스트레스 테스트에 할당하는 포트

 

 

 

Agent 설치

% docker pull ngrinder/agent
Using default tag: latest
latest: Pulling from ngrinder/agent
6c40cc604d8e: Already exists
93e89d51b14f: Already exists
a9db8812b63a: Already exists
2c70c2da1dc5: Pull complete
61c897f05bc4: Pull complete
Digest: sha256:d6bf1c1c3eedf19d0946db224d8c19f71bf47aa9426ac8b6e37bbd15a4936baf
Status: Downloaded newer image for ngrinder/agent:latest
docker.io/ngrinder/agent:latest

Agent 실행

% docker run -d --name agent --link controller:controller ngrinder/agent

 

 

 

Docker 실행 컨테이너 확인

% docker ps
CONTAINER ID   IMAGE                 COMMAND             CREATED              STATUS              PORTS                                                                                NAMES
4515042cc9bb   ngrinder/agent        "/scripts/run.sh"   35 seconds ago       Up 35 seconds                                                                                            agent
a2f2cbbc8ca3   ngrinder/controller   "/scripts/run.sh"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 0.0.0.0:12000-12009->12000-12009/tcp, 0.0.0.0:16001->16001/tcp   controller

 

 

 

 

 

nGrinder 부하테스트 실행

 

http://localhost:80 또는 http://localhost로 접속 (초기 아이디 : admin / 패스워드 : admin)

상단 Script 메뉴에서 Create > Create a script 클릭

호출한 URL 정보를 입력 후 Create 클릭

  • Script Name : 스크립트 이름
  • URL to be tested : 테스트 하고자하는 API 주소
    * localhost 또는 127.0.0.1은 사용이 불가능하므로 로컬 서버일 경우 개인PC 환경설정에서 IP를 추출해서 기입

 

아래처럼 스크립트가 자동으로 생성된 후 Validate를 통해 스크립트에 문제가 없음을 확인

그럼 이제 테스트를 생성하기 위해 상단에 Performance Test 메뉴에서 Create Test를 클릭

테스트를 생성 후 Save and Start 버튼 클릭

  • Test Name : 퍼포먼스 테스트 이름
  • Basic Configuration
    • Agent : 스크립트 1개이므로 1 기입
    • Vuser per agent : 테스트할 사용자 수
      * 실행하는 Controller 서버 사양을 고려하여 설정하지 않으면 agent is about to die due to lack of free memory 라는 에러를 만날 수 있음
    • Script : 실행할 스크립트 선택
    • Duration : 실행할 시간 지정

 

 

 

그럼 이렇게 진행 중인 테스트의 실시간 데이터를 볼 수 있다.

(참고 : https://naver.github.io/ngrinder/)

 

 

 

 

 

반응형

'Docker' 카테고리의 다른 글

[Docker] openApiGenerate 사용 시 build failed 떨어지는 경우  (0) 2023.07.12
[Docker] Nexus  (0) 2021.02.10
[Docker] Jenkins  (0) 2021.02.10
[Docker] Redmine  (0) 2021.02.10
[Docker] Gitlab  (0) 2021.02.10
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함