가상 시스템 성능 모니터링

 자바를 이용하여 자바 가상 머신 모니터링 및 튜닝, 분석 도구와 함께 제공됩니다.

표준 새 번역 : JVM 프로세스 상태 도구는 지정된 시스템 내에서 모든 핫스팟 가상 머신 프로세스를 표시

그러면 jstat : 휴대 전화에 사용되는 도구, 모니터링 JVM 통계 데이터의 모든 측면을 실행하는 가상 머신을 핫스팟

있는 jinfo : 자바에 대한 구성 정보, 가상 시스템 구성 정보 표시

jmap는 : Java 용 메모리 맵은 가상 머신의 메모리 덤프 (힙 덤프 파일)의 스냅 샷을 생성

jstack을 : Java 용 스택 추적은 가상 머신 스레드의 스냅 샷을 표시

 

1, JPS : VM 프로세스 상태 도구

사용법 :

용도 : JPS [-help]
JPS [-q] -mlvV] <호스트 ID>]

설명 :
<호스트 ID> : <호스트> [<포트>]

옵션 설명 :

-q : 전용 출력 LVMID 메인 클래스의 이름은 생략

메인 클래스 가상 머신 프로세스의 출력에 전달 된 매개 변수 시작 () 함수 : -m

-l : 메인 클래스의 출력의 전체 이름은 항아리 패키지 항아리 패키지 경로 출력 프로세스 실행이 경우는

-v : 출력 가상 머신 JVM 시작 매개 변수

 

2, 그러면 jstat : 가상 머신 통계 모니터링 도구

다양한 상태 정보를 실행중인 가상 머신을 모니터링하기위한 명령 도구입니다.

사용법 :

사용법 : 그러면 jstat -help | -options
그러면 jstat - <옵션> [-t] [-h <라인>] <VMID> [<간격> [<수>]]

설명 :
<옵션> 옵션
<VMID> 프로세스 ID
는 원격 가상 기계 프로세스, VMID 형식이 <lvmid> 로컬 가상 기계 프로세스의 VMID와 lvmid가 일치 [@ <hostname> 여기서 [<포트>]
<간격> 폴링 간격 : 지원 밀리 초는 기본 밀리 초
쿼리의 <수> 수를

옵션 설명 :

- 클래스 : 클래스 로딩을 모니터링하는 전체 공간의 양을 하역하고 시간은 클래스를로드하는 데 걸리는

-gc : Java 힙은 영구 발전 용량, 사용 된 공간, GC 총 시간 정보 등의 에덴 지역이 개 생존자 지구, 옛 시대를 포함하여, 상황을 모니터링

-gccapacity은 다음 내용과 같은 모니터-GC하지만, 출력은 최소 공간에 최대로 각 지역 힙 자바의 사용에 대한 주로 우려

-gcutil : 콘텐츠와 같은 모니터-GC하지만 출력은 전체 공간의 비율의 사용에 초점을 맞추고있다

-gccause : -gcutil 및 그 작동하지만, 최종 GC에 의해 생성 된 추가 출력을 발생할

-gcnew : GC는 새로운 세대의 상태를 모니터

-gcnewcapacity가 : 동일한 콘텐츠 및 -gcnew을 모니터링하지만, 출력 최대, 최소 공간으로 주로 사용에 대한 우려

-gcold :의 오래된 상태 모니터링 GC

-gcoldcapacity : 콘텐츠를 모니터링하고이를 -gcold되지만 출력은 최소의 공간을 최대한 이용 대해 주로 우려

-gcpermcapacity : 출력 생성 영구적 최대, 최소 공간으로 사용

-compiler : 출력 JIT 컴파일러 컴파일 방법, 시간이 많이 소요 및 기타 정보

-printcompilation : 출력 방법 JIT 컴파일 된

주 1 :

S0C는 : S1C 생존의 제 1 영역의 제 영역을 사용하여 크기를 생존 ;: 크기 : S0U, 생존의 제 2 영역의 크기 : 생존의 제 1 영역의 사이즈를 사용하여, SLU
EC : 에덴 영역 크기, EU ; 상기 에덴 영역의 크기를 사용
;의 이전의 크기, OU : 크기의 이전 사용 OC
크기를 사용하여 메소드 영역; 메소드 영역 크기 MU : MC를
CCSC : 압축 클래스 공간 CCSU : 공간 사용의 크기의 압축,
YGC : 젊은 세대 가비지 콜렉션의 수, YGCT : 젊은 세대 가비지 콜렉션 시간이 많이 소요는 FGC : 가비지 컬렉션 년의 수 이전, FGCT :의 오래된 쓰레기 수거 시간이 많이 소요는 GCT : 전체 쓰레기 수거 시간이 많이 소요.

주 2 :

에덴 차세대 영역 (E)은 각각 40.09 %, 두 서바이버 영역 (S0, S1)을 사용하여 14.57 %, 영구 (P)의 생성을 이용하여 0.00 % 100.00 % 살 (O)를 사용하여이 소자 jdk1.8 후 공간 대신 97.55 %를 사용하여 (M). 전체 GC (FGC) 발생하지 않았다 (FGCT) 총 시간 0초; 모든 GC (GCT) 총 시간 3.229 초 프로그램이 실행되므로 마이너 GC (YGC)는 19 배, (YGCT) 총 시간 3.229 초였다 .

설명 :

NGCMN : 새로운 세대 NGCMX 최소 용량 : 최대 용량 NGC 신세대 : 현재 차세대 용량,
S0C : 생존의 제 2 영역의 크기를, 제 1 영역 크기, S1C 생존
EC : 에덴 영역 크기;
OGCMN : 이전을 의 최소 용량 OGCMX :의 세 최대 용량 OGC : 현재의 이전의 크기, OC : 현재의 이전 크기;
MCMN : 최소 메타 용량 MCMX : 최대 메타 용량 MC : 현재 메타 공간;
CCSmn : 최소 압축 클래스 공간, CCSMX : 최대 압축 클래스 공간, CCSC : 현재의 압축 방식 공간,
YGC : 젊은 세대 GC의 수, FGC : 년의 GC 번호 오래된;

 

3,있는 jinfo : 자바 구성 도구

실시간보기와 가상 머신의 매개 변수를 조정합니다.

사용법 :

jinfo [option] <pid>
(to connect to running process)
jinfo [option] <executable <core>
(to connect to a core file)
jinfo [option] [server_id@]<remote server IP or hostname>
(to connect to remote debug server)

选项说明:

-flag <name> :输出指定参数值
-flag [+|-]<name> :设置指定参数是否可用
-flag <name>=<value> :设置参数和值
-flags:输出所有参数
-sysprops:输出Java参数
<no option> :输出上面的所有参数信息

 

4、jmap:Java内存映像工具

用于生成堆转储快照(一般称为heapdump或dump文件)

用法:

jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a core file)
jmap [option] [server_id@]<remote server IP or hostname>
(to connect to remote debug server)

