1. 미들웨어이야기/01. JVM 33

JMeter를 활용한 간단한 부하테스트

오픈 소스의 부하테스트 툴인 JMeter를 활용하여 간단한 부하테스트를 수행해 보자.JMeter 공식 사이트 : http://jmeter.apache.org 1. JMeter를 다운받자. (2014. 12. 02 - 2.12 버전)2. 다운로드한 apache-jmeter-2.12.zip 파일을 압축 해제한다.3. apache-jmeter-2.12\bin\jmeter.bat 실행4. JMeter 메인 화면 5. Thread Group 생성 (Test Plan에 마우스 오른쪽 버튼 > Add > Threads > Thread group 클릭) - Thread Group 생성 후 호출 할 virtual user의 숫자나 횟수를 설정한다. (예 : virtual user 1, 횟수 10 설정)6. HTTP Re..

jar 파일에서 특정 클래스 찾기

특정 폴더 하위의 모든 jar 파일에서 특정 클래스를 찾아보고 싶을 때 사용할 수 있는 쉘 스크립트를 소개합니다.[실행]find . -type f -name '*.jar' | while read LINE; do echo $LINE;jar tvf $LINE | grep WebtInnerConnection;done[결과]./system/local_policy.jar./system/mail.jar./system/snmp_agent.jar./system/sunjce_provider.jar./system/toolresource.jar./system/uddi4j.jar./system/US_export_policy.jar./system/webt30.jar25500 Mon Jan 24 10:31:00 KST 2005 ..

IBM JVM의 Heap fragmentation의 원인과 조치 방법

IBM JDK 1.4를 사용하는 JVM에서 자주 발생하는 Heap fragmentation 때문에 자주 곤란한 경우가 있다.그럼 언제 이와 같은 문제가 발생하는 것이고 원인을 뭘까 고민하던 중 아래 글과 IBM JDK diagnostic 문서를 보면 해결이 가능하다. Java heap fragmentation의 원인들 1. 큰 객체를 할당하는 어플리케이션 (주요원인) --> 어플리케이션 수정2. 많은 pinned, dosed 객체들 --> pCluster, kCluster 값 변경 (pinned 만 적용됨)3. JVM fragmentation defect --> 최산 Java를 사용함4. JNI에서 생성한 객체들 (pinned) --> JNI에서 객체를 제거해주도록 수정5. Xms = Xmx 인 경우, ..

jmap 명령어를 이용항 heap dump 파일 생성하기

JVM의 Heap 메모리 정보 확인 및 Heap dump를 생성하는 명령어Unix/Linux의 경우 kill -3 명령어를 이용하여 JVM의 Heap dump 생성이 가능하지만 Windows의 경우 서비스로 기동되어 있을 경우 command console이 없어 thread dump 및 Heap dump 생성이 어려움이럴 경우 jmap 명령어를 활용하여 Heap dump를 생성할 수 있다. - 필요한 환경 1. UNIX / Linux / Windows : JAVA 6 이상 - 명령어 위치 ( JAVA_HOME은 JDK 설치 폴더를 의미함) $JAVA_HOME/bin/jmap.exe - 명령어 사용법 > jps -v ... JVM의 PID를 확인 ...heapdump 파일 생성 > jmap -dump:fo..

jinfo 명령어를 활용한 JVM 상세 정보보기

JVM의 상세정보를 확인하는 명령어JVM의 버전(마이너), 컴파일 버전, 경로, os 타입, 인코딩 정보 등의 상세 내용을 확인할 수 있는 jinfo 명령어에 대해서 알아보자 - 필요한 환경 1. UNIX / Linux / Windows: JAVA 5 이상 - 명령어 위치 ( JAVA_HOME은 JDK 설치 폴더를 의미함) $JAVA_HOME/bin/jinfo.exe - 명령어 사용법 > jps -v ... JVM의 PID를 확인 ... > jinfo > JVMINFO.txt 예시) > jps -v 1640 jar -XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx512m -XX:NewSize=128m > jinfo.exe 1640 > JINFO.txt JINFO.txt 파..

