Blog Content

    티스토리 뷰

    [nGrinder] 설치작업

     

     


    ngrinder는 NHN에서 오픈 소스 기반인 The Grinder를 확장하여 만든 부하 테스트툴 로써 WAS 기반으로 동작 하며, jython/groovy/groovy+maven을 지원

    Controller : WAS를 통해 UI 기반으로 동작 하며, 성능 테스트를 위한 웹인터페이스/테스트 프로세스 조정/표시 통계 테스트 기능이 제공 됩니다.
    Agent : Controller로부터 테스트 코드를 받아 실행에 옮기는 Worker 개념 입니다.
    Target : 테스트 대상으로, Target 서버에 nGrinder-Monitor가 설치 및 실행 되면 테스트 간 상황 정보를 Controller에서 모니터링이 가능 합니다.








    참고로 nGrinder 에서는 기본적으로 jar 파일을 리소스에 올린 후 DBMS에 접근하게 됩니다.

    nGrinder 의 단점은 agnet 서버가 JVM 으로 실제 DB서버부하용으로 사용 시에는 원하는 만큼의 QPS 를 발생 시킬 수 없으며
    테스트서버에서의 (데스크탑) 측정량은 쉘 대비 최소 5배 이상의 차이가 있으며, agent 서버의 CPU 부하가 너무 크기 때문에
    프로세스 수를 늘려서 테스트가 쉽지 않고 쓰레드수를 늘려도 CPU 부하가 심하다.

    결론적으로 원하는 만큼의 부하를 주기 위해서는 많은 agent 서버가 필요하며, 비용대비 효과가 많지 않다고 판단된다.

    ---------------------------------------------------------------------------------------------------------------
    Step.0 설치서버 환경검수 (ALL)
    ---------------------------------------------------------------------------------------------------------------

    root@gamedb01:/opt2/ngrinder# java -version
    java version "1.8.0_77"
    Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
    Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

    ---------------------------------------------------------------------------------------------------------------
    Step.1 Download (host1)
    ---------------------------------------------------------------------------------------------------------------

    jdk-7u80-linux-x64.tar.gz

    ngrinder-controller-3.3.war : 톰켓 내부에 설치되는 ngrinder-controller 소스받기

    apache-tomcat-9.0.0.M11.tar.gz : 톰켓의 경우 소스설치 하지 않고 apt-get 으로 설치 합니다. (선택사항)

    ---------------------------------------------------------------------------------------------------------------
    Step.2 Setup (host1)
    ---------------------------------------------------------------------------------------------------------------

    ※ 자바 설치

    > sudo add-apt-repository ppa:webupd8team/java
    > sudo apt-get update
    > sudo apt-get install oracle-jdk7-installer
    > java -version


    ※ 톰캣설치

    > sudo apt-get install tomcat7
    > sudo chown tomcat7:tomcat7 /usr/share/tomcat7
    > sudo vi /usr/share/tomcat7/bin/catalina.sh


    상단에 자바 옵션 값 설정

    JAVA_OPTS="-Xms600m -Xmx1024m -XX:MaxPermSize=200m"



    ※ nGrinder 컨트롤러 설치

    > cd /var/lib/tomcat7/webapps/
    > mv /opt/ngrinder-controller-3.3.war ngrinder-controller-3.3.war


    ※ 톰캣의 자바홈 경로 설정

    $ sudo vi /etc/default/tomcat7
    JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")




    ※ 톰캣 시작 및 로그확인

    sudo service tomcat7 start

     

     

    > sudo tail -f /var/log/tomcat7/catalina.out

    > sudo tail -f /usr/share/tomcat7/.ngrinder/logs/ngrinder.log
    > ps -ef | grep java*


    http://<Server IP>:8080/ngrinder-controller-3.3

    • 방화벽 활성화 여부 확인 : $ sudo ufw status
    • 외부에서 접속 가능한지 telnet으로 확인 :telnet <IP> <Port>


    nGrinder 사이트 확인

     



    ---------------------------------------------------------------------------------------------------------------
    Step.3 JAVA 로 직접 nGrinder 실행하기 (host1)
    ---------------------------------------------------------------------------------------------------------------

    직접 실행 시 포트변경 과 JAVA 옵션을 변경해서 실행 할 수 있습니다.

    ※ nGrinder Download

    $ sudo mkdir /ngrinder
    $ cd /ngrinder
    $ sudo wget http://downloads.sourceforge.net/project/ngrinder/ngrinder-3.3/ngrinder-controller-3.3.war


    ※ nGrinder 자바로 직접 실행

    > sudo java -XX:MaxPermSize=200m -jar ngrinder-controller-3.3.war --port 80

    nGrinder 실행 시 Failed to get local hostname 에러가 발생 한다면 hostname 변경

    $ sudo vim /etc/hostname
    hostname으로 private IP 등록

    $ sudo hostname <private IP>



    ---------------------------------------------------------------------------------------------------------------
    Step.4 nGrinder Agent 설치하기 (host2)
    ---------------------------------------------------------------------------------------------------------------

    일단 아래와 같이 admin 사이트에서 에이전트를 다운로드 받을 수 있으며 또는 명령어로도 가능 합니다.

    http://<private IP>:8080/ngrinder-controller-3.3/agent/download

      ngrinder admin 경로에서 Agent 다운로드 받기

    Agent 는 Admin 과는 별도의 서버에 설치하게 되며, 실제 성능테스트 환경에서는 10대 정도의 Agent 서버 정도는 이용하시길 권장 ^^

    > sudo mkdir /usr/share/ngrinder
    > cd /usr/share/ngrinder

    > sudo wget -O ngrinder-agent-3.3.tar http://<private IP>:8080/ngrinder-controller-3.3/agent/download


    ※ tar 압축 해제 및 환경설정 확인

    > sudo tar xvf ngrinder-agent-3.3.tar
    > cd ngrinder-agent


    > sudo vi __agent.conf

    agent.controller_host 의 정보가 host 1번 (10.10.40.51) 을 바라보고 있는 걸 확인할 수 있습니다.



    ※ Agent 권한 설정

    굳이 권한 설정할 필요가 있는지?

    > groupadd ngrinder
    > useradd -g ngrinder ngrinder
    > sudo chown ngrinder:ngrinder /usr/share/ngrinder/ngrinder-agent/run_agent.sh
    > sudo chown ngrinder:ngrinder /usr/share/ngrinder/ngrinder-agent/run_agent_bg.sh
    > sudo chmod u+x /usr/share/ngrinder/ngrinder-agent/run_agent.sh
    > sudo chmod u+x /usr/share/ngrinder/ngrinder-agent/run_agent_bg.sh


    ※ Agent 실행

    background 로 실행한다.

    > sudo sh run_agent_bg.sh

    서버 재 시작 시 Agent 자동 실행을 위해서 rc.local 에 쉘 실행 명령어 등록한다.

    $ sudo vim /etc/rc.local
    ....
    sh /usr/share/ngrinder/ngrinder-agent/run_agent_bg.sh

    exit 0



    아래와 같이 admin 사이트의 에이전트 관리 메뉴로 들어가면 방금 실행한 gamedb03 에이전트가 승인된걸 확인할 수 있다.

     

    ※ Agent 서버 open files 조정

    > vi /etc/security/limits.conf

    root            soft    nproc           64000
    root            hard    nproc           64000
    root            soft    nofile          64000
    root            hard    nofile          64000


    ---------------------------------------------------------------------------------------------------------------
    Step.5 nGrinder Monitor 설치하기 (target test server)
    ---------------------------------------------------------------------------------------------------------------

    nGrinder 모니터는 테스트 타겟 서버에 (ex: MySQL 장비) 설치하여 해당 서버의 시스템 상태 (CPU, RAM, NETWORK) 을 측정할 때
    사용하는 어플리 케이션 입니다. 에이전트와 마찬가지로 nGrinder Controller 에서 다운로드 가능 합니다.

    내부적으로 성능 수집 프로그램이 있다면 별도 설치는 필요 없을 거 같습니다.


    1.Download the monitor.
         

    2.Then untar the monitor package and run the batch or shell files.
         run_monitor_bg.sh  # for linux / mac

         or
         run_monitor.bat # for windows

    3.If you want to stop the monitor, run following commands.
         stop_monitor.sh # for linux / mac
         or
         stop_monitor.bat –o # for windows


    Port 관련 Network 관리자 확인사항


    ---------------------------------------------------------------------------------------------------------------
    Step.6 방화벽 고려사항
    ---------------------------------------------------------------------------------------------------------------

    nGrinderagentagent끼리 통신을 하기 위해 다수의 포트를 사용합니다.

    방화벽 정책을 확인하고 포트가 막혀있는지, 막혔다면 열어주어야 합니다.

    Agent: any ==> Controller : 16001

    Agent : Any ==> Controller : 12000 ~ 12000+ (동시 사용자 테스트를 할 수 만큼)

    Controller : Any ==> Monitor :13243

    Controller ==> Public User : 톰캣 설정에 따라 달라집니다.



     

    'OpenSource' 카테고리의 다른 글

    GrayLog 설치하기  (0) 2017.05.24

    Comments