다시 시작하는 블로깅의 첫 글은 scouter 사용법 동영상이다.


훌륭한 Free APM 인 scouter ~~~

동영상 조회수를 보니 많은 분들이 안본듯 하다. 

(사용할 생각이 있다면 꼭 보는게 좋다.)



1-1 : https://youtu.be/wv2uJ_oq1Xo

1-2 : https://youtu.be/qcDqF9_xhg0

2 : https://youtu.be/70_uY3ARsFM

3 : https://youtu.be/7TxzOIQlHIg


xlog 2004 : https://youtu.be/05ddjKx9UDM

Posted by tuning-java
,

APM에 대해서 올해 JCO에서 발표한 내용입니다. 

자세한 내용은 아래 링크 참조하세요. 

http://www.slideshare.net/cowboy93/now-and-future-of-apm

Posted by tuning-java
,
지난 주말 JCO에 갔다가 Byteman 이라는 툴을 알게 되었다.
사실 어떤 내용인지 모르고 Event Driven 세션 들어갔다가, 완존 약파는 (?) 내용인 것으로 보여서 후다닭 나온 다음에 이 세션으로 들어갔는데, 세션을 안 옮겼으면 후회할뻔 했다. 

http://www.jboss.org/byteman

작년에 JCO에서 내가 발표했던 BTrace(http://kenai.com/projects/btrace)의 단점이 보완 되었는지는 모르겠지만, 나름 훌륭한 툴인 듯 하다.  

발표자 분이 중간에 파일 찾다가 내가 작년에 발표한 파일이 있는 거 보고 약간 놀라긴 했지만, 재미있었다. ㅎㅎ 
 
Posted by tuning-java
,
Collectd라는 것이 있다.
http://collectd.org/
한마디로 이야기하면, 서버의 모니터링 정보를 모아서,
다른 서버로 전송하는 기능을 수행하는 데몬이라고 생각하면 된다.

다른 OS는 몰겠지만,
리눅스는 확실히 지원한다.

시작 하는 방법은 다음의 링크를 참조하기 바란다.
http://collectd.org/wiki/index.php/First_steps

파일 다운로드 받고, 압축풀고, 컴파일하기~~~

# cd /tmp/
# wget http://collectd.org/files/collectd-x.y.z.tar.bz2
# tar jxf collectd-x.y.z.tar.bz2
# cd collectd-x.y.z
# ./configure 
촤라락 촤라락
# make all install
....
# cd /opt/collectd/


위와 같은 명령이 정상적으로 수행 되었다면,
/opt/collectd에는 관련 설정파일들이 추가되어 있을 것이다.

사용법은 다음에...
Posted by tuning-java
,
http://www.ibm.com/developerworks/library/j-rtm1/index.html

메일에서 온 글을 보고 링크를 따라가 봤는데,
시간만 있다면, 이 글 보고 APM하나 맹글 수 있다는 생각이 든다.

뭐 시간이 없다는 것은 핑계일 뿐이지만... ^^;
Posted by tuning-java
,
제니퍼를 사용하다보면 X-View나 통계정보에 쿼리 목록이 안나올 때가 있다.

만약 DB의 Connection을 WAS에서 제공하는 것을 사용하지 않을 경우나,
다른 특이한 경우에 이런 일이 발생하게 된다.

그럴때에는 당황하지 말고, 다음과 같이 하면 된다.

1. 먼저 어떤 메소드에서 DB Connection을 맺는지 확인해야 한다.
제니퍼에 로긴하여
장애진단 - 유틸리티 - 로딩 클래스 목록을 찾아간다.
(만약 이 메뉴도 못찾아 가면 이 설명을 읽지 말기 바란다. ^^)

2. 로딩 클래스 목록중에서 DB와 연결을하는 getConnection 관련 메소드를 찾는다.
그 메소드의 매개변수까지 꼭 확인해야 한다.

3. w11.conf 나 w12.conf 와 같이 각 WAS 별 설정이 지정되어 있는 설정파일을 연다.
(제니퍼에서 관리도구를 통해서 설정하는 것이 더 낫다. 실시간으로 반영이 되기 때문에...)
거기서
jdbc_connection_get =
이라고 되어 있는 부분을 찾는다.
분명히 #으로 주석이 되어 있을 것이다.
그 주석을 풀고 저 설정값 뒷 부붓에 패키지를 포함하여 클래스와 메소드와 매개변수를 지정한다.
예를 들어 삼성 SDS의 Athena (지금은 Anyframe 인가??)를 사용할 경우에는 다음과 같이 지정하면 된다.

jdbc_connection_get = athena.titan.services.datasource.impl.AbstractDataSourceService.getConnection()
만약 매개변수의 타입이 String이면, ....getConnection(String) 과 같이 지정하면된다.

그리고 나서 conf 파일을 저장하거나 수정 버튼을 클릭해서 변경사항을 반영한다.

그래도 안되면, 제니퍼 소프트에 전화하세요~~~~ ㅋㅋㅋ

Posted by tuning-java
,

Tomcat 5.5의 최신 버젼에서는 JConsole 모니터링이 안되도록 지정되어 있다.
이러한 문제를 해결하기 위해서,
Tomcat의 catalina.bat나 .sh 파일의 JAVA_OPTS에 다음과 같은 옵션을 추가해 주어야 한다.
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

물론 위의 옵션은 한줄에 추가해야만 한다.

Posted by tuning-java
,



보통 개발을 하거나 테스트를 할때 여러 화면이 복합적으로 요청되는 페이지에서 어떤 것이 느린지를 확인할 수 있는 방법이 쉽지는 않다.
여러가지 툴이 있겠지만, HttpWatch 라는 툴은 지금까지 봐왔던 툴중 강력한 것중 하나다.
물론 상용이지만, 일반 사용자를 위한 Basic 버젼도 있다.
나도 물론 Basic 버젼을 사용중이지만, 해당 요청에 대한 상세정보를 못 볼 뿐이지,
어떤 화면에서 응답이 느린지는 확인할 수 있다.

사용법은 간단하다, 다운로드해서 설치한 다음에 익스플로러에서 HttpWatch를 선택하면 프로그램이 구동된다.
거기서 Record를 누른후 위에 있는 브라우져에서 페이지 요청을 하면, 어떤 리소스가 얼마나 걸리는지 확인할 수 있다.

상세한 설명과 다운로드는 아래 링크에....
http://www.httpwatch.com/

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 Jennifer를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 임시 라이센스는 자동으로 생성되지 않고, Jennifer 사이트에서 요청하셔야 합니다. 요청 방법은 부록 CD에 정리되어 있습니다. 

제니퍼의 설치법을 알아보겠습니다. 뭐 매뉴얼 보면서 하시면 되겠지만, 보다 간단하게 설치할 수 있도록 알려 드리겠습니다. 왜냐하면, 제니퍼 설치 설명 파일을 보면 20 페이지가 넘게, 각 서버별 설정법이 나와 있습니다. 하나 하나 따라가기가 굉장히 짜증나는 작업이죠.

제니퍼의 버전이 2.5.X 에서 최근에 3.2 버전이 바뀌었습니다. 2.5.X 대의 버전과 3.X 대 버전의 가장 큰 차이점은 데이터를 DB에 넣는다는 점과 UI를 맘대로 커스터마이징 할 수 있도록 되어 있다는 것입니다. 그런데, 제 개인적으로는 2.5.X 대의 버전이 가장 안정화 되어 있다고 생각합니다.

제니퍼를 설치하려면 적어도 두대의 서버가 있어야 합니다. 제니퍼 서버(모니터링 데이터를 처리하는 서버)와 WAS 서버(모니터링되는 서버)가 필요합니다. 먼저 제니퍼 서버를 설정하는 방법을 알아보겠습니다.

-제니퍼 DB 설정

제니퍼 설치 위치의 /derby/bin/env.sh 파일을 열어 다음의 세팅을 합니다.
JAVA_HOME=/usr/jsdk142
제니퍼 설치 위치의 /derby/start.sh 파일을 수행하면, 제니퍼 DB가 수행됩니다.

 

-제니퍼 서버 설정

제니퍼 설치 위치의 /server/bin/tomcat.sh 파일을 열어 다음의 두가지 세팅을 합니다.
JAVA_HOME=/usr/jsdk142
JENNIFER_HOME=/home/Jennifer (2.5.X 대의 버전에서는 세팅할 필요 없음)

 

위의 설정을 마치셨으면, 제니퍼 설치 위치의 /server/bin/startup.sh 파일을 수행합니다.
정상적으로 설치를 완료 했을 경우 인터넷 익스플로러를 기동하여 아래의 url을 입력하면 제니퍼 서버로그인 화면이 나타납니다.

http://제니퍼서버IP:7900/

제니퍼 서버 설정이 완료되었으므로, 이제 WAS 설정을 알아보겠습니다.

 

1. WAS 서버 설정

제니퍼의 버젼이 2.X 대 거나 3.X 대 거나, WAS 서버가 어떤 것이든지 설치법은 그리 크게 차이 나지 않습니다. WAS 서버를 기동하기 위한 설정파일에 다음의 내용이 반드시 포함되도록 합니다. 반드시 이 세팅을 할 때에는 제니퍼를 사용하지 않고 서버가 기동되는 세팅을 반드시 백업해 놓으셔야 합니다.

2. jennifer.jar설정 : 어떤 jar 파일보다 앞에 jennifer.jar 파일을 클래스 패스에 지정한다.

3. Jennifer 구성파일설정 : w11.conf (구성 파일)을 자바 커맨드의 -Djennifer.config=/ 옵션을 사용하여 위치를 지정한다.

4. lwst30.jar 및 jennifersys.jar : 자바 커멘드의 -Xbootclasspath/p: 옵션을 사용하여 이 두가지 파일의 위치를 지정한다.

5. jennifer library 모듈설정 : 서버에 맞는 so파일을 libjennifer20.so로 파일명을 변경하여 서버의 수행 디렉토리로 복사한다.

 

이러한 설정이 완료되면, WAS를 restart하면 됩니다.

이러한 세팅이 완료되면, 이제 제니퍼를 사용하는 기본 환경 설정은 완료됩니다.

마지막으로 몇가지 팁을 알려드리겠습니다.

팁1)

