jBoss를 설치하기 위해서 CentOS에 jdk 를 설치하는데, 약간의 문제가 발생했습니다.

문제라기 보단 제대로 설정을 하지 않고 진행했을 경우에 발생하는 현상입니다.

시스템을 자주 다뤄보고 설치해본 분이라면 문제가 될 것도 아니지만 어쩌다 시스템에 접근하는 개발자들에게는 이또한 당황스러운 시츄에이션임에는 분명합니다.

 

사실 리눅스든, 윈도우든 jdk설치하는것을 일도 아닙니다. 게다가 tomcat, jboss등의 WAS를 띄우기 위한 목적이라면 더더욱 다른 세팅은 건드리지 않아도 잘 돌아가기에 더더욱 문제가 없습니다.

 

다운받고 ==> 압축풀고 ==> 해당 was 설정에 path 강제 설정해주고 ==> 쪼금 더 나아가면 /etc/profile에 path 등록해 주는 정도...

 

하지만 리눅스 환경에서 컴파일이라도 할 요량이면 설치한 jdk의 버전이 정확히 java/ javac 명령어를 실행시켰을 때 작동해야 합니다.

평소에는 설치후 java -version 하면 아래와 같은 버전이 정상적으로 표시되었었습니다.

 

[root@test_centos_tomcat ~]# java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
[root@test_centos_tomcat ~]#

 

그런데 오늘은 이전에 설치했던 가상서버에(java 를 설치했는지 않했는지 헷갈릴정도 오래된...)서 java를 확인하는데, 아래와 같이 나옵니다.

 

[root@test_centos_tomcat ~]# java
Usage: gij [OPTION] ... CLASS [ARGS] ...
          to invoke CLASS.main, or
       gij -jar [OPTION] ... JARFILE [ARGS] ...
          to execute a jar file
