首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jps jstat ps jstack j地图 jinfo

2012-10-27 
jps jstat ps jstack jmap jinfoJstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics

jps jstat ps jstack jmap jinfo
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。

jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。

执行:cd $JAVA_HOME/bin中执行jstat,注意jstat后一定要跟参数。

语法结构:
Usage: jstat -help|-options
       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

参数解释:
Options — 选项,我们一般使用 -gcutil 查看gc情况
vmid    — VM的进程号,即当前运行的java进程号
interval– 间隔时间,单位为秒或者毫秒
count   — 打印次数,如果缺省则打印无数次
stat -printcompilation pid:当前VM执行的信息。

-gcutil参数
S0  — Heap上的 Survivor space 0 区已使用空间的百分比
S1  — Heap上的 Survivor space 1 区已使用空间的百分比
E   — Heap上的 Eden space 区已使用空间的百分比
O   — Heap上的 Old space 区已使用空间的百分比
P   — Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

jstat使用过程如下:
sudo jps用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。   

1,使用top命令查看java的pid,发现有2个java进程,不确定哪个对应的是web应用的进程号

Attaching to process ID 3713, please wait...Debugger attached successfully.Server compiler detected.JVM version is 20.4-b02Deadlock Detection:No deadlocks found.Thread 12172: (state = BLOCKED) - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)


jmap:显示java进程内存使用的相关信息
    jmap pid #打印内存使用的摘要信息
    jmap –heap pid #java heap信息
    jmap -histo:live pid #统计对象count ,live表示在使用
    jmap -histo pid >mem.txt #打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件
    jmap -dump:format=b,file=mem.dat pid #将内存使用的详细情况输出到mem.dat 文件

jvm配置打印GC相关信息
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
对应的日志会输出到catalina的日志中去

jinfo -flag HeapDumpBeforeFullGC  29167  #查看HeapDumpBeforeFullGC 
jinfo: 查看和修改JVM参数
Usage:
    jinfo <option> <pid>
       (to connect to a running process)

where <option> is one of:
    -flag <name>         to print the value of the named VM flag
    -flag [+|-]<name>    to enable or disable the named VM flag
    -flag <name>=<value> to set the named VM flag to the given value
    -h | -help           to print this help message

热点排行