'Tools & Guides'에 해당되는 글 56건

  1. 2008.11.05 [jconsole] JConsoled을 사용해서 Tomcat 5.5 모니터링 하기
  2. 2008.09.18 [HttpWatch] 브라우저에서 날라가는 요청을 모니터링하는 방법
  3. 2008.09.03 [분석툴] Java Path Finder
  4. 2008.08.28 [Load Runner] Load Runner Fail Check (로드 런너 오류 체크)
  5. 2008.08.22 [LoadRunner] 로드 런너 파라메터 지정하는 법 동영상 (Parameter setting)
  6. 2008.08.21 [Load Runner] LR 8.1의 VUGen (Virtual User Generator) 프로그램이 자꾸 죽을때
  7. 2008.08.09 [IBM Dump Analyzer] IBM Diagnostic and Monitoring Tools for Java - Dump Analyzer 를 이용한 메모리 분석 가이드
  8. 2008.07.24 [Free Performance Test Tool] 무료 성능 테스트 툴 - WebLOAD 2
  9. 2008.07.24 [Link] 무료 테스트 툴 목록 (Open source test tool list)
  10. 2008.06.24 [Performance Tool] 무료 성능 테스트 툴 - JMeter
  11. 2008.06.24 [Performance Tool] 무료 성능 테스트 툴 - MS Web Application Stress tool 다운로드와 사용법
  12. 2008.04.16 [Access Log 분석] Access log (웹 로그) 분석 툴
  13. 2008.04.08 [Jennifer-제니퍼] 제니퍼 초 간단 사용법 1 - 제니퍼 설치하기
  14. 2008.04.02 [eclipse 팁] 이클립스의 신기한 기능
  15. 2008.03.31 [eclipse] eclipse를 시작할때 JVM terminated exit code=-1 이 뜨면서 제대로 시작이 되지 않을때
  16. 2008.03.28 [DevPartner] 메모리 프로파일링 하기
  17. 2008.03.27 [DevPartner] 성능 프로파일링 하기
  18. 2008.03.21 [DevPartner] 프로파일링 시작 하기
  19. 2008.03.20 [Microsoft Log Parser] Microsoft Log Parser (MS 로그 분석기) 사용하기
  20. 2008.03.17 [Access Log] Apache 서버 웹 로그 포맷 (access log format)수정하기
  21. 2008.03.07 [eclipse - 이클립스] Workspace in use or cannot be created, choose a different one. 이라는 메시지가 나타날때 5
  22. 2008.02.28 [DevPartner] DevPartner 화면 설명
  23. 2008.02.28 [DevPartner] 설치 방법
  24. 2008.02.23 [PMAT] 자바
  25. 2008.02.23 [DevPartner] DevPartner 사용시 파일 명명 방법
  26. 2008.02.23 [링크] JConsole 사용법 링크

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
,
http://javapathfinder.sourceforge.net/
허광남님 블로그를 통해서 알아낸 툴...
정말 deadlocks 이나 unhandled exceptions 을 알아서 분석해줄까?
나중에 시간나면 확인해 봐야겠다.
Posted by tuning-java
,

이 글은 성능테스트를 로드런너를 하는 분이 이해를 하실 수 있는 내용이므로,
관련없는 분들은 바로 패쓰 하시기 바랍니다. ^^;

성능 테스트를 수행할때 반드시 해야하는 작업이 있다.

바로 오류 체크 로직을 넣는 작업이다.

 추가로 
lr_get_transaction_duration("트랜젝션이름")
함수를 사용하면 해당 트랜잭션의 응답속도를 얻을 수 있으며,
이 값이 허용치 이상일 경우 ERROR로 처리할 수도 있다.  

Posted by tuning-java
,
Load Runner의 파라메터 지정하는게 약간 복잡하게 되어 있다.
(물론 로드런너를 사용하시는 분들도 몇분 안계시겠지만... 안쓰시는 분들은 이 글을 절대 볼필요가 없다.)

