윤준호님 블로그를 보면서 nGrinder 을 설치해보려고 합니다만 잘 안되네요.
소스포지에서 ngrinder-controller-3.2.1.war 을 받아서 기존 tomcat 에 배포를 했는데, 16001 포트가 보이질 않습니다. CentOS 5.x 이고, JDK 는 OpenJDK 7 입니다. 로컬 PC(Windows)에 Agent 받아서 agent mode 로 실행하면 16001 포트로 접근하려고 하나, 16001 에 접속이 안됩니다. 어떻게 해결하면 될까요? 조언 부탁드립니다. |
Administrator
|
Openjdk 는 지원하지 않습니다. 오라클 jdk를 설치하세요.
|
오라클 JDK7 로 바꾸고 실행했습니다만, 동일한 증상이네요.
netstate -na | grep 16001 의 결과가 없습니다. $tomcat_home/webapps/ 에 war 파일 넣고 실행하면 16001 포트를 사용하는 데몬이 자동 실행되는 건가요? |
Administrator
|
예 그렇습니다.
아무래도 로그를 확인해야 겠네요.
~/.ngrinder/logs 폴더내의 로그를 올려주시면 확인해 보도록 하겠습니다.
-----Original Message----- If you reply to this email, your message will be added to the discussion below:
http://ngrinder.642.n7.nabble.com/Controller-16001-tp794p796.html
To start a new topic under ngrinder-user-kr, email [hidden email]
To unsubscribe from ngrinder-user-kr, click here. NAML |
tomcat 로그에 올라오는 것만 봤는데, 거기에 다른 로그가 찍히고 있었네요.
net.grinder.communication.CommunicationException: Could not bind to address '61.78.xxx.xxx:16001' java.net.BindException: Cannot assign requested address 이런 오류가 발생했네요. controller 와 agent 모두 같은 내부 IP 에서만 동작하는 것이라 별 신경을 안썼는데... 그런데 이상한게 61.78. 로 시작하는 저 IP 는...제가 있는 곳과는 무관한 IP 인거 같은데...정체가 뭘까요? |
Administrator
|
서버에 여러개의 IP 가 있을 경우, ngrinder는 현재 머신의 IP 판단을 다음과 같이 합니다.
1. 자바의 InetAddress.getLocalAddress()로 현재 IP를 리졸브 2. 만약 위에서 localhost(127.0.0.1) 가 리턴될 경우, 구글로 연결을 시도하여 이때 사용한 Public IP로 Binding
말씀 하신 경우는 해당 머신이 여러 IP를 가지고 있고, 1번에서 해당 머신에서 특수 용도로 사용한 엉뚱한 IP가 리턴된 듯 합니다. 보통 리눅스에서 자바 프로그램을 돌릴때 유사한 문제가 많이 발생하고는 합니다. 이 경우에는 system.conf 파일을 오픈하시어, 바인딩할 IP를 직접 지정해 주면 됩니다.
ngrinder.controller.ipaddress=바인딩하고자하는IP주소
그 뒤에 재 시작 하시고 로그를 모니터링 해보세요.
|
아래와 같이 system.conf 에 설정이 되어 있는 상태였습니다.
ngrinder.controller.ip=192.168.0.xx 외부에서 보이는 IP 로 변경을 해보았습니다. #ngrinder.controller.ip=192.168.0.xx ngrinder.controller.ip=121.140.xxx.xxx 여전히 아래와 같은 문제가 발생하네요. ngrinder.log 조언 부탁드립니다. |
Administrator
|
몇가지가 의심됩니다.
1. 혹시 webapps 폴더에 war 파일이 2개 들어 있지 않나요? 두개의 ngrinder 가 뜨려고 시도할때 이런 문제가 발생할 수도 있습니다.
2. 퍼미션 문제? 특정 리눅스 환경에서는 툭정 토트를 Listening 하고자 할때 ROOT 퍼미션을 요구하는 경우가 있습니다,
확인해 보세요.
|
이렇게 $TOMCAT_HOME/webapps/ 에 존재합니다. 이전에 ngrinder.war 파일도 있었으나 그걸 뺀 상태에서도 마찬가지입니다. 원래 jenkins 용으로만 쓰던 깨끗한 OS 이고...jenkins 의 pam 플러그인을 이용한 로그인 부분 때문에 root 로 tomcat 을 띄우게 되어 있는 상태입니다. tomcat 은 tar.gz 파일 받아서 직접 bin 에서 startup.sh 로 실행하는 상태입니다. 아...램이 1G 인데(Xen Server 가상머신이라) Agent 가 램을 많이 먹는 건 알고 있었는데, 혹시 Controller 도 2G 이상 되어야 하는건가요? (이 증상과는 별 상관은 없겠지만 말이죠) |
Administrator
|
controller 도 약 1G 램을 사용합니다. 설정 가이드에 보시면 catalina.sh 를 편집하여 JAVA_OPTS 를 부여하도록 설명되어 있습니다.
python -m SimpleHTTPServer 16001 라서 하셔서 시스템이 16001 포트에 바인딩을 지원하는지 확인 부탁드립니다. |
잘 뜨네요. 제 PC 에서도 접근 잘 됩니다. catalina.sh 의 제일 하단에 JAVA_OPTS 을 추가해두긴 했습니다. |
Administrator
|
JAVA_OPTS는 일단 제일 위에 설정을 해야 합니다. 왜냐하면.. catalina.sh 에서 JAVA_OPTS를 확장하기 때문이죠.
제일 아래에 위치시키면 catalina.sh 에서 설정한 JAVA_OPTS 가 모두 덮어쓰기 됩니다.
그리고.. 지금 문제는 메모리 문제일수도 있겠다는 생각이 드는군요.
작은 메모리 공간을 여러 어플리케이션(Jenkins, ROOT, manager)이 확보하려다 보니..
Jenkins 도 요구하는 메모리가 상당한데, 거기다가 ngrinder 까지 있으니까요..
별도의 VM을 설치하시고(메모리 2G 정도) 거기에다가 ngrinder 를 설치하시기 바랍니다.
|
일단 현재 머신에 catalina.sh 에 JAVA_OPTS 위치를 변경시키고 실행했을 때에도 동일한 증상이 발생하네요.
내일 다시 가상머신을 하나 추가해서 작업해보고, 문제가 발생하면 다시 도움 부탁드리겠습니다. 꾸벅. 오늘 도움 주셔서 감사합니다. |
메모리 4G 로 올린 상태입니다.
그리고, jenkins 도 $TOMCAT_HOME/webapps 에서 뺐습니다. 동일한 증상이 계속 발생하네요. 무슨 이유인지 정말 모르겠네요. 혹시 hosts 파일과도 연관이 있을까요? 외부에 공개되는 서버가 아니라서 hosts 작업은 하지 않았습니다. |
Administrator
|
webapps 폴더에서 ngrinder 를 제외한 나머지를 모두 삭제해 보시고 해보세요. |
Administrator
|
In reply to this post by zepinos
|
미치겠네요. T.T
다른 디렉토리를 이동시켜도 안되고, 링크 걸어주신 tomcat 합본(tomcat 6 기반, 메모리 설정이 포함되어 있어서 별도 추가는 안했습니다) 역시 동일한 결과가 나오네요.
|
Administrator
|
system.conf 파일을 올려주세요. |
아래에 system.conf 파일 올립니다.
system.conf 그리고, 제 PC 에 링크 걸어주신 합본으로 시작하니 잘 되는군요. Windows 7 x64 이고, Oracle JDK 7 입니다. agent 도 잘 붙구요. 리눅스 서버와는 같은 공유기 아래에 있습니다. |
Administrator
|
ngrinder.controller.ip= 가 아닌..
ngrinder.controller.ipaddress=라고 쓰셔야 합니다.
제가 잘못 가이드 한듯 하군요.. -.-;
|
Free forum by Nabble | Edit this page |