linux上jvm 参数调优

linux下jvm 参数调优
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?– 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

jmap
jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。
使用方法
jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。
jmap -dump:format=b,file=f1 PID可以将该PID进程的内存heap输出出来到f1文件里。

集成工具: JConsole,jvisualvm

典型性能故障分析

2.vmstat

1 楼
singleant
2011-10-18  

gc参数也可以整理下 挺有用的
诊断工具 jstack也非常有用

2 楼
san_yun
2011-10-18  

singleant 写道

gc参数也可以整理下 挺有用的
诊断工具 jstack也非常有用

jstack 好像专门看线程死锁,回头研究一下。

linux上jvm 参数调优

相关文章:

你感兴趣的文章:

标签云: