天天看點

JVM常用檢視資源指令

一、linux指令

1、top指令

top指令能夠實時顯示系統中各個程序的資源占用狀況,可以從宏觀上觀察系統各個程序對 CPU 的占用情況以及記憶體使用情況,各個參數意義如下:

JVM常用檢視資源指令
JVM常用檢視資源指令

2、sar指令

sar 指令可以周期的對記憶體和 CPU 使用情況進行采樣,基本文法如下:

sar  [options]   [<interval>  <count>]

其中 interval(機關是秒) 和 count 分别表示采樣周期和采樣數量,options 可以指定 sar 指令對那些資料進行采樣,options 選項如下:

JVM常用檢視資源指令

3、vmstat 指令

文法是 vmstat  [<interval>  <count>],它可以統計CPU、記憶體使用情況、swap使用情況等資訊,指令輸出含義如下:

JVM常用檢視資源指令

4、iostat指令

文法是  iostat [<interval>  <count>],可以提供詳盡的 I/O 資訊,輸出參數意義如下:

JVM常用檢視資源指令

5、pidstat工具

pidstat 不僅可以監視程序的性能情況,也可以監視線程的性能情況。

1、CPU使用頻率監控

要監控程式的 CPU 使用率,先使用 jps 指令找到 java 程式的  PID,然後使用 pidstat 指令輸出程式的 CPU 使用情況,指令格式是  pidstat  -p  程序ID  -u (cpu 使用頻率)  <interval>  <count>

pidstat 指令也可以監控線程資訊,指令格式是  pidstat  -p  程序ID  <interval>  <count>  -u (cpu 使用頻率)  -t(将系統性能的監控細化到線程級别)

jstack  -1  程序ID  >/tmp/t.txt  導出指定應用程式的所有線程

2、I/O 使用監控

I/O 監控指令是 pidstat  -p  程序ID  -d(監控對象為磁盤I/O) -t(将系統性能的監控細化到線程級别)  <interval>  <count>  

3、記憶體監控

記憶體監控指令是  pidstat  -r(記憶體監控)   -p   程序ID   <interval>  <count>

二、JDK指令

1、jps指令

jps 指令類似于 ps 指令,但是它隻列出系統中所有的 java 應用程式。通過 jps 指令可以友善地檢視 Java 程序的啟動類、傳入參數和 JVM 參數等資訊。

2、jstat 指令

jstat 用于觀察 Java 應用程式運作時資訊的工具,還可以檢視堆資訊的詳細情況,它的基本使用文法為:

jstat  -<options>   [-t]     [-h<lines>]     [vmid]      [<interval>  <count>]

-t 參數可以在輸出資訊前加上一個  Timestamp 列,顯示程式的運作時間

-h參數可以在周期性資料輸出時,輸出多少行資料後,跟着輸出一個表頭資訊

interval 參數用于指定輸出統計資料的周期,機關是毫秒

count 參數用于指定一共輸出多少次資料

選項 options 可以由以下值構成:

JVM常用檢視資源指令

3、jinfo 指令

jinfo 可以用來檢視正在運作的 java 應用程式的擴充參數,甚至支援在運作時修改部分參數,文法結構如下:

jinfo  <option>  <pid>

其中,options 為以下資訊:

JVM常用檢視資源指令

4、jstack 指令

jstack 可以導出 java 應用程式的線程堆棧,它能自動進行死鎖檢查,輸出找到的死鎖的資訊,幫助開發人員解決死鎖問題,文法結構如下:

jstack  [-l]  <pid>

-l  用于列印鎖的附加資訊

jstack  -l   pid  >C:/deadlock.txt

将輸出的所有鎖資訊儲存到相應目錄的檔案中