반응형

자바에서 가비지 컬렉션은 아주 중요한 부분을 차지하고 있다.
어플을 개발하면서 성능적 측면에서도 적지않는 영향을 주는 부분이다.
가비지 컬력션을 통해서 메모리의 상태를 모니터링하는 툴들이다.
1. 다운 사이트
http://java.sun.com/performance/jvmstat/               - Sun의 jvmstat.
http://docs.hp.com/en/5991-6757/ch03s04.html        - HP용 GC Viewer.
http://java.sun.com/developer/technicalArticles/Programming/GCPortal/  - GC관련 아티클 및 툴.
http://shark.ucsf.edu/gc/viewer/index.html
http://www.javaperformancetuning.com/tools/gcviewer/index.shtml
http://www.tagtraum.com/gcviewer-download.html

2. 특징

  • garbage collection데이터를 통해 성능 지표(throughput, accumulated pauses, longest pause 등)를 계산하여 보기 좋게 보여줌
  • GC Viewer같은 경우는 csv 포멧으로 데이터를 import할 수 있음
  • generation sizes를 변경하고 heap size를 설정하는 등을 통해 gc를 튜닝하는데 유용함

3. 플랫폼 별 설정 방법

  • Sun JDK 1.4/1.5 : -Xloggc:<file> [-XX:+PrintGCDetails]
  • Sun JDK 1.2.2/1.3.1/1.4 : -verbose:gc
  • IBM JDK 1.3.1/1.3.0/1.2.2 :n -verbose:gc
  • HP-UX JDK 1.2/1.3/1.4.x : -Xverbosegc
  • BEA JRockit 1.4.2/1.5 : -verbose:memory
  • 표준 : -Xloggc:<file> -XX:+PrintGCDetails

4. GC관련 아티클

<출처 : http://www.mimul.com/pebble/default/2008/01/09/1199887560000.html >
<출처: http://www.sjava.net/84 >

반응형

java exe wrappers
http://jsmooth.sourceforge.net/

jsmooth 를 사용하다가 splashscreen 을 사용하면
프로그램이 실행 되지가 않는다.. ㅡㅡ;
그리고 해당 아이콘(ico 아님) 가 같이 있지 않음 아이콘이 안보이는 단점
http://jstart32.sourceforge.net/
http://www.sauronsoftware.it/projects/kickstart/index.php
별다른 설정없이 exe 파일이 생성된다.
그냥 java -jar 를 이용한 그냥 심볼릭 파일 생성한다고 생각하면 될듯하다.
하지만 아이콘(ico)로 생성되기 때문에 별도의 이미지 파일이 필요 없는 장점.

java installers

http://nsis.sourceforge.net/
http://vainstall.sourceforge.net/
http://izpack.org/
반응형
0. Java Profiling API란?

프로파일러라고 함은 application의 문제를 진단하고 성능을 측정하기 위해서 사용하는 도구임.
Java관련한 application은 JVM의 정보를 가져와야 하는데 이를 위해서 자바에서 제공하는 API이다.

JVMPI for Java 1.3, 1.4
- 클래식 자바 가상머신에서 잘 동작하도록 설계되어 있음
- 이벤트 기반 모델 방식
- Sun에서 실험적이라는 표현을 사용하기도 하고 Java 1.6에서부터는 사용하고 있지 않음
- 이번 application에서는 Java 1.6이라 이 방식을 활용한 tool에 대한 조사는 하지 않음

JVMTI for Java 1.5 이상
- ByteCode Instrumentation(BCI)라는 방법을 통하여 사용함
- 모니터링하고자 하는 바이트 코드의 정확한 위치에 프로파일링 코드를 추가함으로써 수행함
- 아래에 설명되는 거의 모든 기술이 이 방식을 통해서 사용하고 있음

Profiling Tool은 정보수집/분석/정보수집 & 분석 을 담당한다.
따라서 수집만 하는 툴은 눈으로 직접 분석하던지 분석을 하는 툴을 따로 써야 한다.