그 설명을 동영상으로 보실분은 아래 링크를 클릭하시면 된다.
굉장히 자세히 설명되어 있긴 하지만,
영어로 되어 있어서 영어 울렁증이 있는 분은 조심하시구요.
http://motevich.blogspot.com/2008/06/loadrunner-video-tutorial-parameter-1.html


다른 설명은 각설하고...

Sequential, Random, Unique 요렇게 세가지 옵션이 있다.
각각에 대해서 알아보면

Sequential : 각 Vuser 별 1번부터 사용한다. 쫑이 날 수도 있다.

Random : 각 Vuser별 랜덤으로(아무거나) 사용한다. (5만개를 사용했는대도 쫑난다 - -)

Unique : 각 Vuser가 하나의 뷰를 보기 때문에 쫑이 날일이 없다.
그런데 여기서 중요한건, 5명이 부하를 주면 5의 배수로 10명이 부하를 주면 10의 배수로 데이터가 있어야 한다는 것이다.

그리고 또하나 중요한건, 마지막줄은 반드시 아무것도 없는 빈줄이 하나 있어야 한다는것...

간만에 로드런너 쓰려니 힘들다.
Posted by tuning-java
,
로드런너를 자주는 사용 안하고(라이센스가 워낙 고가라...)
가끔 사용하는데,
그 비싼 툴이 내 PC에서 스크립트 작업을 할때 자꾸 죽는 현상이 발생한다.
(스크립트 다 짜고 저장도 안했는데 컴파일 작업할때 죽으면 빼도 박도 못한다. - -)

LR 9.1이 너무 무거워서 되도록이면 사용을 안하고 있는데...

이런 경우에는 LR 9.1을 HP 사이트에서 다운로드해서
스크립트 작업을 한 이후에 8.1에서 하는것이 가장 좋은 방법인듯...
웬만한 웹 스크립트는 9.1에서 스크립트짜고 8.1로 돌리면 잘 돈다.


LR 8.1 FP4라는 업데이트를 사용하더라도 별다른게 없다.
(상태가 더 안좋아 진다 - -)

Posted by tuning-java
,
내용 및 기획 의도 :
IBM 기반의 서버에서 WAS를 운영하거나, 자바 기반의 웹 시스템을 개발할 때 메모리 문제가 발생하면 대부분의 개발자나 서버 운영자들이 많이 난처해 합니다.
그러한 개발자분들의 고생을 조금이라도 덜어주기 위한 Dump analyzer의 설치부터 사용법을 소개함으로써,
문제를 빨리 해결하고 개발에 좀더 집중할 수 있는 기회를 제공해 드리기 위해서 이 가이드를 만들게 되었습니다.

이 가이드는 Dump Analyzer 를 다운로드 하는 방법부터 설치, 사용하는 방법까지 정리해 놓았습니다.
그리고, 음성을 녹음하기엔 좀 쑥스러워서 자막으로 처리했습니다.

첫번째 동영상은 다운로드 방법입니다.

두번째 동영상은 IBM Support Assistant 설치 방법입니다.

세번째 동영상은 덤프 분석기를 IBM Support Assistant 에 설치하는 방법 동영상입니다.
 

네번째 동영상은 덤프 분석기를 수행하는 동영상입니다.
실제 수행시키면 엄청나게 오래 수행됩니다.


마지막 동영상을 통하여 분석된 내용이 어떻게 제공되는지를  확인합니다.


참고 문서 목록 :
Java diagnostics, IBM style, Part 1: Introducing the IBM Diagnostic and Monitoring Tools for Java - Dump Analyzer
http://www.ibm.com/developerworks/java/library/j-ibmtools1/
Memory leak detection and analysis in WebSphere Application Server: Part 1: Overview of memory leaks
http://www.ibm.com/developerworks/websphere/library/techarticles/0606_poddar/0606_poddar.html
WebSphere Application Server에서의 메모리 누수 탐지와 분석: Part 2: WAS에서의 메모리 누수 탐지와 분석 (한글)
http://www.ibm.com/developerworks/kr/library/0608_poddar/0608_poddar.html
Posted by tuning-java
,
몇년까지만 해도 RadView 라는 회사에서 만들어서,
판매를 하던 WebLOAD라는 툴이 오픈소스로 바뀌었다.
(예전에 박XX 수석이 오픈소스로 바뀌었다고 알아보라고 해서,
설마~~ 했는데 정말 오픈소스로 바꿨네...)

