(轉)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 -- 從應用程序啟動到采樣時用於垃圾回收的總時間(單位秒)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM