인생을 코딩하다.

리눅스 서버에 ngrinder 설치하기 본문

Infra

리눅스 서버에 ngrinder 설치하기

Hyung1 2021. 8. 9. 01:24
728x90
반응형

다음 글 nGrinder를 이용한 성능 테스트를 진행하기 앞서, 리눅스 서버에 ngrinder를 설치하고 성능 테스트를 위한 환경을 구축해놓는 것에 관해 글을 작성해 보았습니다. 

 

설치하는 것에 작성하기에 앞서 간단하게 ngrinder 관해 설명해보도록 하겠습니다.

nGrinder란?

nGrinder는 네이버에서 성능 측정 목적으로 개발된 오픈 소스 프로젝트 입니다.

 

nGrinder는 서버에 대한 부하를 테스트 하는 것이므로 서버의 성능 측정이라고도 할 수 있습니다. 성능 측정이란 것은 실제 서비스에 투입되기 전, 실제와 같은 환경을 만들어 놓고 서버가 사용자를 얼만큼 수용할 수 있는지를 실험할 때 사용됩니다.

 

만약 이와 같은 테스트를 하지 않으면, 엔지니어가 동시 접속자를 1000명 정도로 예상하고 이에 맞는 설정을 구성하는데 예상에 넘는 동시 접속자가 발생해버리면 서버가 죽어버려 서비스를 할 수 없는 문제가 생깁니다.

 

이를 방지하기 위해 본 서비스에 앞서 테스트를 해 서버의 성능을 테스트 하는 것 입니다.

nGrinder의 구성요소는?

Controller

  • 웹기반의 GUI 시스템
  • 유저 관리 - 다른 컴퓨터를 유저로 관리
  • 에이전트 관리
  • 부하 테스트 실시 & 모니터링
  • 부하 시나리오 작성 테스트 저장 / 재활용

Agent

  • 부하를 발생시키는 대상입니다.
  • Controller의 지휘를 받습니다.
  • 복수의 머신에 설치해서 Controller의 신호에 따라서 일시에 부하를 발생합니다.

따라서 저는 Controller, Agent Server을 구축하였습니다. 

Controller , Agent 서버 구축

기본적으로 nGrinder와 같은 오픈소스를 이용한 성능테스트를 할때는 높은 성능의 서버를 이용하는 것이 좋습니다. 그래야 성능 테스트의 결과를 비교적 정확히 파악할 수 있습니다.

 

또한 Controller , Agent  그리고 테스트할 서버를 모두 각각 구축하는 것이 좋습니다. 만약 세 가지 요소들을 하나의 서버로 구동한다면 서버가 온전히 성능 테스트만을 위해 자원을 사용할 수 없게 됩니다. 따라서 정확한 수치를 산출해내기 어렵습니다.

 

저는 현재 was서버 두 대가 돌아가고 있기 때문에, Controller, Agent Server만 구축하였습니다.

  • Controller Server : [Standard] 2vCPU, 4GB Mem, 50GB Disk [g1]
  • Agent Server : [Standard] 4vCPU, 8GB Mem, 50GB Disk [g1]
  • Was1, 2 Server : [Compact] 1vCPU, 2GB Mem, 50GB Disk [g1]

저는 현재 금전적으로 여유가 없는 취준생이기 때문에, 10만 무료 크레딧을 제공해주는 네이버 클라우드 플랫폼에서 위 서버들을 생성하였습니다.

1-1. 우선  Putty를 사용하여 구축한 Controller Server 서버의 터미널에 접속한 후, JDK를 설치하여 줍니다.

nGrinder는 기본적으로 jdk가 설치되어있어야 동작합니다.

 

1. JDK 11 설치 (본인의 프로젝트이 버전에 맞게 설치하시면 됩니다.)

# sudo yum install java-11-openjdk-devel.x86_64

2. 환경 변수 설정

# readlink -f /usr/bin/javac

3. 환경 변수 설정

# vi /etc/profile

vi 편집기로 profile 실행하면 여러 내용들이 나올텐데, 맨 아래 HISTFILESIZE=0 아래에

HISTFILESIZE=0 // 아래에
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64 // 작성해 주시면 됩니다.

4. 변경 내용 저장

# source /etc/profile

1-2 nGrinder controller 설치

ngrinder 최신 릴리즈 파일 여기서 최신 버전을 확인해 줍니다.

 

(2021-08-09기준 최신버전 링크 : https://github.com/naver/ngrinder/releases/download/ngrinder-3.5.5-20210430/ngrinder-controller-3.5.5.war)

 

1. ngrinder controller 설치

wget https://github.com/naver/ngrinder/releases/download/ngrinder-3.5.5-20210430/ngrinder-controller-3.5.5.war

2. 설치가 완료되면 아래 명령어로 ngrinder 실행

java -XX:MaxPermSize=200m -jar ngrinder-controller-3.5.5.war

3. 공인IP:8080 포트로 ngrinder 접속(초기 ID/PW : admin)

 

로그인 하고 잠시 놔두고, 이제 putty를 이용해서 Agent Server 터미널에 접속해줍니다.

2. putty를 이용해서 Agent Server 터미널에 접속해줍니다.

1. Controller 서버의 nGrinder 접속 후 Agent 다운로드 ( ADMIN - Agent ManagentMent)

 

다운로드 링크를 복사 후 Agent 서버에 위 파일을 설치합니다.

wget http://{공인IP}:8080/agent/download/ngrinder-agent-3.5.5.tar

2. 다운로드한 tar 파일 압축 해제

sudo tar xvf ngrinder-agent-*.tar

3. 압축 해제한 폴더로 이동

cd ngrinder-agent

4. 해당 폴더에 agent.conf 파일 생성

 

Agent 파일을 UI에서 바로 다운로드하면 __agent.conf라는 파일이 함께 생성되는 반면에 위 예시처럼 링크를 통해 다운로드 진행시 해당 파일이 생성되지 않습니다. 따라서 직접 작성해줘야 합니다.

 

해당 폴더에 agent.conf 파일 생성 후 아래 내용을 입력합니다.

vi agent_conf
common.start_mode=agent
agent.controller_host= Controller IP주소
agent.controller_port=16001
agent.subregion=
agent.owner=

agent.controller_host에 controller가 설치된 IP주소를 입력하고 추가적으로 16001 포트 사용시 ec2또는 ncp 설정에서 반드시 해당 포트를 열어야합니다.

 

5. 설정이 완료되면 아래 명령어로 Agent를 실행합니다.

./run_agent.sh

정상적으로 실행됬다면,

위와 같은 화면을 보실 수 있습니다. 파랑색으로 칠한 부분은 공인 IP 입니다.

3. 연결 확인

위의 목차 1-2의 3번에서 접속해두었던 nGrinder에 다시 돌아가 admin - 에이전트 관리로 이동하면 방금 등록한 서버가 목록에 나타납니다.

 

따라오시느라 고생하셨습니다. 이제 다음 글 nGrinder를 이용한 성능 테스트를 보시면서 실제 성능 테스트를 진행해보도록 하겠습니다. 긴 글 읽어주셔서 감사합니다.

 

자세한 내용들은 아래의 링크에서 확인하실 수 있습니다.

https://github.com/f-lab-edu/black-postoffice  

 

GitHub - f-lab-edu/black-postoffice: 익명으로 편하게 고민, 일상을 공유하는 소셜 네트워크 서비스입니

익명으로 편하게 고민, 일상을 공유하는 소셜 네트워크 서비스입니다. Contribute to f-lab-edu/black-postoffice development by creating an account on GitHub.

github.com

 

728x90
반응형
Comments