JVM 监控

一、内存监控方法

(1)、jps -l 输出完全的包名,主类名,jar完全路径名
jps -v 显示jvm参数
jps lv 192.168.6.33 java进程,显示jvm参数,显示完全的包名,主类名,jar完全路径
注意: 192.168.6.33主机要启jstatd 否则报错
RMI Registry not available at 192.168.6.33:1099
Connection refused to host:192.168.6.33; nested exception is:
        java.net.ConnectException: Connection refused: connect

(2)、jmap 在屏幕上显示出指定pid的jvm内存中对象信息状况。

jmap -heap pid  堆栈的分配和使用情况

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 4294967296 (4096.0MB)
   NewSize          = 1073741824 (1024.0MB)
   MaxNewSize       = 1073741824 (1024.0MB)
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 85983232 (82.0MB)
   G1HeapRegionSize = 0 (0.0MB)


Heap Usage:
PS Young Generation
Eden Space:
   capacity = 1071316992 (1021.6875MB)
   used     = 469910984 (448.1420364379883MB)
   free     = 601406008 (573.5454635620117MB)
   43.86292642691511% used
From Space:
   capacity = 1245184 (1.1875MB)
   used     = 688128 (0.65625MB)
   free     = 557056 (0.53125MB)
   55.26315789473684% used
To Space:
   capacity = 1179648 (1.125MB)
   used     = 0 (0.0MB)
   free     = 1179648 (1.125MB)
   0.0% used
PS Old Generation
   capacity = 3221225472 (3072.0MB)
   used     = 67684536 (64.54900360107422MB)
   free     = 3153540936 (3007.450996398926MB)
   2.1012045443058014% used
PS Perm Generation
   capacity = 21757952 (20.75MB)
   used     = 5004720 (4.7728729248046875MB)
   free     = 16753232 (15.977127075195312MB)
   23.001797227974397% used

新生代,老生代,持久代的垃圾回收情况。

jmap -histo pid  在屏幕上显示出指定pid的jvm内存中对象信息状况。(如:产生那些对象,及其数量)。 

 num     #instances         #bytes  class name
----------------------------------------------
   1:        255621       48054784  [I
   2:        564288       31600128  com.chetuobang.taxi.Section
   3:        282979       17406152  [C
   4:          1554        5289304  [Ljava.lang.Object;
   5:        159321        3823704  java.lang.String
   6:        134125        3219000  sun.misc.FDBigInt
   7:         64994        2599760  java.math.BigDecimal
   8:         56153        2246120  sun.misc.FloatingDecimal
   9:         40505        1620200  java.math.BigInteger
  10:          9509        1299656  <methodKlass>
 

(3)、jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

jstat  -gcutil pid:可以显示gc的信息,查看gc的次数,及时间
jstat -class pid:显示加载class的数量,及所占空间等信息。  
jstat -compiler pid:显示VM实时编译的数量等信息。  

jstat -gcutil pid 可以显示gc的信息,查看gc的次数,及时间。 
比如jstat -gcutil 3304 10000 命令是每个10秒钟输出一次jvm实例为3304的gc信息。
jsta就是倾向于分析jvm内存的gc情况.但显然,它们是从不同维度来分析的。jsat常用的参数有很多,如 -gc,-gcutil,-gccause,
S0           S1       E           O               P           YGC       YGCT    FGC    FGCT     GCT
54.62   0.00    42.87   43.52       86.24      1792       5.093       33      7.670    12.763
S0:新生代的susvivor0区,空间使用率为54.62%
S1:新生代的susvivor1区,空间使用率为0.00%(因为还没有执行第二次minor收集)
E:eden区,空间使用率42.87%
O:旧生代,空间使用率43.52%
P:持久带,空间使用率86.24%
YGC:minor gc执行次数1792次
YGCT:minor gc耗费的时间5.093毫秒
FGC:full gc执行次数33
FGCT:full gc耗费的时间7.670毫秒

GCT:gc耗费的总时间12.763毫秒


内存泄漏原因


JVM 参数设置:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

Java虚拟机的JVM垃圾回收机制:http://blog.csdn.net/zhangren07/article/details/6270895

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金