1. 程式人生 > >JMAP、jstat命令詳解

JMAP、jstat命令詳解

 Jstat是Sun JDK中自帶的監控工具,利用了JVM內建的指令對Java應用程式的資源和效能進行實時的命令列的監控,包括了對Heap size和垃圾回收狀況的監控等等。JStat是命令列方式執行,對系統資源佔用很小,在大壓力下很少影響效能。並且執行要求低,只要通過Telnet或SSH等方式遠端登入到伺服器所在機器,就可以進行監控。在與Jmap、JStack等工具結合使用時非常方便。

使用jstat命令監測如下記憶體使用和垃圾回收統計資料: 
$ <JDK>/bin/jstat –gcutil [-h<lines>] <pid> <interval>
jstat - gcutil選項列印所執行應用程式程序ID <pid>在指定抽樣間隔<interval>下,堆使用及垃圾回收時間摘要,並且每<lines>行顯示一次頭資訊。這產生出以下樣例輸出:
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 24.48 46.60 90.24 142 0.530 104 28.739 29.269
0.00 0.00 2.38 51.08 90.24 144 0.536 106 29.280 29.816
0.00 0.00 36.52 51.08 90.24 144 0.536 106 29.280 29.816
0.00 26.62 36.12 51.12 90.24 145 0.538 107 29.552 30.090

一些術語的中文解釋:

S0C:年輕代中第一個survivor(倖存區)的容量 (位元組)
S1C:年輕代中第二個survivor(倖存區)的容量 (位元組)
S0U:年輕代中第一個survivor(倖存區)目前已使用空間 (位元組)
S1U:年輕代中第二個survivor(倖存區)目前已使用空間 (位元組)
EC:年輕代中Eden(伊甸園)的容量 (位元組)
EU:年輕代中Eden(伊甸園)目前已使用空間 (位元組)
OC:Old代的容量 (位元組)
OU:Old代目前已使用空間 (位元組)
PC:Perm(持久代)的容量 (位元組)
PU:Perm(持久代)目前已使用空間 (位元組)
YGC:從應用程式啟動到取樣時年輕代中gc次數
YGCT:從應用程式啟動到取樣時年輕代中gc所用時間(s)
FGC:從應用程式啟動到取樣時old代(全gc)gc次數
FGCT:從應用程式啟動到取樣時old代(全gc)gc所用時間(s)
GCT:從應用程式啟動到取樣時gc用的總時間(s)

NGCMN:年輕代(young)中初始化(最小)的大小 (位元組)

NGCMX:年輕代(young)的最大容量 (位元組)

NGC:年輕代(young)中當前的容量 (位元組)

OGCMN:old代中初始化(最小)的大小 (位元組)

OGCMX:old代的最大容量 (位元組)

OGC:old代當前新生成的容量 (位元組)

PGCMN:perm代中初始化(最小)的大小 (位元組)

PGCMX:perm代的最大容量 (位元組)

PGC:perm代當前新生成的容量 (位元組)

S0:年輕代中第一個survivor(倖存區)已使用的佔當前容量百分比

S1:年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比

E:年輕代中Eden(伊甸園)已使用的佔當前容量百分比

O:old代已使用的佔當前容量百分比

P:perm代已使用的佔當前容量百分比

S0CMX:年輕代中第一個survivor(倖存區)的最大容量 (位元組)

S1CMX :年輕代中第二個survivor(倖存區)的最大容量 (位元組)

ECMX:年輕代中Eden(伊甸園)的最大容量 (位元組)

DSS:當前需要survivor(倖存區)的容量 (位元組)(Eden區已滿)

TT: 持有次數限制

MTT : 最大持有次數限制

如果FGC 過多,有必要調整下jvm引數

