vmstat :偵測系統資源變化
如果你想要動態的瞭解一下系統資源的運行,那麼可以使用 vmstat 命令!vmstat 可以偵測: CPU / 內存 / 磁碟輸入輸出狀態 等等,如果你想要了解一部繁忙的系統到底是哪個環節最累人, 可以使用 vmstat 分析看看。底下是常見的選項與參數說明:
[root@instructor ~]# vmstat [-a] [延遲 [總計偵測次數]] <==CPU/內存等資訊
[root@instructor ~]# vmstat [-fs] <==內存相關
[root@instructor ~]# vmstat [-S 單位] <==配置顯示數據的單位
[root@instructor ~]# vmstat [-d] <==與磁盤有關
[root@instructor ~]# vmstat [-p 分割槽] <==與磁碟有關
選項與參數:
-a :使用 inactive/active(活躍與否) 取代 buffer/cache 的內存輸出資訊;
-f :啓動到目前爲止,系統複製 (fork) 的程序數;
-s :將一些事件 (啓動至目前爲止) 導致的內存變化情況列表說明;
-S :後面可以接單位,讓顯示的數據有單位。例如 K/M 取代 bytes 的容量;
-d :列出磁盤的讀寫總量統計表
-p :後面列出分割槽,可顯示該分割槽的讀寫總量統計表
範例一:統計目前主機 CPU 狀態,每秒一次,共計三次!
[root@instructor ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 28 61540 137000 291960 0 0 4 5 38 55 0 0 100 0 0
0 0 28 61540 137000 291960 0 0 0 0 1004 50 0 0 100 0 0
0 0 28 61540 137000 291964 0 0 0 0 1022 65 0 0 100 0 0
利用 vmstat 甚至可以進行追蹤!你可以使用類似 vmstat 5 代表每五秒鐘升級一次,且無窮的升級!直到你按下 [ctrl]-c 爲止。如果你想要即時的知道系統資源的運行狀態,可以使用這個命令!那麼上面的表格各項 基本說明如下:
內存欄位 (procs) 的項目分別爲:
r :等待運行中的程序數量;b:不可被喚醒的程序數量。這兩個項目越多,代表系統越忙碌 (因爲系統太忙,所以很多程序就無法被運行或一直在等待而無法被喚醒之故)。
內存欄位 (memory) 項目分別爲:
swpd:虛擬內存被使用的容量; free:未被使用的內存容量; buff:用於緩衝內存; cache:用於高速緩存。 這部份則與 free 是相同的。
內存置換空間 (swap) 的項目分別爲:
si:由磁盤中將程序取出的量; so:由於內存不足而將沒用到的程序寫入到磁碟的 swap 的容量。 如果 si/so 的數值太大,表示內存內的數據常常得在磁盤與主內存之間傳來傳去,系統效能會很差!
磁盤讀寫 (io) 的項目分別爲:
bi:由磁盤寫入的區塊數量; bo:寫入到磁盤去的區塊數量。如果這部份的值越高,代表系統的 I/O 非常忙碌!
系統 (system) 的項目分別爲:
in:每秒被中斷的程序次數; cs:每秒鐘進行的事件切換次數;這兩個數值越大,代表系統與周邊設備的溝通非常頻繁! 這些周邊設備當然包括磁盤、網絡卡、時間鍾等。
CPU 的項目分別爲:
us:非核心層的 CPU 使用狀態; sy:核心層所使用的 CPU 狀態; id:閒置的狀態; wa:等待 I/O 所耗費的 CPU 狀態; st:被虛擬機器 (virtual machine) 所盜用的 CPU 使用狀態 (2.6.11 以後才支持)。
範例二:系統上面所有的磁盤的讀寫狀態
[root@instructor ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
....(中間省略)....
hda 144188 182874 6667154 7916979 151341 510244 8027088 15244705 0 848
hdb 0 0 0 0 0 0 0 0 0 0
[root@instructor ~]# vmstat [-a] [延遲 [總計偵測次數]] <==CPU/內存等資訊
[root@instructor ~]# vmstat [-fs] <==內存相關
[root@instructor ~]# vmstat [-S 單位] <==配置顯示數據的單位
[root@instructor ~]# vmstat [-d] <==與磁盤有關
[root@instructor ~]# vmstat [-p 分割槽] <==與磁碟有關
選項與參數:
-a :使用 inactive/active(活躍與否) 取代 buffer/cache 的內存輸出資訊;
-f :啓動到目前爲止,系統複製 (fork) 的程序數;
-s :將一些事件 (啓動至目前爲止) 導致的內存變化情況列表說明;
-S :後面可以接單位,讓顯示的數據有單位。例如 K/M 取代 bytes 的容量;
-d :列出磁盤的讀寫總量統計表
-p :後面列出分割槽,可顯示該分割槽的讀寫總量統計表
範例一:統計目前主機 CPU 狀態,每秒一次,共計三次!
[root@instructor ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 28 61540 137000 291960 0 0 4 5 38 55 0 0 100 0 0
0 0 28 61540 137000 291960 0 0 0 0 1004 50 0 0 100 0 0
0 0 28 61540 137000 291964 0 0 0 0 1022 65 0 0 100 0 0
利用 vmstat 甚至可以進行追蹤!你可以使用類似 vmstat 5 代表每五秒鐘升級一次,且無窮的升級!直到你按下 [ctrl]-c 爲止。如果你想要即時的知道系統資源的運行狀態,可以使用這個命令!那麼上面的表格各項 基本說明如下:
內存欄位 (procs) 的項目分別爲:
r :等待運行中的程序數量;b:不可被喚醒的程序數量。這兩個項目越多,代表系統越忙碌 (因爲系統太忙,所以很多程序就無法被運行或一直在等待而無法被喚醒之故)。
內存欄位 (memory) 項目分別爲:
swpd:虛擬內存被使用的容量; free:未被使用的內存容量; buff:用於緩衝內存; cache:用於高速緩存。 這部份則與 free 是相同的。
內存置換空間 (swap) 的項目分別爲:
si:由磁盤中將程序取出的量; so:由於內存不足而將沒用到的程序寫入到磁碟的 swap 的容量。 如果 si/so 的數值太大,表示內存內的數據常常得在磁盤與主內存之間傳來傳去,系統效能會很差!
磁盤讀寫 (io) 的項目分別爲:
bi:由磁盤寫入的區塊數量; bo:寫入到磁盤去的區塊數量。如果這部份的值越高,代表系統的 I/O 非常忙碌!
系統 (system) 的項目分別爲:
in:每秒被中斷的程序次數; cs:每秒鐘進行的事件切換次數;這兩個數值越大,代表系統與周邊設備的溝通非常頻繁! 這些周邊設備當然包括磁盤、網絡卡、時間鍾等。
CPU 的項目分別爲:
us:非核心層的 CPU 使用狀態; sy:核心層所使用的 CPU 狀態; id:閒置的狀態; wa:等待 I/O 所耗費的 CPU 狀態; st:被虛擬機器 (virtual machine) 所盜用的 CPU 使用狀態 (2.6.11 以後才支持)。
範例二:系統上面所有的磁盤的讀寫狀態
[root@instructor ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
....(中間省略)....
hda 144188 182874 6667154 7916979 151341 510244 8027088 15244705 0 848
hdb 0 0 0 0 0 0 0 0 0 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.