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。
  • pipo (頁進/出) 非零直欄中的值,可能表示您正在分頁且需要更多記憶體。 對於部分 JVM 實例,堆疊大小可能設定太高。
  • 與處理程序數目相比, cs (接觸開關) 變得非常高。 您可能必須使用 vmtune來調整系統。
  • 在 cpu 區段中, us (使用者時間) ,指出在程式中花費的時間。 假設 Java™ 是 tprof 清單中的第一個,您需要調整 Java 應用程式。 在 CPU 區段中,如果 sys (系統時間) 高於預期,且您仍有剩餘 id (閒置) 時間,則可能會有鎖定競用。 請檢查 tprof ,以取得核心時間內的鎖定相關呼叫。 您可能想要嘗試多個 JVM 實例。
  • -t 旗標,它會將每一個樣本的時間新增至行尾。