[[email protected] bin]# jstat -gcutil 3821 5000  10
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  0.00   0.00 100.00  95.11  59.02    370   48.495   121  337.359  385.855
  0.00   0.00  84.36  99.99  59.03    370   48.495   122  345.393  393.888
  0.00  50.37 100.00  99.49  59.03    370   48.495   123  348.494  396.989
  0.00 100.00 100.00  56.58  59.03    371   48.496   124  348.494  396.989
  0.00   0.00  56.50  96.57  59.02    371   48.496   125  355.148  403.643
  0.00   0.00 100.00  96.57  59.02    372   48.496   126  355.148  403.643
  0.00   0.00  37.17  90.75  59.02    372   48.496   127  361.721  410.217
  0.00   0.00 100.00  90.75  59.02    373   48.496   128  361.721  410.217

5000 是5秒 ,10是10次

參考範例
JAVA_OPTS="-server -Xms4g -Xmx4g -XX:PermSize=96m -XX:MaxPermSize=256m -Xmn2560m -XX:SurvivorRatio=10 -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX
:CMSMaxAbortablePrecleanTime=5000 -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80

相關推薦

JMAPjstat命令

 Jstat是Sun JDK中自帶的監控工具,利用了JVM內建的指令對Java應用程式的資源和效能進行實時的命令列的監控,包括了對Heap size和垃圾回收狀況的監控等等。JStat是命令列方式執行,對系統資源佔用很小,在大壓力下很少影響效能。並且執行要求低,只要通過Telnet或SSH等方式遠端登入到伺

JVM性能調優監控工具jpsjstackjmapjhatjstat使用

wait light idle cit cal reflect array sin replace JDK本身提供了很多方便的JVM性能調優監控工具,除了集成式的VisualVM和jConsole外,還有jps、jstack、jmap、jhat、jstat等小巧的工具,本博

JVM效能調優監控工具jpsjstackjstatjmapjinfo使用

jcmd命令:主要提供JVM的一些基本資訊查詢(檢視程序執行時間、檢視虛擬機器版本資訊、顯示調優標誌)jinfo命令:檢視程序ID號。檢視JVM的配置引數。jps檢視所有的jvm程序,包括程序ID,程序啟動的路徑等等。我自己也用PS,即:ps -ef | grep javaj

#20 ifconfigroutenetstatipss命令與修改主機名與網卡配置文件

ifconfig、route、netstat、ip、ss命令詳解與修改主機名與網卡配置文件 網絡的結構: 硬件:計算機、互聯設備、網絡設備 軟件:操作系統、協議、應用程序、數據庫 網絡的功能: 資源共享:目的 數據通信:手段 網絡通信模型 ISO/OSI: 應用層

/etc/issueshutdown命令

linux etc issue 一、/etc/issue linux字符終端在登錄提示符前的輸出信息。通常包括系統的一段短說明或歡迎信息,內容由系統管理員確定。 issue選項說明: \d:插入當前日期; \s:插入系統名稱; \

jstat命令

對象 packages 內存 內存統計 admin edt attr jdk版本 and jstat命令使用 jstat命令可以查看堆內存各部分的使用量,以及加載類的數量。命令的格式如下: jstat [-命令選項] [vmid] [間隔時間/毫秒] [查詢次數] 註意:使

[Linux] killall kill pkill 命令

信號 而不是 無法 ctr 限制 localhost 啟動 roc 幫助信息 killall 命令   Linux系統中的killall命令用於殺死指定名字的進程(kill processes by name)。我們可以使用kill命令殺死指定進程PID的進程,如果要找到我

grepawksed命令2

sed -n 10個 \n 命令 時間 his jpg acc log grep、awk、sed命令詳解 上一篇對grep、awk、sed命令的基本參數做了介紹,這一篇寫一些例子。 1.分析access.log日誌內,當天訪問次數最多的10個頁面,並且按降序排列。 # ca

12rpm 命令——未完成

rpm 執行安裝包 二進位制包(Binary)以及原始碼包(Source)兩種。二進位制包可以直接安裝在計算機中,而原始碼包將會由 RPM自動編譯、安裝。原始碼包經常以src.rpm作為字尾名。 常用命令組合: -ivh:安裝顯示安裝進度–install–verbose–hash -Uvh:

