在性能方面,排查問題最難最鼓譟,可以閒運行幾個支持指標比較多的工具來縮小排查範圍:
- top:可以得到各種CPU使用率以及殭屍進程和平均負載信息。
- vmstat:可以得到上下文切換次數、中斷次數。運行狀態和不可中斷狀態的進程數。
- pidstat:得到進程的用戶CPU使用率,以及自願上下文切換和非自願上下文切換情況
(一)vmstat的介紹
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
-a:顯示活躍和非活躍內存
-f:顯示從系統啓動至今的fork數量 。
-m:顯示slabinfo
-n:只在開始時顯示一次各字段名稱。
-s:顯示內存相關統計信息及多種系統活動數量。
delay:刷新時間間隔。如果不指定,只顯示一條結果。
count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮。
-d:顯示磁盤相關統計信息。
-p:顯示指定磁盤分區統計信息
-S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位爲K(1024 bytes)
-V:顯示vmstat版本信息。
(二)top的介紹
top [ - ] [d delay] [q] [c] [s] [S] [i] [n] [b]
- d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
- q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
- c : 切換顯示模式,共有兩種模式,一是隻顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
- s : 安全模式,將交談式指令取消, 避免潛在的危機
- i : 不顯示任何閒置 (idle) 或無用 (zombie) 的行程
- n : 更新的次數,完成後將會退出 top
- b : 批次檔模式,搭配 "n" 參數一起使用,可以用來將 top 的結果輸出到檔案內
(三)pidstat的介紹
pidstat -u 1 pidstat -r 1 pidstat -d 1
以上命令以1秒爲信息採集週期,分別獲取cpu、內存和磁盤IO的統計信息。