http://sourceforge.net/projects/webload/

왜 이런 결정을 내렸을까?

잘 안팔려서 ???

아마도 WebLOAD의 경우에는 제약사항이 많은 성능 테스트를 하기에는
너무 부족하다는 판단을 내린 것 같다.

약 80MB의 설치 파일을 다운로드하여 실행해 본 결과...

어떻게 이런걸 팔아먹을 생각을 했나~~~ 라는 생각이 강하다.
뭐 테스트 스크립트 작성하거나 부하 주는 것은 잘 만들어져 있는데,
결과를 분석하기가 참 거시기하다.

WebLOAD의 메뉴얼은 소스포지 사이트에서 웹로드를 다운로드 할 때 같이 받을 수 있다.


Posted by tuning-java
,
무려 37개의 무료 성능 테스트 툴과 81개의 무료 기능 테스트 툴에 대한 링크가 있는 사이트이다.

쥑이는데...

홈페이지는 요기다.
http://www.opensourcetesting.org/

여기서 성능 테스트 툴을 보려면, 아래 링크를 클릭하면 된다.
http://www.opensourcetesting.org/performance.php

이런 사이트를 여태 몰랐다니... - -;





Posted by tuning-java
,

무료로 사용하기 좋은 툴중 또 다른 하나는 JMeter 이다.

한빛 미디어 홈페이지에 JMeter 설치부터 사용까지 자세히 정리되어 있는 내용이 있어 링크를 걸어 두겠다.

http://network.hanb.co.kr/view.php?bi_id=1520
http://network.hanb.co.kr/view.php?bi_id=1521
http://network.hanb.co.kr/view.php?bi_id=1522

물론 상용툴을 따라가기는 어렵겠지만,
무료툴도 어느정도 사용할 만한 정보들을 제공하기 때문에 한번 사용해 볼만 하다.

Posted by tuning-java
,
나온지 꽤 되었지만,
그닥 나쁘지도 않은 성능 테스트 툴인
MS Web application stress tool 이라는게 있다.
다운로드는
http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c0585a-062a-439e-a67d-75a89aa36495&DisplayLang=en
요기 에서 하면 된다.

2002년에 만든이후 아무런 유지보수가 되고 있지는 않다.
Vista에선 확인해 보진 않았지만, XP에서도 잘 돌아간다.

사용법은 그리 어렵지 않으나, 결과를 이해하는 건 그리 쉽지 않은 그런 툴이다.
사용법은 아래 링크를 통해서 확인하면 된다.
http://support.microsoft.com/kb/313559/ko


Thread 생성해서 URL에 요청하는 것 보다는 나을 수도 있으니,
이 툴을 한번 써 보기 바란다.
Posted by tuning-java
,

전에 IIS 기반의 서버 로그를 분석하기 위한 Log Parser에 대해서 아주~~ 간단히 정리를 해 놓았었다.

Access log가 뭐고, 어떤 데이터가 있는지에 대해서는 제 책에 자세히 정리해 놓았으니 그 부분을 참조하시기 바랍니다.

그럼 이 Access log들을 어떻게 분석해야 할까?

보통 웬만큼 사용자가 있다는 사이트의 웹 로그는 1Gb가 넘는다. 그 1Gb가 넘는 데이터를 일일이 수작업으로 분석하기엔 너무 힘들다. (불가능하다.)

나는 필요한 데이터를 뽑아내기 위해서 로그 분석기를 직접 만들었는데, 그 분석기는 특정 데이터만 분석하기 때문에 다른 분들이 사용하기에는 적합하지 않아 여기에 올리진 않겠다. 그럼 어떤 분석 프로그램들이 있을까 ? 아래의 링크를 따라가 보면 여러 종류의 웹 로그 분석 툴의 목록을 볼 수 있을 것이다.
http://www.uu.se/Software/Analyzers/Access-analyzers.html 
직접 만드는 것 보다는 여기에 만들어 놓은 툴을 사용하는 것이 훨씬 낫다.

