vmstat
請使用這個指令來提供系統上的多個統計資料。 vmstat 指令會報告執行及等待佇列中核心執行緒、記憶體分頁、岔斷、系統呼叫、環境定義切換及 CPU 活動的相關統計資料。
CPU 活動是使用者模式、系統模式、閒置時間及等待磁碟 I/O 的百分比明細。
此指令的一般語法如下:
vmstat <time_between_samples_in_seconds> <number_of_samples> -t一般輸出看起來如下:
kthr memory page faults cpu time
----- ----------- ------------------------ ------------ ----------- --------
r b avm fre re pi po fr sr cy in sy cs us sy id wa hr mi se
0 0 45483 221 0 0 0 0 1 0 224 326 362 24 7 69 0 15:10:22
0 0 45483 220 0 0 0 0 0 0 159 83 53 1 1 98 0 15:10:23
2 0 45483 220 0 0 0 0 0 0 145 115 46 0 9 90 1 15:10:24在此輸出中,尋找:
- 直欄
r(執行佇列) 及b(已封鎖) 開始增加,尤其是超過 10。 此上升通常表示您有太多處理程序在競爭 CPU。 pi、po(頁進/出) 非零直欄中的值,可能表示您正在分頁且需要更多記憶體。 對於部分 JVM 實例,堆疊大小可能設定太高。- 與處理程序數目相比,
cs(接觸開關) 變得非常高。 您可能必須使用 vmtune來調整系統。 - 在 cpu 區段中,
us(使用者時間) ,指出在程式中花費的時間。 假設 Java™ 是 tprof 清單中的第一個,您需要調整 Java 應用程式。 在 CPU 區段中,如果sys(系統時間) 高於預期,且您仍有剩餘id(閒置) 時間,則可能會有鎖定競用。 請檢查 tprof ,以取得核心時間內的鎖定相關呼叫。 您可能想要嘗試多個 JVM 實例。 - -t 旗標,它會將每一個樣本的時間新增至行尾。