选项说明:

-dump:生成Java堆转储快照。格式为:-dump:[live,]format=b,file=<filename>,其中live子参数说明是否只dump出存活的对象

-finalizerinfo:显示在F-Queue队列中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效

-heap:显示Java堆详细信息,如使用哪种回收期、参数配置、分代状况等。只在Linux/Solaris平台下有效

-histo:显示对重对象统计信息,包括类、实例数量、合计容量

-permstat:以ClassLoader为统计口径显示永久代内存状态。只在Linux/Solaris平台下有效

-F:当虚拟机进程堆-dump选项没有响应时,可食用这个选项强制生成dump快照。只在Linux/Solaris平台下有效

生成Java堆转储快照:

显示Java堆详细信息:

堆配置参数说明:

MinHeapFreeRatio:最小堆空闲比率,默认40%,小于40%增加堆内存
MaxHeapFreeRatio:最大堆空闲比率,默认70%,大于70%减少堆内存
MaxHeapSize:最大堆内存
NewSize:新生代内存大小
MaxNewSize:新生代最大内存
OldSize:老年代大小
NewRatio:新生代比率,默认2
SurvivorRatio:存活区比率,默认8
MetaspaceSize:元空间内存大小
MaxMetaspaceSize:元空间最大内存
CompressedClassSpaceSize:压缩类空间大小
G1HeapRegionSize:G1垃圾收集器Region大小,取值范围从1M到32M,且是2的指数。如不设定,那么G1会根据Heap大小自动决定

 

 5、jhat:虚拟机堆转储快照分析工具

jhat命令与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生产dump文件的分析结果后,可以在浏览器中查看。

实际工作很少使用,本文使用Eclipse Memory Analyzer等工具。

关于Eclipse Memory Analyzer可以查看我的另一篇文章:https://www.cnblogs.com/wangymd/p/11277583.html 

 

6、jstack:Java堆栈跟踪工具

用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。

线程快照就是单签虚拟机内每条线程正在习性的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。

用法:

jstack [-l] <pid>
(to connect to running process)
jstack -F [-m] [-l] <pid>
(to connect to a hung process)
jstack [-m] [-l] <executable> <core>
(to connect to a core file)
jstack [-m] [-l] [server_id@]<remote server IP or hostname>
(to connect to a remote debug server)

选项:

-F:当正常输出的请求不被响应时,强制输出线程堆栈
-m:如果调用到本地方法的话,可以显示C/C++的堆栈
-l:除堆栈外,显示关于锁的附加信息

 

추천

출처www.cnblogs.com/wangymd/p/11274808.html