내가 가장 좋아하는 웹 로그 분석 툴은 다음과 같다.
awstat : http://awstats.sourceforge.net/ 
Analog : http://www.analog.cx
Webalizer : http://www.mrunix.net/webalizer

이 중 가장 최근까지 업데이트 된 툴은 awstat이다.  각 툴의 사용법은 각 사이트의 튜토리얼 문서를 참조하면 쉽게 알 수 있을 것이다.

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
,
만약 여러분의 클립보드에 다음의 내용이 있다고 치죠. (아래의 내용을 복사하거나 Ctrl-C 를 누른 경우)
//내용 시작
package test;
public class Test {
}
//내용 끝

이클립스에서 src 를 누른 후 Ctrl-V를 눌러보자.

그럼 짜잔~~~
하고 여러분의 이클립스에 클래스가 하나 추가되면서, 그 내용이 에디터에 나타날 것입니다.


Posted by tuning-java
,
이클립스가 유로파로 오면서 가끔 개길때가 있다.
다음과 같은 화면이 나타나면서...
사용자 삽입 이미지

이럴때에는 batch 파일을 만들거나,
바로가기를 만들어서 다음과 같이 수정해준다.

C:\eclipse\eclipse.exe -vmargs 512m

여러가지 옵션이 있지만,
이 옵션이 가장 간단하고 편한듯
Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.

nmshell을 이용해서 분석하기 위한 창을 띄우자. 참고로 본인은 다음과 같이 nmshell을 구동했다.

nmshell -mem -config Test

정상적으로 구동을 했다면, 다음과 같은 화면이 나타나게 될 것이다.

이제 3가지 기능중 한가지를 사용하면 된다. 제공되는 기능은 다음과 같다.

RAM Footprint : 현재 메모리에 올라와 있는 클래스의 정보를 볼 수 있다. (EJB를 많이 쓰거나 이것 저것 올라온게 많으면 서버가 맛탱이 갈 수 있으니 조심해서 사용하길 바란다.)

Object Lifetime Analysis : 임시 메모리를 어떤 클래스, 메소드, 라인에서 많이 사용했는지를 보여준다. 반드시 작업 시작전에 GC를 하는 것을 까먹지 말기 바란다.

Memory Leaks : 메모리를 릴리즈하지 않는 메모리 릭을 잡아준다. (솔직히 말하면, 쉽게 잡히진 않는다. ㅋㅋ)

이 기능 또한 설명하는데 오래걸리므로 자세한 내용은 패쑤

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.

nmshell에 대해서도 봤으니, 이제 성능 프로파일링 하는 방법에 대해서 알아보자.
참고로 여기서 본인은

nmshell -perf -config Test

로 nmshell을 수행했다.

정상적으로 nmshell을 수행했다면, nmshell 창에서 해당 WAS나 어플리케이션을 시작하는 스크립트를 수행하자. 그러면 다음과 같은 화면이 나타난다.

예전에 광고에서 비트박스하는 방법을 알려주면서, 북치기 박치기만 잘하면 된다는 광고를 보았을 것이다. 그것처럼, DevPartner에서 성능 프로파일링을 하기 위해서는 두가지 버튼만 잘 누르면 된다.
그 버튼은 "Clear Collected Data" 와 "View Results" 버튼이다.

Clear Collected Data 버튼 : 지금까지 수집된 모든 데이터를 지운다.

View Result 버튼 : 지금까지 수집된 데이터를 보여준다.

쉽게 말하면, 어플리케이션을 구동하는 동안 수집된 정보는 필요가 없으므로, 화면을 수행하기 전에는 Clear Collected Data를 누른다. 그런 다음, 화면을 수행하고 나서는 View Result 버튼을 클릭하면 된다.

