nGrinder

NOWNIZ·2023년 1월 26일
0

Blah Blah

목록 보기
1/9

nGrinder란?

서버의 부하 테스트를 위한 도구

→ WAS를 서비스하기 전에 서버가 얼마나 많은 사용자를 수용할 수 있는지 요청을 전송해봄으로써 서버의 성능을 측정해볼 수 있다.

이러한 nGrinder는 ControllerAgent로 이루어져 있다.

  • Controller (테스트 유저가 직접적으로 관여하는 부분)
    • 성능 측정을 위한 웹 UI 제공
    • 테스트 프로세스 조정
    • 테스트 통계를 수집하고 표시
    • 스크립트 수정 기능 제공
  • Agent
    • 대상 시스템에 부하를 주는 프로세스 및 스레드를 실행 (Agent 모드)
    • 대상 시스템 성능 (CPU / Memory) 모니터링 (Monitor 모드)

성능 측정 설정 속성 정리

  • Agent
    • 성능 측정에 사용할 Agent 개수
    • Agent를 여러개로 구성하고 싶을 경우 다수의 인스턴스가 필요
  • Vuser per Agent
    • Agent 당 설정할 가상의 유저 수
    • 동시접속자를 가늠할 수 있다
  • Process / Thread
    • 하나의 Agent에서 생성할 프로세스와 스레드 개수
  • Script
    • 성능 측정 시 각 Agent에서 실행할 스크립트
    • 앞서 API 호출 과정에서 생성한 Script를 연결하거나 (.groovy 이용) Github에서 가져올 수 있다
  • Duration (HH:MM:SS)
    • 성능 측정 수행 시간
  • Run Count
    • 스레드 당 테스트 코드를 수행하는 횟수
  • Enable Ramp-up
    • 성능 측정 과정에서 가상 사용자를 점진적으로 늘리도록 활성화
  • Initial Count
    • 처음 시작 시 가상 사용자 수
  • Initial Sleep Time
    • 테스트 시작 전 대기 시간
  • Incremental Step
    • Process 또는 Thread를 점진적으로 증가시키는 개수
  • Interval
    • Process 또는 Thread를 증가시키는 시간 간격

서버 내 작업 경과 (설치)

내부 서버 구성

  • WAR 파일을 통한 java controller 실행방식
    • 추후, Docker 형태의 서비스 실행방식도 고려해볼만 하다.

Controller 실행 방법

서버 내 디렉토리 생성 후 war 설치

mkdir /data/inst/ngrinder
cd /data/inst/ngrinder
wget https://github.com/naver/ngrinder/releases/download/ngrinder-3.5.5-p1-20210531/ngrinder-controller-3.5.5-p1.war

Controller 실행

java -jar ngrinder-controller-3.5.5-p1.war --port 7070

localhost 사이트 확인

http://localhost:[포트번호]/login 으로 접속하면 로그인 화면이 출력되며 초기 계정은 admin / admin 이다.

Agent 설치 방법

위 사이트에 로그인 한 뒤에 admin > Download Agent를 클릭하면 Agent 압축파일이 다운로드

tar -xcf ngrinder-agent-3.5.5-p1-localhost.tar

Agent 설정파일 수정

후에 AWS EC2에 nGrinder를 설정한다면, agent.controller_host=localhost 부분에 대한 타겟 수정을 해줘야한다.

$ vi __agent.conf

common.start_mode=agent
agent.controller_host=localhost
agent.controller_port=16001
agent.region=NONE

Agent 실행

./run_agent.sh

현재 남은 과제

실제 운용 중인 서버에 Agent를 실행시켜 성능 모니터링 → Script 작성이 필요하다

  • EC2
  • ECS Fargate

모니터링 결과물 형상 관리 방안 수립

유용한 데이터를 추출할 수 있는 REST API 목록 정리

타 팀 (ex. QA)에 전달하기 위한 Usage 가이드라인 작성

etc..

profile
DevOps & Cloud Engineering

0개의 댓글