9vim 命令——未完成

Vim命令合集 命令歷史 以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然後按上下箭頭來選擇某個歷史命令。 啟動vim 在命令列視窗中輸入以下命令即可 vim 直接啟動vim vim filename 開啟vim並建立名為filename的檔案 檔案命令 開啟單個檔案 vim file

linux命令(19)修改檔案屬性 lsattrchattr命令

修改檔案屬性 Linux檔案系統裡的檔案和目錄全都關聯使用者、使用者組和其他使用者的讀、寫和執行許可權。此外,還可能存在其他特定檔案系統型別才有的檔案和目錄相關屬性。 ext2和ext3檔案系統檔案可以選用一些特殊屬性。使用lsattr命令可以列出這些屬性。大部分屬性都晦澀

dd命令cp命令+dd命令cp命令對比

1、dd命令詳解 1)中文man手冊dd的解釋 NAME      dd - 轉換和拷貝檔案 摘要使用方法:        dd    [--help]   [--version]   [if=file]   [of=file]       [ibs=bytes

JMAPjstat命令輸出結果說明

顯示java程序記憶體使用的相關資訊 jmap pid #列印記憶體使用的摘要資訊 jmap –heap pid #java heap資訊 jmap -histo:live pid #統計物件count ,live表示在使用 jmap -histo pid >mem.txt #列印比較簡單的各個有多少

設定開機啟動chkconfig命令

chkconfig用於設定系統的各種服務 語法:chkconfig [--add][--del][--list][系統服務]或chkconfig [--level<等級代號>][系統服務][on/off/reset]​ 引數用法:    --add  增

linux tar 加壓壓縮命令

轉自 http://blog.sina.com.cn/s/blog_7993615401015244.html tar [-cxtzjvfpPN] 檔案與目錄 .... 引數: -c :建立一個壓縮檔案的引數指令(create 的意思); -x :解開一個壓縮檔案的引數指令

dd命令cp命令+dd命令cp命令對比---delong

1、dd命令詳解 1)中文man手冊dd的解釋 NAME      dd - 轉換和拷貝檔案 摘要使用方法:        dd    [--help]   [--version]   [if=file]   [of=file]       [ibs=bytes]   [

Redis系列(八):資料結構List雙向連結串列中阻塞版本之BLPOPBRPOP和LINDEXLINSERTLRANGE命令

1.BRPOP、BLPOP BLPOP: BLPOP 是阻塞式列表的彈出原語。 它是命令 LPOP 的阻塞版本,這是因為當給定列表內沒有任何元素可供彈出的時候, 連線將被 BLPOP 命令阻塞。 當給定多個 key 引數時,按引數 key 的先後順序依次檢查

JVM性能調優監控工具jpsjstackjmapjhatjstathprof使用

工具 heap dump 必備 mac hist java應用 遇到 oca printf 現實企業級Java開發中,有時候我們會碰到下面這些問題: OutOfMemoryError,內存不足內存泄露線程死鎖鎖爭用(Lock Contention)Java進程消耗CPU過高

JVM效能調優監控工具jpsjstackjmapjhatjstathprof使用,以及例子

現實企業級Java開發中,有時候我們會碰到下面這些問題: OutOfMemoryError,記憶體不足 記憶體洩露 執行緒死鎖 鎖爭用(Lock Contention) Java程序消耗CPU過高 ......     這

JVM效能調優監控工具jpsjstackjmapjhatjstathprof使用

第一部分:工具介紹部分: 現實企業級Java開發中,有時候我們會碰到下面這些問題: OutOfMemoryError,記憶體不足 記憶體洩露 執行緒死鎖 鎖爭用(Lock Contention) Java程序消耗CPU過高 ...... 這些問題在日常開發中可能被很多人忽視(比如有的人遇到