그러면 위와 같은 화면이 새로 나타나는데, 이제부터 수집된 데이터를 기반으로 분석을 하면 된다.

근데 책에서 몇번이고 강조를 했지만, 서버를 띄우고 나서 가장 처음 해당 화면을 수행할 때의 결과는 절대 사용하면 안된다. 잘못하면 정상적이지 못한 시스템 분석이 되기 때문에 첫번째 화면을 수행한 이후에는 반드시 Clear... 버튼을 클릭하고, 그 다음에 화면을 1회, 10회 ... 수행한 이후에 View Result 버튼을 눌러 결과를 확인하기 바란다.

결과를 확인하는 방법은 가장 어려운 부분중 하나인데, 이에 대해서는 직접 터득하시기를 권장한다. 왜냐하면, 말로 설명해도 한시간 이상 소요되는 작업이고, 아무리 말로 설명해도 이해하기가 쉽지는 않기 때문이다.

뭐 많은 분들이 원한다면 나중에 관련 내용이 추가 될 수도 있다. 

다음에는 메모리 프로파일링 하는 방법에 대해서 알아보겠다.

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.

DevPartner 서버 (실제론 톰캣 서버다.)가 제대로 기동되고 있는 상황에서(DevPartner 관리 페이지가 뜨는 상황에서) 프로파일링이 가능하다.

시작하기 전에 앞서 알려드렸던 윈도우즈 서비스 목록에 관련 서비스가 시작되어 있는지 확인하는 것이 좋다.

프로파일링 하는 방법은 크게 두가지 인데, 한가지는 Administrator 툴에서 WAS관련 값을 지정하는 방법이다. 한번 지정하면 다음부터는 클릭만으로 서버를 띄울수 있어 편리하다. 하지만 난 이 기능을 안쓴다. 한 사이트에 가서 있어 봤자 며칠 안되기 때문에...

다른 방법은 nmshell을 사용하는 방법이다. nmshell은 윈도우나 Unix의 커맨드 창에서 이 명령어를 수행하면 이름 그대로 하나의 가상 shell이 추가된다.
(기본적으로 DevPartner를 깔면 nmshell이 있는 DevPartner의 bin 디렉토리가 "Path"에 잡히기 때문에 그냥 아무데서나 실행하면 된다.)
그냥(아무 옵션 없이) nmshell을 수행하면 다음과 같은 결과가 나온다.

C:\Program Files\Compuware\DevPartner Java Edition\bin>nmshell
DevPartner Java Edition Utility that profiles arbitrary commands

  Usage:

      nmshell [DPJ Options] -config <name>
          Launches a new shell from which all Sun(R) Java(tm) apps
          will be profiled by DPJ

      nmshell [DPJ Options] -config <name> -exec <command> [<param>...]
          Runs <command> with specified params under DPJ profiling

  DPJ Options:

      -config <name>    Run under configuration named 'name'
      -perf     Profile CPU performance (default)
      -mem      Profile memory usage
      -cov      Profile code coverage
      -batch    Run in batch mode (do not bring up DPJ UI)
      -nmv      Verbose operation
      -help     Displays this text

C:\Program Files\Compuware\DevPartner Java Edition\bin>

보면 알겠지만, -perf 옵션을 주면 성능 프로파일링을, -mem 옵션을 주면 메모리 프로파일링을, -cov 옵션을 주면 커버리지 프로파일링을 한다. 그리고 가장 중요한 것은 -config를 하고 나서 이름을 지정하는 것이다. 여기서의 이름은 DevPartner 의 UI에서 만든 config 이름이다. (이 config에 대해서는 나중에 시간나면 자세히 설명을 올려놓겠다.)

WAS를 띄우기 전에 다음과 같이 수행을 한다.

nmshell -config Test -perf

이렇게 지정을 하면 성능 측정을 하고 "Test"라고 지정되어 있는 config 조건에 맞는 성능 측정을 한다는 의미가 된다.

그럼 화면이 떴을때 부터 하는 일은 다음에 정리하겠다.

Posted by tuning-java
,