관련자료 : http://openframework.or.kr/Wiki.jsp?page=JvmtiNjvmpi


1. Jstack

1.1 정보를 수집하는 Tool이다.
1.2 Thread Dump를 뜨는 자바의 기본적인 명령어이다.
1.3 윈도우는 Java 1.6에서부터 사용가능, 리눅스용은 Java 1.4부터 가능
1.4 사용방법
   - jps 를 이용해서 java의 프로세스를 찾는다 : C:\Java\jdk1.6.0\bin>jps -v
   - 발견한 PID를 이용해서 Thread Dump를 뜬다 : C:\Java\jdk1.6.0\bin>jstack 4740 > st.txt
    - Dump 내용 예시
      "hmux-127.0.0.1:6802-9" daemon prio=10 tid=0x9e3ad400 nid=0x17b9 runnable [0x9d3fd000..0x9d3fdfa0]
      java.lang.Thread.State: RUNNABLE
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(SocketInputStream.java:129)
      at com.caucho.vfs.SocketStream.read(SocketStream.java:175)
      at com.caucho.vfs.ReadStream.readBuffer(ReadStream.java:1012)
      at com.caucho.vfs.ReadStream.waitForRead(ReadStream.java:336)
      at com.caucho.server.port.TcpConnection.run(TcpConnection.java:598)
      at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
      at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
      at java.lang.Thread.run(Thread.java:619)
1.5 Dump 내용을 분석하는 법 : http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?db=lecture0201_1&table=j2ee&id=24
1.6 장단점
    - 특별한 Coding 을 필요로 하지 않는다.
    - 문제가 발생한 시점에 명령어를 수행해서 Hang이 걸린 Thread의 정보를 찾아낼수 있다.
    - 눈으로 찾아야 하기에 연습을 통한 숙달이 필요하다.
1.7 참고자료 : http://kwon37xi.egloos.com/2871508


2. HPRof

2.1 정보를 수집하는 Tool이다.
2.2 Heap And CPU Profilling Agent 의 약자, JDK에서 기본적으로 제공해준다.
2.3 HPRof로 수집된 데이터를 Heap Analyzer로 다시 분석한다.
2.4 사용방법 (resin 3.1.X 기준)
    - resin.conf 파일을 오픈한다
   - JVM arguments 항목에 <jvm-arg>-agentlib:hprof=heap=sites,cpu=samples,file=d:\zeous\profiling.txt</jvm-arg> 넣는다.
2.5 수집데이터 예시
    TRACE 300539:
    java.security.ProtectionDomain.getCodeSource(ProtectionDomain.java:Unknown line)
    java.lang.ClassLoader.postDefineClass(ClassLoader.java:Unknown line)
    java.lang.ClassLoader.defineClass(ClassLoader.java:Unknown line)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:Unknown line)
2.6 장단점
   - 데이터가 엄청나게 많이 생성된다 (모든 데이터를 다 기록하는듯)
   - JVM 옵션을 주고 서버를 구동시키면 한참 느려진다
   - 프로파일 데이터에 실시간 기록이 아니라 서버를 종료하거나 action (Ctr+break)을 해줘야 기록된다.
2.7 참고자료 : http://wiki.ex-em.com/index.php/HProf


3. ASM

3.1 정보를 수집&분석하는 Tool 이다.
3.2 BCI의 API 를 이용해서 가장 low 레벨로 컨트롤하는 방법임
3.3 HPRof가 모든 class에 대한 분석임에 반해 이 방법은 특정 클래스에 대한 action을 원하는 형태로 지정(코딩)할수 있다.
3.4 장단점
    - 특정 class에 대한 컨트롤이 가능하다(예, connection 연결이 몇번 호출되었는지 카운트가능)
    - 자유도가 높은 만큼 처음부터 코딩해야 한다.
