nGrinder를 사용하여 성능 테스트를 수행하는 방법
nGrinder는 분산된 부하 테스트를 수행할 수 있는 오픈 소스 성능 테스트 도구입니다. nGrinder는 컨트롤러(Controller)와 에이전트(Agent)로 구성되어 있습니다. 컨트롤러는 테스트를 계획하고 모니터링하는 역할을 하며 에이전트는 테스트를 실행하는 데 사용됩니다.
1. Java 설치
nGrinder는 Java로 작성되어 있으므로 Java를 설치해야 합니다.
2. nGrinder 컨트롤러 설치
2.1 nGrinder 컨트롤러 다운로드
nGrinder 컨트롤러를 다운로드하고 원하는 디렉토리에 압축을 해제합니다.
mkdir -pv ~/ngrinder/ngrinder-controller
cd ~/ngrinder/ngrinder-controller
wget https://github.com/naver/ngrinder/releases/download/ngrinder-3.5.8-20221230/ngrinder-controller-3.5.8.war
2.2 컨트롤러 실행
nGrinder 컨트롤러를 실행합니다.
java -jar ngrinder-controller-3.5.8.war
2.3 브라우저 액세스
컨트롤러는 기본적으로 8080 포트를 사용합니다.
브라우저에서 http://localhost:8080으로 접속하여 nGrinder 컨트롤러에 액세스할 수 있습니다.
http://localhost:8080
3. nGrinder 에이전트 설치
3.1 에이전트 다운로드
nGrinder 에이전트를 다운로드하고 원하는 디렉토리에 압축을 해제합니다.
cd ngrinder-agent
wget http://NGRINDER-SERVER-IP:8080/agent/download/ngrinder-agent-3.5.8.tar
3.2. 에이전트 실행
nGrinder 에이전트를 실행합니다. 컨트롤러의 IP 주소와 포트를 지정해야 합니다.
java -jar ngrinder-agent-3.5.2.war controllerIP:controllerPort
---
3.1 에이전트 다운로드
nGrinder 에이전트를 다운로드하고 원하는 디렉토리에 압축을 해제합니다.
wget http://NGRINDER-SERVER-IP:8080/agent/download/ngrinder-agent-3.5.8-NGRINDER-SERVER-IP.tar
tar xf ngrinder-agent-3.5.8-NGRINDER-SERVER-IP.tar
$ tree -L 1
.
├── __agent.conf
├── lib
├── run_agent.bat
├── run_agent_bg.sh
├── run_agent_internal.bat
├── run_agent_internal.sh
├── run_agent.sh
├── stop_agent.bat
└── stop_agent.sh
1 directory, 8 files
3.2. 에이전트 실행
nGrinder 에이전트를 실행합니다. 컨트롤러의 IP 주소와 포트를 지정해야 합니다.
cd ngrinder-agent
vim __agent.conf
common.start_mode=agent
agent.controller_host=NGRINDER-SERVER-IP
agent.controller_port=16001
agent.subregion=
agent.owner=
#agent.host_id=
#agent.server_mode=true
# provide more agent java execution option if necessary.
#agent.java_opt=
# provide more agent jvm classpath if necessary.
#agent.jvm.classpath=
# set following false if you want to use more than 1G Xmx memory per a agent process.
#agent.limit_xmx=true
# please uncomment the following option if you want to send all logs to the controller.
#agent.all_logs=true
# some jvm is not compatible with DNSJava. If so, set this false.
#agent.enable_local_dns=false
# please uncomment the following option if you want to run controller_to_agent connection mode agent.
#agent.connection_mode=controller_to_agent
#agent.connection_port=14000
# set following with the ip you want to broadcast yourself. Set this option if the agent needs to be discovered as public ip.
#agent.broadcast_ip=
./run_agent_bg.sh
$ bash run_agent_bg.sh
nohup: redirecting stderr to stdout
---
4. 테스트 계획 및 실행
컨트롤러에 액세스하여 테스트 계획을 만들고 실행합니다. nGrinder 사용자 가이드 및 문서에서 자세한 정보를 찾을 수 있습니다.
nGrinder 주요 설정 속성
주요 설정 속성으로는 Duration(테스트 시간), Run Count(실행 횟수), Ramp-Up(램프 업)이 있습니다.
1. Duration (테스트 기간)
Duration은 성능 테스트가 지속되는 시간을 의미합니다. 일정 시간 동안 시스템에 대한 부하를 유지하면서 성능을 측정합니다.
예를 들어, 10분 동안의 지속 시간을 설정하려면 다음과 같이 합니다.
# properties 파일 예시
grinder.duration = 600000 # 밀리초 단위, 여기서는 10분
2. Run Count (실행 횟수)
Run Count는 각 에이전트에서 테스트 스크립트를 실행하는 횟수를 나타냅니다. 테스트 시나리오에 따라 적절한 실행 횟수를 선택합니다.
예를 들어, 100,000번의 실행을 수행하려면 다음과 같이 설정합니다.
# properties 파일 예시
grinder.runs = 100000
3. Ramp-Up (램프 업)
Ramp-Up은 시스템에 부하를 조금씩 증가시키는데 사용됩니다. 모든 사용자가 동시에 시작되는 것을 방지하고 서버에 안정적으로 부하를 가하도록 합니다.
예를 들어, 100개의 사용자를 1분 동안 램프 업하려면 다음과 같이 설정합니다.
# properties 파일 예시
grinder.processes = 100
grinder.duration = 60000 # 1분
grinder.rampUp = 60000 # 1분 동안 100개의 사용자 램프 업
이러한 설정을 조절하여 특정 시나리오에 맞게 Grinder 성능 테스트를 수행할 수 있습니다. 설정 값은 테스트하려는 애플리케이션의 특성 및 목표에 따라 다르므로 적절한 값을 찾아가며 조절해야 합니다.
참고: nGrinder의 버전이 변경될 경우 해당 버전의 문서를 참조하여 더 자세한 정보를 얻을 수 있습니다. 이 가이드는 3.5.2 버전을 기준으로 합니다.
참고URL
- github : GitHub - naver/ngrinder: enterprise level performance testing solution
'리눅스' 카테고리의 다른 글
cut 명령어 (0) | 2023.11.29 |
---|---|
youtube-dl 명령어 (0) | 2023.11.28 |
Gradle을 사용하여 Spring Boot 프로젝트를 생성하는 방법 (1) | 2023.11.20 |
CentOS 7에서 Gradle을 설치하는 방법 (1) | 2023.11.20 |
쉘 스크립트에서 환경 변수를 설정하는 여러 가지 방법 (0) | 2023.11.20 |