Try `gij --help' for more information.
[root@test_centos_tomcat ~]# java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-3)

 

OpenJDK는 들어봤는데, gij .. 어쩌고 하는 것은 처음 봅니다.

 

기존 jdk를 어디에 설치했는지 찾아봅니다.

 

...#] which java

path 에 등록된 java만 나오고 그렇지 않는 java는 안나옵니다. 무식한 방법으로 find를 통해서 다 뒤졌습니다.

/usr/java/  밑에 위치하고 있습니다.

lrwxrwxrwx.  1 root root   16 Sep 24  2012 default -> /usr/java/latest
drwxr-xr-x. 10 root root 4096 Sep 24  2012 jdk1.7.0_07
lrwxrwxrwx.  1 root root   21 Sep 24  2012 latest -> /usr/java/jdk1.7.0_07

 

분명 설치는 되어 있습니다. 그런데 java -version 을 해보면 이상한 jvm의 version 정보가 나옵니다.

 

이제 변경해 보도록 하겠습니다. 사용할 명령어는 "alternatives"입니다.

 

[root@test_centos_tomcat ~]# alternatives --help

 

alternatives version 1.3.49.3 - Copyright (C) 2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage: alternatives --install <link> <name> <path> <priority>
                    [--initscript <service>]
                    [--slave <link> <name> <path>]*
       alternatives --remove <name> <path>
       alternatives --auto <name>
       alternatives --config <name>
       alternatives --display <name>
       alternatives --set <name> <path>

common options: --verbose --test --help --usage --version
                --altdir <directory> --admindir <directory> 

 

[root@test_centos_tomcat ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter to keep the current selection[+], or type selection number:

 

 

[root@test_centos_tomcat bin]# cd /etc/alternatives/
[root@test_centos_tomcat alternatives]# ll
total 0
lrwxrwxrwx. 1 root root 35 Jun 11 18:50 java -> /usr/lib/jvm/jre-1.5.0-gcj/bin/java
lrwxrwxrwx. 1 root root 32 Jun 11 18:50 jaxp_parser_impl -> /usr/share/java/libgcj-4.4.7.jar
lrwxrwxrwx. 1 root root 26 Jun 11 18:50 jre -> /usr/lib/jvm/jre-1.5.0-gcj
lrwxrwxrwx. 1 root root 26 Jun 11 18:50 jre_1.5.0 -> /usr/lib/jvm/jre-1.5.0-gcj
lrwxrwxrwx. 1 root root 34 Jun 11 18:50 jre_1.5.0_exports -> /usr/lib/jvm-exports/jre-1.5.0-gcj
lrwxrwxrwx. 1 root root 34 Jun 11 18:50 jre_exports -> /usr/lib/jvm-exports/jre-1.5.0-gcj
lrwxrwxrwx. 1 root root 26 Jun 11 18:50 jre_gcj -> /usr/lib/jvm/jre-1.5.0-gcj
lrwxrwxrwx. 1 root root 34 Jun 11 18:50 jre_gcj_exports -> /usr/lib/jvm-exports/jre-1.5.0-gcj
lrwxrwxrwx. 1 root root 38 Jun 11 18:50 keytool -> /usr/lib/jvm/jre-1.5.0-gcj/bin/keytool
lrwxrwxrwx. 1 root root 26 Sep 19  2012 mta -> /usr/sbin/sendmail.postfix
lrwxrwxrwx. 1 root root 40 Sep 19  2012 mta-aliasesman -> /usr/share/man/man5/aliases.postfix.5.gz
lrwxrwxrwx. 1 root root 22 Sep 19  2012 mta-mailq -> /usr/bin/mailq.postfix
lrwxrwxrwx. 1 root root 38 Sep 19  2012 mta-mailqman -> /usr/share/man/man1/mailq.postfix.1.gz
lrwxrwxrwx. 1 root root 27 Sep 19  2012 mta-newaliases -> /usr/bin/newaliases.postfix
lrwxrwxrwx. 1 root root 43 Sep 19  2012 mta-newaliasesman -> /usr/share/man/man1/newaliases.postfix.1.gz
lrwxrwxrwx. 1 root root 23 Sep 19  2012 mta-pam -> /etc/pam.d/smtp.postfix
lrwxrwxrwx. 1 root root 22 Sep 19  2012 mta-rmail -> /usr/bin/rmail.postfix
lrwxrwxrwx. 1 root root 25 Sep 19  2012 mta-sendmail -> /usr/lib/sendmail.postfix
lrwxrwxrwx. 1 root root 41 Sep 19  2012 mta-sendmailman -> /usr/share/man/man1/sendmail.postfix.1.gz
lrwxrwxrwx. 1 root root 42 Jun 11 18:50 rmiregistry -> /usr/lib/jvm/jre-1.5.0-gcj/bin/rmiregistry
[root@test_centos_tomcat alternatives]# cd
[root@test_centos_tomcat ~]# getconf LONG_BIT
64

 

 

목록에 새로이 설치한 java가 존재하지 않습니다. 추가해 줍니다.

 

 ~]# alternatives --install /usr/bin/java java /usr/java/latest/bin/java 2

 

목록을 확인합니다.

 

[root@test_centos_tomcat ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
* +  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

      2           /usr/java/latest/bin/java

Enter to keep the current selection[+], or type selection number: 2

 

첫번째가 디폴트로 설정되어 있고 이를 변경합니다.

이제 새로인 설정한 java 가 기본으로 잡힙니다.

 

 ~]# /usr/sbin/update-alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
  + 2           /usr/java/latest/bin/java

 

자바 버전을 다시 확인해 보겠습니다.

 

[root@test_centos_tomcat ~]# java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

 

정상적으로 나옵니다.

 

이런식으로 여러개의 jdk를 설치해 놓고 각각 어떤 것을 사용할 것인가 결정하도록 합니다.

 

요약해 보면 다음과 같습니다.

1. java 설치

/usr/java/ 이하에 설치되지만 경로를 변경해서 설치 가능

 

2. export path, classpath 등록 (/etc/profile 에 추가)

   

    export JAVA_OPTS="-Xms256m -Xmx1024m -XX:MaxPermSize=128m"

 

    export JAVA_HOME=/usr/java/latest
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH="."

 

3. alternatives를 이용해서 디폴트 java 설정.

 

 ~]# alternatives --config java 확인

없으면 install (기본적으로 없는게 맞을듯.)

~]# alternatives --install /usr/bin/java java /usr/java/latest/bin/java 2 <--숫자는 몇번째 위치시킬꺼냐의 의미. 크게 중요치 않음. 큰숫자를 넣어도 됨.

~]# /usr/sbin/update-alternatives --config java 로 설치된 java 설정.

 

IBM AIX 에 설치되는 IBM jdk도 linux 에 설치해보고 해당 JVM에서의 프로그램 동작여부를 확인할때 설정 변경해서 사용하면 될것 같습니다.

 

 

 

 



Stress Test Tool 도입을 검토하면서 첫번째로 테스트해 본 것이 nGrinder입니다.


nGrinder를 설치는 복잡하지 않습니다.


참고 : http://www.nhnopensource.org/ngrinder/


다운로드 : https://github.com/nhnopensource/ngrinder/downloads

- Controller, agent 두 개를 다운로드 합니다.


관련 문서는 다음을 참고하시면 됩니다.

- Install Guide : http://www.cubrid.org/wiki_ngrinder/entry/installation-guide

- User Guide : http://www.cubrid.org/wiki_ngrinder/entry/user-guide





대략적인 설치과정 중 에 몇가지만 번역&정리 해 보았습니다.


1. Install Controller

- war 파일을 webapps 디렉토리에 넣기만 하면 됩니다. (버전관련 부분은 빼버립니다.)

ngrinder-controller-3.0.3.zip ==> ngrinder-controller.war 로 변경

 

- catalina.sh에 다음의 옵션을 추가합니다.

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

cf:>windows set JAVA_OPTS=-Xms600m -Xmx1024m -XX:MaxPermSize=200m

의 형식으로...

 

- 톰캣을 시작한뒤 http://hostname:port/ngrinder-controller 으로 접속합니다.

virtual host를 사용할 경우엔 Root.war로 이름을 바꿔서 올립니다.(이 부분은 톰캣 설정부분을 참고하세요.)

 

2. Install Agent

Agent프로그램은 두가지 형태로 사용됩니다.

- Target Server(실제 테스트하려는 서버: 서비스를 담당하는 서버)에 설치될 경우 성능모니터링 서버로 작동하고

- controller가 설치된 서버나 다른 agent Server 에 설치될 경우 stress injection 서버로 작동합니다. 

  사이트 환경에 맞게 변경해서 사용하려면 에이전트 설정을 변경해야 하는데 관련 파일이 몇개 됩니다. 이부분은 다음 심화(?)에서 연구해보고자 합니다. 


- Agent를 설치하려는 서버의 JAVA_HOME 을 다시 확인하고 Agent파일을 압축해제하기만 하면 됩니다.

window : xxxx.zip 파일

Linux : xxx.tar.gz

- 설치 디렉토리를 보면 ngrinder-core 관련 jar파일과 .sh(bat) 실행파일도 존재하는걸 확인할수 있습니다.

- run_agent.sh 또는 run_agent.bat를 실행함으로 설치는 완료됩니다.

- agent가 실행되면서 .ngrinder_agent 라는 디렉토리가 계정홈에 생성됩니다.

- .ngrinder_agent로 이동해서 agent.conf파일을 수정합니다.


# agent 모드로 사용할 경우 사용되는 설정변수

start.mode=agent

agent.console.ip=ngrinder-controller(tomcat)이 실행중인 서버 IP

agent.console.port=16001

#agent.region=

 

# monitor 모드로 사용할 경우 사용되는 설정변수

#monitor.listen.port=13243

#monitor.collector.interval=1

#monitor.controller.cache.size=128

#monitor.collector.interval=1


변경후 agent를 재실행 후 접속을 시도해 봅니다.

 agent shutdownstop_agent.sh / stop_agent.bat &  입니다.

  

3. Install Monitor

모니터링을 실행하기위해서 다음의 명령어만 실행하면 됩니다.


run_monitor.sh / run_monitor.bat &

 

  

Port 관련 Network 관리자 확인사항

 

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

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

Agent: any ==> Controller : 16001

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

Controller : Any ==> Monitor :13243

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

 

 

실행순서 요약 :

1. controller (Tomcat) 실행 / monitor 실행

2. agent 실행

3. agent가 신규로 추가될 경우 admin==> 에이전트관리 목록에서 미승인된 agent를 승인해주어야 합니다.

 

* 오류로그 중에서 hostname 관련 오류가 발생한다면 /etc/hosts 파일을 변경합니다.


127.0.0.1 hostname <== localhost로 되어있다면 서버hostname으로 변경합니다.


설치는 생각보다 어렵지 않습니다. 하지만 제대로 된 스트레스 테스트를 하려면 설정이 더 중요합니다.


이에 대한 부분은 다음 포스팅을 준비하면서 연구해보도록 하겠습니다.





알면 간단한데, 까먹을때를 대비해서 적어두자.


CentOS에 java1.7, apache-tomcat7 을 설치해서 서비스하기까지 과정.


1. java, tomcat 모두 gz파일을 다운받는다.


-rw-r--r-- 1 root root  7697071 Jan 14 10:51 apache-tomcat-7.0.30.tar.gz

-rw-r--r-- 1 root root 96159666 Jan 14 10:51 jdk-7u10-linux-x64.tar.gz


2. 다운받은 파일을 전부 압축해제한다. 


일반적으로 폴더명은 최대한 간단하게 하기위해서 뒤의 버전관련 정보는 버린다.


tar zxvf apache-tomcat-7.0.30.tar.gz 

mv apache-tomcat-7.0.30 apache-tomcat


tar zxvf jdk-7u10-linux-x64.tar.gz

mv jdk1.7.0_10/ jdk1.7


3. java 는 /usr/java 디렉토리를 만들어서 옮긴다.


mkdir -p /usr/java

mv jdk1.7/ /usr/java/


vi /etc/profile

export JAVA_HOME="/usr/java/jdk1.7"

PATH="$JAVA_HOME/bin:$PATH"


source /etc/profile 


4. apache-tomcat 은 /usr/local에 위치시킨다.


 mv apache-tomcat /usr/local/


명령어위치를 기억하기도 어렵고 또 패스가 길어서 alias를 추가한다.

홈디렉토리로 이동한다.


vi .bashrc


alias tomcat='/usr/local/apache-tomcat/bin/catalina.sh'

alias tomcatlog='tail -f /usr/local/apache-tomcat/logs/catalina.out'


source .bashrc


tomcat start / stop  으로 시작/종료를 한다.


http://192.168.0.111:8080 으로 확인한다. 


5. server.xml 변경

    virtualhost 관련 포스팅은 추후 정리할 예정




« PREV : 1 : 2 : 3 : NEXT »