일단 다음의 링크를 클릭하면 Microsoft Log Parser 2.2를 다운로드 받을 수 있으니, 없으면 받자.

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

설치를 하면 LogParser.exe파일이 지정한 디렉토리에 생성될 것이다.


간단한 예제를  보려면 아래 링크를 클릭하자.

http://www.microsoft.com/technet/scriptcenter/tools/logparser/lpexamples.mspx

약간 특이한 툴이라는 것을 직감할 수 있을 것이다.

쉽게 이야기하자면, IIS 서버와 같은 웹서버의 로그를 Query(쿼리) 형태의 질의어를 통해서 원하는 형태의 파일로 정리해 주는 유용한 툴이다.

Window IIS의 로그파일이 있는 곳(여기서는 54.log가 로그파일이다.) 에서 다음과 같은 명령을 수행해 보자.
"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT * FROM 54.log TO 54.csv"
이렇게 하면 모든 로그를 54.csv라는 파일에 엑셀에서 볼 수 있는 CSV 파일 형태로 변환해 준다.

자세한 내용은 나중에 시간 있을 때 정리해야 겠다.

Posted by tuning-java
,

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

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

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

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

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

Posted by tuning-java
,


Workspace in use or cannot be created, choose a different one. 이라는 메시지가 나타나면서, 이클립스에서는 다른 workspace를 선택하라는 화면이 나온다.

이 경우에는 평소에 사용하는 workspace를 변경해야만 이클립스가 기동되는데, 대부분의 개발자분들이 그런 짓(?)을 하기는 싫을 것이다.


가장 쉬운 해결책
윈도우 작업 관리자를 열어서 eclipse.exe 프로세스를 죽인다.


두번째 해결책
자기가 정해놓은 workspace 디렉토리로 이동해서, .metadata 라는 디렉토리에 있는 .lock 파일을 지운다.


둘중 한 방법을 사용하면 정상적으로 이클립스가 기동된다.

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.


DevPartner의 화면에 대한 간단한 설명을 해 보고자 한다.
먼저 Welcome 화면이다.

그냥 별 내용은 없는데, 오른쪽에 Java Platform Performance 라는 링크를 누르면 자바의 성능에 대한 관련 책이 링크로 제공된다.

