728x90
반응형
SMALL
1. nGrinder Controller, nGrinder Agent 설치 및 실행
docker-compose.yml
version: '3.8'
services:
controller:
image: ngrinder/controller
restart: always
ports:
- "9000:80"
- "16001:16001"
- "12000-12009:12000-12009"
volumes:
- ./ngrinder-controller:/opt/ngrinder-controller
agent:
image: ngrinder/agent
restart: always
links:
- controller
$ docker-compose up
2. nGrinder 웹 접속
http://호스트아이피:9000/login
admin/admin

3.메뉴 설명

Performance Test
애플리케이션을 테스트하고 그 결과에 대해 조회할 수 있는 메뉴
Script
Perfomance Test를 하기 전 어떻게 테스트할 것인가를 작성하는 Script
4. 나의 서버에 nGrinder 등록상태 확인
admin
- Agent Management

5. Script 작성
Script
- Create
- Create a script

URL에 테스트 해야 할 API URL 입력 후 Create

Create 한 다음 Validate
로 스크립트 검증 후 Save

6. Performance Test 생성
Performance Test
- Create Test

6-1 생성
커스텀하게 세팅 해주고 Script는 이전에 만든 Script 입력력

- 테스트명 : 해당 테스트를 지정하는 이름
- Agent : 테스트에 사용할 Agent 갯수 지정. 현재 max가 1개 이지만 위 Docker를 통해 Agent를 생성하는 과정을 통해 갯수를 늘릴 수 있음
- Vuser per agent : Agent 별 Vuser의 수, 테스트할 사용자의 수
- Script : 테스트할 Script
- Duration : 테스트를 수행하는 시간
- Ramp-Up : 조금씩 사용자를 늘려나갈 때 사용
- 늘어나는 사용자의 숫자를 프로세스이기 때문에 Ramp-Up 기능을 사용하려면 프로세스 숫자가 높아야 한다.
- x축: 시간흐름, y축: 동시접속자
- ex) 초기 대기시간:2, Ramp-Up 주기: 2000 -> 즉, 2초마다 2개의 프로세스가 생성
- Initial Count : 초기 Process/Thread 수
- Increment Step : Process/Thread를 몇 개씩 증가시킬 건지
- Intial Sleep Time : 초기 대기 시간
- Interval : 얼마 주기로 증가시킬 건지
테스트 시나리오
- Agent 1대
- 테스트 유저: 3000명
- 테스트 시간: 3분
- Ramp-Up: 테스트 유저 1 부터 1초마다 유저 1씩 증가(1초마다 tps 증가)
6-2 Save and Start 클릭
테스트 시작 시간을 정한 후 Run Now
클릭

7. 부하테스트 결과 확인
Report 확인

8. Report 분석
더 자세한 결과를 원한다면 Detailed Report
확인
평균/최대 TPS: 5,347.7 / 6,168.5
에러율: Errors / Executed Test 345/931283 0.00037045667107%
평균 실행시간: 444.85ms

- TPS 자체는 5천 이상으로 기존 유저 수 3000을 웃도는 것을 보면 문제 없음(TPS 높으면 좋음)
- TPS가 조금씩 떨어지는 병목 구간이 확인되는데 Erros 쪽에 발생률이 조금 있는것을 확인할 수가 있음.
- Errors가 조금은 보이나 문제 될것은 없으나 0 을 지향하자. (에러율 0.00037045667107%)

728x90
반응형
LIST
'나의 주니어 개발 일기 > Docker(도커)' 카테고리의 다른 글
Pinpoint 를 통해서 모니터링을 해보자 (0) | 2024.05.13 |
---|---|
Docker-compose로 DB 스키마 자동생성 하는 방법 (0) | 2024.03.28 |
DOCKER COMPOSE의 환경변수 사용 방법 (0) | 2024.03.08 |
Docker overlay2 경로 이동 방법 (0) | 2024.02.27 |
Docker에서 log관리 안하면 디스크가 터진다. (0) | 2023.12.31 |