一、内存监控方法
(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实时编译的数量等信息。
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