一、linux指令
1、top指令
top指令能夠實時顯示系統中各個程序的資源占用狀況,可以從宏觀上觀察系統各個程序對 CPU 的占用情況以及記憶體使用情況,各個參數意義如下:
2、sar指令
sar 指令可以周期的對記憶體和 CPU 使用情況進行采樣,基本文法如下:
sar [options] [<interval> <count>]
其中 interval(機關是秒) 和 count 分别表示采樣周期和采樣數量,options 可以指定 sar 指令對那些資料進行采樣,options 選項如下:
3、vmstat 指令
文法是 vmstat [<interval> <count>],它可以統計CPU、記憶體使用情況、swap使用情況等資訊,指令輸出含義如下:
4、iostat指令
文法是 iostat [<interval> <count>],可以提供詳盡的 I/O 資訊,輸出參數意義如下:
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 可以由以下值構成:
3、jinfo 指令
jinfo 可以用來檢視正在運作的 java 應用程式的擴充參數,甚至支援在運作時修改部分參數,文法結構如下:
jinfo <option> <pid>
其中,options 為以下資訊:
4、jstack 指令
jstack 可以導出 java 應用程式的線程堆棧,它能自動進行死鎖檢查,輸出找到的死鎖的資訊,幫助開發人員解決死鎖問題,文法結構如下:
jstack [-l] <pid>
-l 用于列印鎖的附加資訊
jstack -l pid >C:/deadlock.txt
将輸出的所有鎖資訊儲存到相應目錄的檔案中