[nGrinder] 2-1. Controller 설치 2015-05-06

 nGrinder는 JVM에서 동작하게 되므로 JDK를 설치하고 배포된 파일을 톰캣을 활용하여 설치해야합니다. 추가로 테스트를 위해 많은 포트를 사용하게 되므로 방화벽에 의해 포트가 막혀있는지 확인하고 오픈할 필요가 있습니다.

※ 포스팅 참조 : [JAVA 개발환경설정] 3. 다운로드 및 설치
※ 현재(2015.05.07) java 8 – tomcat 8 버전에서 에러가 발생합니다. java 7 – tomcat 7버전을 사용해야합니다.

 

 1. nGrinder 다운로드
http://sourceforge.net/projects/ngrinder/files/ngrinder-3.3/ngrinder-controller-3.3.war
웹 아카이브 파일(WAR)로 배포 되며 직접 자바로 실행 또는 톰켓과 같은 WAS에 올려서 실행할 수 있다.

 

 2. 기본포트 오픈 : 설정변경 가능
- Agent : any => Controller : 16001
- Agent : any => Controller : 12000 ~ 12000 + n(동시 테스트 허용 수)
- Controller : any => Monitor : 13243
- Controller => User : 설정에 따라 다름 (톰캣의 경우 기본 8080)

 

 3. Tomcat Manager를 통한 설치

ngrinder

* Tomcat 매니저를 실행한다
  ※ 포스팅 참조 : [JAVA 개발환경설정] 6. Maven + Tomcat 배포 환경 셋팅
* server.xml에서 기본포트를 80으로 변경 및 Host 추가
  ※ 포스팅 참조 : [CentOS 7] step5. 서비스 설정
* 파일명을 ROOT.war로 변경하여 배포
* "FAIL - Deploy Upload Failed, Exception: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (72346471) exceeds the configured maximum (52428800)" 에러가 발생하면 {Service ROOT}/manager/WEB-INF/web.xml에서 max-file-size, max-request-size 의 용량을 알맞게 수정

 

4. Perm Gen 메모리 설정 : nGrinder는 편의성을 고려하여 여러 라이브러리(SVNKit, Maven, Jetty Web Server, Groovy, Jython 등) 를 포함하고 있어 메모리를 많이 필요로 하게 된다.
vi ${TOMCAT_HOME}/bin/catalina.sh

## 실행옵션에 다음내용을 추가
JAVA_OPTS="-Xms600m -Xmx1024m -XX:MaxPermSize=200m"

 

5. 정상 설치 되었음을 확인한다.

ngrinder_

초기화 계정
- ID : admin 
- PASSWORD : admin

[nGrinder] 1. 기본 개념 2015-05-06

 nGrinder는 여러 머신으로 구성된 시스템에 테스트 스크립트 실행(부하테스트)을 도와 주는 어플리케이션으로 jython(python running on JVM)으로 만들어졌습니다.

 NHN에서 Grinder프로젝트의 console 과 agent 를  확장해 nGrinder를 만들었으며 몇몇 기능이 추가되어 복합적인 동시 테스트를 가능하도록 지원합니다.

ngrinder

주요 컴포넌트는 다음과 같습니다.

>>> Controller

* 퍼포먼스 테스팅(부하테스트)를 위하여 웹인터페이스를 제공합니다.

* 테스트 프로세스를 체계화 합니다.

* 테스트 결과를 수집해 통계를 보여줍니다.

>>> Agent

* agent 모드가 실행되면 프로세스와 스레드를 실행시키고 테스트 대상 서버에 부하를 발생시게 됩니다.

* monitor 모드가 실행되면 대상 시스템의 CPU와 Memory를 모니터링 하게 됩니다.

 

자세한 설명은 다음 링크를 참조

출처(wiki) : http://www.cubrid.org/wiki_ngrinder/entry/general-architecture

 

[TIP] 아파치 인증 2015-04-22

간단하게 인증이 필요한 페이지를 개발하고자 할때 아파치에서 제공하는 인증기능을 사용할 수 있다. 디자인이 필요없고 서버단에서의 세션관리 기능을 구현할 필요가 없어 편리하다.
윈도우 리눅스 모두 가능하다.

 

1. 접근경로 최상위 폴더에 .htaccess파일을 생성하고 다음과 같이 설정한다.
AuthName "{인증명 - 인증창에 보여지게 됨}"
AuthType Basic  #인증유형 기본 Basic
AuthUserFile {인증정보저장 경로}/.htpasswd
#AuthGroupFile {그룹명}    # 그룹별 인증 원할경우
# GET POST 방식의 접근만 허용하도록 설정
<Limit GET POST>
   require valid-user   # 인증된 사람만이 접속을 허용
</Limit>
2. htpasswd 명령을 실행하여 사용자를 생성합니다.
# 최초 생성
{apache 경로}/bin/htpasswd -c .htpasswd {아이디}
# 아이디 추가
{apache 경로}/bin/htpasswd .htpasswd {아이디}
3. 인증창에 설정한 아이디 비밀번호를 입력해야만 접근이 가능함

apacheAuth

4. 인증된 상태로만 유지될 경우 보안에 문제가 생기므로 다음과 같이 로그아웃을 처리해야만 함
header('HTTP/1.1 401 Unauthorized', true, 401);
echo "{화면에 표시될 로그아웃 메시지 (※ html로 구성가능)}";
exit;