jstack 명령어를 활용한 Thread dump 생성하기

JVM의 thread dump를 생성하는 명령어.Unix/Linux의 경우 kill -3 명령어를 이용하여 JVM의 thread dump 생성이 가능하지만 Windows의 경우 서비스로 기동되어 있을 경우 command console이 없어 thread dump의 생성이 어려움이럴 경우 jstack 명령어를 활용하여 thread dump를 생성할 수 있다. - 필요한 환경 1. UNIX / Linux : JAVA 5 이상 2. Windows : JAVA 6 이상 - 명령어 위치 ( JAVA_HOME은 JDK 설치 폴더를 의미함) $JAVA_HOME/bin/jstack.exe - 명령어 사용법 > jps -v ... JVM의 PID를 확인 ... > jstack > threadump.txt 예시) > jp..

JPS 명령어를 활용한 JVM PID, 파라미터 확인하기

JVM의 Process ID를 확인하는 명령어.Windows에서 "windows 작업관리자"를 이용하여 JVM의 Process ID를 확인하기는 어렵다. 이럴 경우 ProcessExplorer 툴을 설치하여 확인하거나 jps 명령어를 이용하여 확인할 수 있다. - 필요한 환경 1. UNIX/Linux/Windows : JAVA 5 이상 - 명령어 위치 ( JAVA_HOME은 JDK 설치 폴더를 의미함) $JAVA_HOME/bin/jstack.exe - 명령어 사용법 > jps ... JVM의 PID와 프로그램 명 확인 .. > jps -v ... JVM의 PID, 프로그램, 옵션 확인 .. 예시) > jps 1640 Jmeter 3336 Jps > jps -v 7204 Jps -Denv.class.pat..

JVM(Java Virtual Machine) 성능 조정

JVM(Java Virtual Machine) 성능 조정 출처: http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/tprf_tunejvm.html Java 프로세스인 Application Server는 실행하고 서버에서 실행하는 Java 응용프로그램을 지원하기 위해 JVM(Java Virtual Machine)이 필요합니다. Application Server 구성의 일부로서 JVM의 시스템 사용을 개선시키는 설정을 미세 조정할 수 있습니다. 이 타스크 정보 JVM은 Java 기반 응용프로그램을 위한 런타임 실행 환경을 제공합니다. WebSphere App..

GC (G1GC)

자바 1.7 버전이후 지원하는 G1GC에 대해서 알아보겠습니다. 장점 1. GC에 의한 Pause Time이 없는 compact한 빈공간 2. GC의 Pause Time 예측가능 3. 처리성능 향상 4. heap사용율 감소 옵션 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis =50 (for a pause time target of 50ms) -XX:GCPauseIntervalMillis =200 (for a pause interval target of 200ms) by 김영준 --XX:+UnlockExperimentalVMOptions -XX:+UseG1GCXX:+UnlockExperimentalVMOptions -

[모니터링] jstat tool을 이용한 JVM의 GC 모니터링 하기

JDK를 설치할 경우 1.6 버전부터 기본적인 모니터링 및 분석툴을 제공해 준다. 제공하는 툴 중 JVM의 GC(Gabage Collect) 상태를 Command line에서 알 수 있는 툴에 대해 알아보자 - 툴 이름 : jstat - 경로 : $JAVA_HOME/bin/jstat - 메뉴얼 : http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html ● 툴 사용법 jstat - [-t] [-h] [ []] jstat [일반옵션 | 출력옵션 [간격[수행횟수]]] * 일반옵션 -help : 도움말 -options : 표시할 통계의 항목의 리스트를 보여준다. * 출력옵션 -t : 출력의 가장 첫번째 컬럼에 timestame 컬럼으로 출력 ..