10.2-vmstat命令

命令 w 查看的是系統整體上的負載,通過看那個數值可以知道當前系統有沒有壓力。但它無法判斷具體是哪裏(CPU、內存、磁盤等)有壓力,所以就用到了 vmstat。 vmstat 命令打印結果共分爲 6 部分:procs、memory、swap、io、system 和 cpu。請重點關注下 r、b、si、so、bi、bo 這幾列信息

vmstat 命令

[root@evan-01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 743500   2108 139308    0    0   223    22  125  202  1  1 96  2  0
[root@evan-01 ~]#

vmstat 1 ,每隔 1 秒顯示一次,動態顯示,可以 ctrl+c 終止

[root@evan-01 ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 743500   2108 139340    0    0   189    18  119  184  0  1 97  2  0
 0  0      0 743484   2108 139340    0    0     0     0   90  100  0  0 100  0  0
 0  0      0 743484   2108 139340    0    0     0     0   84   88  0  0 100  0  0
 0  0      0 743484   2108 139340    0    0     0     0   77   84  1  0 99  0  0
 0  0      0 743484   2108 139340    0    0     0     0   87   91  0  0 100  0  0
 0  0      0 743484   2108 139340    0    0     0     0   82   85  0  1 99  0  0
 0  0      0 743484   2108 139340    0    0     0     0   88   90  0  0 100  0  0
^C
[root@evan-01 ~]# 

vmstat 1 5,每隔 1 秒顯示一次,動態顯示,5次後結束

[root@evan-01 ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 743500   2108 139340    0    0   182    18  117  180  0  1 97  2  0
 0  0      0 743484   2108 139340    0    0     0     0   52   50  0  0 100  0  0
 0  0      0 743484   2108 139340    0    0     0     0   38   35  0  0 100  0  0
 0  0      0 743484   2108 139340    0    0     0     0   50   41  0  1 99  0  0
 0  0      0 743484   2108 139340    0    0     0     0   50   52  0  0 100  0  0
[root@evan-01 ~]# 

procs 顯示進程的相關信息
r (run)
表示運行或等待 CPU 時間片的進程數。大家不要誤以爲等待 CPU 時間片意味着這個進程沒有運行,實際上某一時刻 1 個 CPU 只能有一個進程佔用,其他進程只能排隊等着,此時這些排隊等待 CPU 資源的進程依然是運行狀態。該數值如果長期大於服務器 CPU 的個數,則說明 CPU 資源不夠用了。

b(block)
表示等待資源的進程數,這個資源指的是 I/O、內存等。舉個例子,當磁盤讀寫非常頻繁時,寫數據就會非常慢,此時 CPU 運算很快就結束了,但進程需要把計算的結果寫入磁盤,這樣進程的任務纔算完成,那此時這個進程只能慢慢地等待磁盤了,這樣這個進程就是這個 b 狀態。該數值如果長時間大於 1 ,則需要關注一下了。

memory 顯示內存的相關信息
swpd
表示切換到交換分區中的內存數量,單位爲 KB

free
表示當前空閒的內存數量,單位爲 KB

buff
表示(即將寫入磁盤的)緩衝大小,單位爲 KB

cache
表示(從磁盤中讀取的)緩存大小,單位爲 KB

swap 顯示內存的交換情況
si
表示由交換區寫入內存的數據量,單位爲 KB

so
表示由內存寫入交換區的數據量,單位爲 KB

io 顯示磁盤的使用情況
bi
表示從塊設備讀取數據的量(讀磁盤),單位爲 KB

bo
表示從塊設備寫入數據的量(寫磁盤),單位爲 KB

system 顯示採集間隔內發生的中斷次數
in
表示在某一時間間隔內觀測到的每秒設備的中斷次數

cs
表示每秒產生的上下文切換次數

cpu 顯示的 CPU 的使用狀態
us
顯示用戶下所花費 CPU 的時間百分比

sy
顯示系統花費 CPU 的時間百分比

id
表示 CPU 處於空閒狀態的時間百分比

wa
表示 I/O 等待所佔用 CPU 的時間百分比

st
表示被偷走的 CPU 所佔百分比(一般都爲 0,不用關注)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章