제니퍼 서버와 WAS 서버 사이에 통신을 해야 하기 때문에, 두 서버 사이에 방화벽이 있을 경우 다음 Port를 열어야 합니다.
클라이언트 -->  제니퍼서버 : 7900(TCP) - 관리콘솔 서비스 용,  6701(TCP) - 애플릿 소켓통신용
제니퍼에이전트 --> 제니퍼서버 : 6901(UDP) - 실시간 데이터 전송, 6902(UDP) - (1초)데이터 전송, 6703(UDP) - 트랜잭션 데이터 전송
제니퍼서버 --> 제니퍼에이전트 : 머신내 유일포트 (7750 ~ ) 각 에이전트는 제니퍼서버 요청에 대한 작업을처리하기 위해 유일한 TCP포트를 바인딩 해야 합니다.

여기서 가장 밑에 있는 7750 port는 한 장비에 여러 컨테이너가 동작할 경우 w11.conf 파일과 같은 설정 파일을 여러 개 만들어 각 컨테이너당 유일한 포트를 사용하도록 수정해야 합니다.

 

팁2) w11.conf 파일 설정 - 1
agent_name : agent의 이름을 설정하며, 영어를 포함한 3단어만 사용 해야 합니다. 반드시하나의 제니퍼 서버당 유일한 값이어야 합니다.
agent_tcp_port : 각 WAS 장비당 유일한 포트 번호여야 합니다. 컨테이너가 여러 개일 경우만 변경하면 됩니다. 여러 WAS가 같은 값을 써도 상관 없습니다.
udp_server_host : 제니퍼 서버가 기동중인 IP를 명시해줍니다.

 

