-
Spring 성능 테스트 With Ngrinder (1) - Ngrinder 설치DataBase/튜닝 2024. 8. 22. 15:17
엔그라인더는 크게 두 가지 구성요소로 되어있다.
1. Controller
- 성능 테스트를 위한 웹 인터페이스 제공
- 테스트 프로세스 조정
- 테스트 통계를 대조하여 표시
- 스크립트 만들고 수정
2. Agent
- 에이전트 모드로 실행할 때 대상 시스템에 로드를 가하는 프로세스 및 스레드 실행
- 모니터 모드로 실행할 때 대상 시스템 성능 모니터링
이제 컨트롤러와 에이전트를 다운받아야 한다.
2. nGrinder 설치 및 세팅
nGrinder의 Controller와 agent를 설치하기 위해선 JDK가 필요하다.
nGrinder는 통신을 위해 여러 포트를 사용하므로, 해당 포트가 방화벽에 걸리지 않는지 확인이 필요하다.
Agent : any -> controller 16001
Agent: any - > Controller 12000 ~ 12000+ (동시테스트 허용수만큼)
Controller : Any -> Monitor : 13243
Controller : public user : 톰캣 설정에 따르지만 기본은 8080이다.
2.1 nGrinder 공식 위키 설치 가이드
- ngrinder-controller-최신버전.war를 다운 받은 후 실행 (포트는 안겹치게 7071로 실행했다)
2.2 nGrinder 접속하기 localhost:포트번호/login으로 접속해보자
admin/admin으로 로그인하자
다음으로 메뉴창에서 에이전트를 다운한다.
다운받은 .tar파일을 압축을 푼다
윈도우는 .bat파일을 나머지 OS는 .sh파일을 실행하면 된다.
Agent menegement탭에 들어가면 잘 실행되는 모습을 확인할 수 있다.
2.3 스크립트 생성
상단의 스크립트 탭에 들어가면 스크립트를 생성할 수 있다.
문법을 설정하고, 요청보낼 URL을 설정하자
https://www.groovy-lang.org/syntax.html
위 공식문서를 들어가면 다양한 문법을 확인할 수 있다.
2.4 Validate버튼을 눌러 정상인지 체크해본다.
이때 Unsupported class file major version 61 에러가 난다면, JDK버전을 낮춰야한다. (11로!)
2.5 상단에 성능 테스트 -> 테스트 생성을 누르면 아래와 같은 화면이 나온다.
3. nGrinder 용어 정리
에이전트
- 성능 측정에 사용할 Agent
- 일반적으로 로컬에서 테스트 실행할 경우 디폴트는 1이다. (여러개는 Docker나 Cloud service 이용)
에이전트 별 가상 사용자
- 프로세스 수 * 쓰레드 수 = 각 Agent당 가상 사용자 수
- 동시에 요청을 날리는 사용자를 의미한다.
프로세스 및 쓰레드
- 한 Agent에서 생성할 프로세스와 그에 따른 쓰레드 개수
스크립트
- 성능 측정 시 각 Agent에서 실행할 스크립트
테스트 기간
- 성능 측정 수행 시간
- 시간이 넉넉해야 평균치가 잘 나온다.
Ramp-up 사용 체크박스
- 성능 측정 과정에서 가상 사용자를 점진적으로 늘리도록 활성화
- 점진적 부하테스트 시 사용
초기 개수
- 처음 시작 시 가상 사용자 수
초기 대기 시간
- 테스트 시작 시간
증가 단위
- 프로세스 또는 쓰레드를 증가시키는 개수
Ramp-up 주기
- 프로세스 또는 쓰레드를 증가시키는 시간 간격
* 지금 시작 혹은 예약 시작이 가능하다
* 실행 중에 로그를 보고 싶으면 에이전트 터미널을 보면 된다.
TPS (처리량)
- 초당 처리가능한 트랜잭션의 수를 뜻한다.
- TPS가 100이라면 초당 처리할 수 있는 작업이 100이라고 생각하자 -> TPS가 높을 수록 짧은 시간에 많은 작업 수행
Vuser
- 가상의 유저 -> vUser10은 가상 유저가 10명임을 나타낸다. 부하테스트 시나리오에서 10명의 가상 사용자가 동시에 시스템 또는 애플리케이션에서 동작하고 있음을 의미한다.
TPS: 평균 TPS
Peek TPS : 최고 TPS
Mean Test Time : 평균 테스트 시간
Executed Tests: 테스트 실행 횟수
Successful Tests : 테스트 성공 횟수
Errors : 에러 횟수
Run Time : 테스트 실행 시간
*TPS는 높고 Mean Test Time은 낮을 수록 성능에 긍정적이다.
4. 예시
*localhost테스트시 반드시 127.0.0.1로 지정해줘야한다.
샘플 스크립트가 작성된 것을 확인할 수 있고, 이를 validate로 검증한다 (이때 서버가 켜져있어야 한다.)
검증에 성공했다면, 스크립트를 저장하자
다음으로 Performance Test 탭으로 이동해서 create Test를 누르자
테스트를 셋팅할 수 있다.
'DataBase > 튜닝' 카테고리의 다른 글
불친절 SQL 2장 정리 (인덱스 기본) (0) 2024.08.19 불친절 SQL 1장 정리 (1) 2024.08.19 조인 튜닝 - 서브쿼리 조인 (0) 2024.08.08 조인 튜닝 - 소트 머지 조인 (0) 2024.08.07 조인 튜닝 - NL 조인 (0) 2024.08.07