1.基本概念。
JAVA_MEM_OPTS=" -server -Xmx2g -Xms2g -Xmn512m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedOops
-server 启用能够执行优化的编译器。
-Xss 单个线程堆栈大小值。
-Xms 启动应用时,JVM堆空间的初始大小值。
-Xmx 应用运行中,JVM堆空间的极限值。
-Xmn 堆空间的新生代空间大小。
-XX:PermSize永久存储区的大小
2.VM性能诊断工具
基本工具:JPS ,JSTAT,JMAP
Jstat( “Java Virtual Machine statistics monitoring tool” )是JDK自带的一个轻量级小工具。主要对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
语法结构如下:jstat [Options] vmid [interval] [count]
Options – 选项,我们一般使用 -gcutil 查看gc情况
vmid – VM的进程号,即当前运行的java进程号
interval-- 间隔时间,单位为毫秒
count – 打印次数,如果缺省则打印无数次
root@(none):~# jstat -gcutil 595
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 25.40 29.78 48.50 5 0.036 3 0.238 0.274
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 -gccapacity查看内存占用情况
[admin@server12 ~]$ jstat -gccapacity 10010
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
65536.0 524288.0 65536.0 6528.0 6528.0 52480.0 196608.0 1572864.0 450572.0 450572.0 21248.0 131072.0 72900.0 72900.0 93842 16790
NGCMN Minimum new generation capacity (KB).
NGCMX Maximum new generation capacity (KB).
NGC Current new generation capacity (KB).
S0C Current survivor space 0 capacity (KB).
S1C Current survivor space 1 capacity (KB).
EC Current eden space capacity (KB).
OGCMN Minimum old generation capacity (KB).
OGCMX Maximum old generation capacity (KB).
OGC Current old generation capacity (KB).
OC Current old space capacity (KB).
PGCMN Minimum permanent generation capacity (KB).
PGCMX Maximum Permanent generation capacity (KB).
PGC Current Permanent generation capacity (KB).
PC Current Permanent space capacity (KB).
YGC Number of Young generation GC Events.
FGC Number of Full GC Events.
jmap
jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。
使用方法
jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。
jmap -dump:format=b,file=f1 PID可以将该PID进程的内存heap输出出来到f1文件里。
集成工具: JConsole,jvisualvm
典型性能故障分析
2.vmstat
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
AbPxV3MaGD81E9d+VvN1iA==