팁3) w11.conf 파일 설정 – 2
만약 X-internet이나 프레임웍을 쓸 경우 모든 요청이 aaa.do 나 requestName 과 같이 하나로 보이는 경우가 있습니다. 만약 요청 파라메터의 키가 cmd와 value라는 것이 있을 경우 w11.conf 파일의 다음 설정의 주석을 해제하고 설정하면 됩니다.
url_additional_request_keys=cmd,value

 

다음에는 Jennifer의 각 기능 소개를 해 드리겠습니다.

Posted by tuning-java
,

기본적으로 웹 서버에 설정되어 제공되는 웹로그에는 응답시간이 나오질 않는다.

그런 단점을 해결하기 위해선 로그를 수정해야만 제대로된 응답시간 분석이 가능하다.

어떤 옵션을 수정해야 하는지 다음의 링크를 통해서 확인해 보기 바란다.

http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#formats

자세한 내용은 책에 있다. ㅋㅋㅋ

Posted by tuning-java
,
JMX를 사용하는 모든 자바 기반의 어플리케이션을 모니터링 할 수 있는 툴이 JConsole이다.
물론 무료이며, JDK 5.0 이상을 설치하면 자동으로 수행 디렉토리(bin)에 해당 파일이 존재한다.

Using JConsole to Monitor Applications

http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html


Posted by tuning-java
,