3.5 참고자료
    - http://somnusong.tistory.com/275
    - http://asm.objectweb.org/index.html

4. Jconsole

4.1 정보수집 & 분석해주는 Tool이다.
4.2 JDK1.5 부터 포함된 로컬, 원격 자바 application 분석툴
4.3 자료수집 및 Swing으로 구성된 분석 UI까지 제공한다
4.4 사용법 (resin 3.1.X 기준)
    - resin.conf 파일을 오픈한다
    - JVM argument 항목에
      <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.port=1403</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg> 넣는다
4.5 장단점
    - 자료를 수집하는 과정에서도 서버의 부하가 거의 없다.
    - 특별한 코딩을 하지 않고 분석된 자료까지 UI를 통해서 제공 받는다
    - id/password를 설정해서 입력받기도 가능한데 설정이 조금 까다롭다. (성공못하였음)
    - Jstack으로 생성되는 Thread Dump 의 자료는 모두 포함하고 있음
    - Jconsole을 다시 실행시키면 지금까지의 내용이 저장되지 않고 처음부터 다시 시작한다
4.6 참고자료
    - http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html
    - http://sjchoi.wordpress.com/2007/01/10/jconsole-사용하기/
    - http://www.mimul.com/pebble/default/tags/jmx/


5. Jennifer

5.1 정보수집 및 분석을 해주는 상용 Tool이다
5.2 2주간의 무료 라이센스를 얻어서 테스트 가능하다.
5.3 Jconsole은 자료를 저장할 수 없는 단점을 상용 Tool답게 분석된 로그를 저장해서 가지고 있다.
5.4 사용법 (resin 3.1.x기준)
    - 설치메뉴얼 : http://www.jennifersoft.com:8080/man/viewer/DocumentViewer.jsp?id=abc385f1-e652-48e5-8616-e24b13014734
    - 설치메뉴얼 이외에 http_service_class = javax.servlet.http.HttpServlet;com.caucho.jsp.JavaPage 를 W11.conf에 넣어줘야 한다
    - localhost로 나와있는 정보를 모두 IP정보로 셋팅해준다
5.5 사용메뉴얼 : http://www.jennifersoft.com/docs/ko/77.html
5.6 장단점
    - 돈이 든다 ^^
    - 실시간 경고 및 모니터링에 뛰어난 장점을 보여준다.
반응형
반응형
오픈소스테스트툴이 있는 사이트다..
http://www.opensourcetesting.org/


성능테스트 툴 목록 사이트
http://www.opensourcetesting.org/performance.php

반응형
사용자 삽입 이미지

개발한 프로그램을 다른 유저의 컴퓨터에 설치할 수 있게끔 해주는 파일을 만들어주는 프로그램인 인스톨 팩토리 2.7 버전입니다.

이 프로그램을 찾으시는 분께서 프로그램의 사용방법을 찾으실 것 같진 않기에 특별히 설명을 적진 않겠습니다. 어차피 메뉴얼도 안에 동봉되어 있으니까요. 'ㅡ'a

 


인스톨 팩토리의 설치 라이센스 부분.


InstallFactory 2.70 - Freeware License


● InstallFactory 2.70의 사용으로 야기될 수 있는 어떠한 긍정적, 부정적인 결과에 대해서도 제작자는 그 책임을 지지 않습니다.

● InstallFactory 2.70은 개인, 단체, 기업의 상업적/비상업적 목적에 자유롭게 사용 될 수 있습니다.

● InstallFactory 2.70 자체는 제작자의 사전 동의없이 상업적인 목적으로 이용될 수 없습니다.

● InstallFactory 2.70을 다른 통신망이나 인터넷, 혹은 타인에게 배포할 때에는 이 설치화일의 형태로만 가능합니다.

● InstallFactory 2.70에 관한 문의는 e-mail주소 Chosmos@Chollian.net 로 하실 수 있습니다.

+ Recent posts