(인터넷이 되는 곳에서만 확인할 수 있다.
다음은 Application Testing 화면이다.

이 화면에서는 WAS 기반의 시스템이 아닌 단독 자바 애플리케이션을 테스트 할 때 사용된다.

이 화면을 사용하기 위해서는 DevPartner의 프로그램 그룹에 있는 Utility의 Administration 이라는 프로그램을 사용해야만 하는데, 나는 설정하기 귀찮아서 이 기능을 사용하지 않는다.

이번 화면은 Application Server Testing 화면이다.

관련 내용은 Application Testing 과 비슷하기 때문에 생략 하겠다.

이제부터 중요한 화면이다.

위의 화면은 Session Files 라는 화면인데, drop down 메뉴에 기본적으로 Default라고 나타날 것이다.
만약 여러분이 config를 다른 이름으로 지정한다면 그 이름도 여기에 나타날 것이다.
config 지정하는 것은 "WAS 모니터링 시작하기"편을 통해서 확인해 보기 바란다.

다음은 현재 프로파일링 중인 어플리케이션 세션의 목록을 보는 화면이다.

여기의 목록에서 프로파일링 중인 대상을 더블 클릭하면, 데이터를 수집할 수 있는 화면으로 이동한다.

마지막 화면은 설정하는 화면인데, 가장 중요한 화면중 하나이다.

이 내용은 영어를 읽으면서 하나 하나 설정해 보면 되는데, 만약 자세한 설명이 필요하다는 분들이 많다면,

자세한 설명을 나중에 추가하도록 하겠다.

Posted by tuning-java
,

참고로 이 설명은 [Blog2Book 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기] 책을 읽는 독자분들이 부록으로 제공되는 DevPartner for Java를 보다 쉽게 사용할 수 있도록 작성되었으며, 설치시 14일간 기능의 제한이 없는 임시 라이센스가 생성됩니다.


DevPartner for Java (이하 DevPartner)를 윈도우즈 기반에서 설치하는 방법은 매우 간단하다.


DevPartner를 설치하기 위해서는 설치 디렉토리에 있는 Setup.exe 파일을 실행하면 다음과 같은 화면이 나타나고, 여기서 install Compuware DevPartner를 선택하면 된다.

기본적인 설치 방법은 여타 다른 툴들과 비슷하기 때문에 생략하고, 중간에 Integrate DevPartner Java Edition with your IDE 와 다른 옵션을 선택하는 부분이 있다. 다른 옵션은 선택하지 않는 것이 좋고, 만약에 eclipse와 같은 툴에서 사용하기 위해서는 Integrate... IDE를 체크하여 eclipse의 경로를 지정하면 된다.


모든 설치가 완료되면 "반드시" PC를 재기동 해야한다. 윈도우용 설치파일만 제공되기 때문에 Linux나 Unix에서 설치하는 방법에 대해서는 여기서 다루지 않겠다.


PC를 재기동 한 이후에 자동으로 DevPartner 초기화면이 기동될 것이다.


다음부터 이 초기화면으로 이동하기 위해서는 윈도우의 시작 -> 프로그램 -> Compuware DevPartner Java Edition -> DevPartner Java Edition을 선택하면 이 화면으로 이동할 수 있다.



이 화면이 정상적으로 나타난다면 제대로 설치가 된 것이다.

나는 그렇지 않은 경우가 없어서 그렇지 않은 경우에 어떻게 하냐고 물어보셔도 모르니 참조해 주기 바란다.

(기본적으로 자바가 설치 되어 있어야 하며, 현재 제공되는 프로그램의 경우에는 JDK 6.0이 지원되지 않는 것으로 알고 있다. 사용하려면 JDK 5.0을 설치하여 사용하기 바란다.)


첫 화면이 나타나면 눈치를 챈 분들도 있겠지만, 내부적으로 톰캣 서버를 기동하여 그 톰캣 서버에서 작업을 수행하는 구조로 되어 있다.


설치 단계의 마지막으로 한가지 팁을 알려드리면, 이 툴의 경우 관련된 서비스가 항상 실행되도록 되어 있기 때문에 해당 서비스를 자동이 아닌 수동으로 수행될 수 있도록 변경해 주어야만 한다.

윈도우 시작 -> 설정 -> 제어판 -> 관리도구 -> 서비스를 선택하면 아래와 같은 화면이 나타날 것이고, 여기서 잘 찾아보면 Compuware 어쩌구 저쩌구하는 것이 있는 것을 확인할 수 있다.


해당 줄을 더블클릭하면 다음과 같은 화면이 나타난다.

여기서 중간에 있는 자동을 수동으로 변경하고 확인을 누르면 이제부터 시작할때 마다 DevPartner가 시작되지 않는다.

Posted by tuning-java
,
http://www.alphaworks.ibm.com/tech/pmat

PMAT

자바 메모리 덤프를 분석하는 굉장히 유용한 툴
Posted by tuning-java
,

프로파일링 툴을 사용할때,

프로파일한 결과파일의 명명규칙을 정하지 않으면,
나중에 결과정리할 때 곤혹을 치루게 된다.(다 열어봐야 하니까...)

그래서 아래와 같이 하시면 편리하고,
되도록이면 이 표준을 사용하는게 나을듯....

예) DevPartner사용시
01_Login_2nd_10Time.tts

가장 앞의 01은 프로파일한 순서 Login이 아닌 다른 menu를 선택하면 02가 된다.

그리고, 두번째는 해당 업무 명,
세번째는 해당 업무를 프로파일한 횟수(첫번째한건지, 두번째 한건지...)
마지막 10Time은 해당 화면을 10번 클릭한 것을 명시한 것이다.
이렇게 하면 파일명으로 sorting해도 나중에 보기 편리하다.
작업할때는 보통 Date로 sorting해서 작업하면 된다.(필요없는 파일을 삭제하기 위해서.)

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
,