Linux vmstat命令實際操做介紹

vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操做系統的虛擬內存、進程、CPU活動進行監控。它可以對系統的總體狀況進行統計,沒法對某個進程進行深刻分析。linux

vmstat 工具提供了一種低開銷的系統性能觀察方式。
(1)用法
用法:  vmstat  [選項參數]
或  vmstat  [選項參數]  [數字]  [數字]
(2)功能:
功能:  報告虛擬內存的統計信息,關於進程、內存、I/O等系統總體運行狀態。
(3)選項參數:
1) -d:        顯示磁盤相關統計信息。
2) -a:          顯示活躍和非活躍內存
3) -f:         顯示從系統啓動至今的fork數量。
4) -p:          顯示指定磁盤分區統計信息
5) -s:          顯示內存相關統計信息及多種系統活動數量。
6) -m:        顯示slabinfo
(4)實例:算法

1) 、vmstat顯示虛擬內存使用狀況緩存

linuxidc@linuxidc:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b 交換 空閒 緩衝 緩存  si  so    bi    bo  in  cs us sy id wa st
4  0      0 156252  61016 871752    0    0    76    29  53  138  1  1 98  0  0

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

字段說明:工具

1.Procs(進程)

r: 運行隊列中進程數量,這個值也能夠判斷是否須要增長CPU。(長期大於1)oop

b: 等待IO的進程數量。性能

2.Memory(內存)

swpd: 使用虛擬內存大小,若是swpd的值不爲0,可是SI,SO的值長期爲0,這種狀況不會影響系統性能。優化

free: 空閒物理內存大小。spa

buff: 用做緩衝的內存大小。操作系統

cache: 用做緩存的內存大小,若是cache的值大的時候,說明cache處的文件數多,若是頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會很是小。code

3.Swap

si: 每秒從交換區寫到內存的大小,由磁盤調入內存。

so: 每秒寫入交換區的內存大小,由內存調入磁盤。

注意:

內存夠用的時候,這2個值都是0,若是這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閒內存(free)不多的或接近於0時,就認爲內存不夠用了,不能光看這一點,還要結合si和so,若是free不多,可是si和so也不多(大多時候是0),那麼不用擔憂,系統性能這時不會受到影響的。

4.IO(如今的Linux版本塊的大小爲1kb)

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

注意:

隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

5.system(系統)

in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

注意:

上面2個值越大,會看到由內核消耗的CPU時間會越大。

6.CPU(以百分比表示)

us: 用戶進程執行時間百分比(user time) us的值比較高時,說明用戶進程消耗的CPU時間多,可是若是長期超50%的使用,那麼咱們就該考慮優化程序算法或者進行加速。

sy: 內核系統進程執行時間百分比(system time) sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由。

wa: IO等待時間百分比 wa的值高時,說明IO等待比較嚴重,這可能因爲磁盤大量做隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)。

id: 空閒時間百分比

2)每二秒顯示一次系統內存的統計信息

linuxidc@linuxidc:~$ vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b 交換 空閒 緩衝 緩存  si  so    bi    bo  in  cs us sy id wa st
4  0      0 113256  61612 889820    0    0    74    29  53  143  1  1 98  0  0
0  0      0 113256  61612 889820    0    0    0    0  60  209  1  1 99  0  0
0  0      0 113256  61620 889820    0    0    0    8  52  157  0  1 99  0  0
1  0      0  99976  61620 890356    0    0    0    0  367 2337 31  7 63  0  0
1  0      0  99724  61620 890356    0    0    0    0  534 2508 35  9 56  0  0
2  0      0  99724  61620 890340    0    0    0    0  150  845 10  3 87  0  0
15  0      0  97196  61660 890368    0    0    0  134  78  464 16  2 82  0  0
0  0      0 109388  61680 890208    0    0    0  162  526 4604 37 12 51  0  0

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

3)、vmstat每二秒顯示一次系統內存的統計信息,總共5次

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b 交換 空閒 緩衝 緩存  si  so    bi    bo  in  cs us sy id wa st
5  0      0 111612  61776 889992    0    0    74    29  54  146  1  1 98  0  0
0  0      0 111360  617706 889992    0    0    0    0  58  201  1  1 99  0  0
0  0      0 111360  61784 889984    0    0    0    12  54  161  1  1 98  1  0
0  0      0 111360  61784 889992    0    0    0    0  55  163  1  1 98  0  0
0  0      0 111360  61784 889992    0    0    0    0  52  155  1  1 99  0  0

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

)、vmstat -d 顯示磁盤的信息

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
總用量 merged  扇區      ms 總用量 merged  扇區      ms    cur    sec
loop0    43      0    676    447      0      0      0      0      0      0
loop1    38      0    226    450      0      0      0      0      0      0
loop2    54      0    2124    998      0      0      0      0      0      0
loop3    42      0    674    695      0      0      0      0      0      0
loop4    37      0    664    117      0      0      0      0      0      0
loop5    44      0    678    549      0      0      0      0      0      0
loop6    40      0    230    127      0      0      0      0      0      0
loop7    62      0    2140    846      0      0      0      0      0      0
sda    23949  3166 1621538  221257  9490  10847  654856  221706      0    117
sr0      35      0    2132      64      0      0      0      0      0      0
loop8  1438      0    4802  27055      0      0      0      0      0      2
loop9    216      0    2476    2324      0      0      0      0      0      0
loop10    40      0    670    567      0      0      0      0      0      0
loop11    92      0    2162    2091      0      0      0      0      0      0
loop12    39      0    668    579      0      0      0      0      0      0
loop13    54      0    2152    647      0      0      0      0      0      0
loop14    47      0    2132    871      0      0      0      0      0      0
loop15    64      0    2126      51      0      0      0      0      0      0

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

merged:表示一次來自於合併的寫/讀請求,通常系統會把多個鏈接/鄰近的讀/寫請求合併到一塊兒來操做。

)、vmstat -a 顯示活躍內存與非活躍內存

使用-a選項顯示活躍和非活躍內存時,所顯示的內容除增長inact和active外,其餘顯示內容與例子1相同。

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b 交換 空閒 不活動 活動  si  so    bi    bo  in  cs us sy id wa st
4  0      0  99324 408308 1046888    0    0    72    29  55  153  1  1 98  0  0

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

6)、vmstat -f 查看系統已經被fork多少次

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ vmstat -f
5100 forks

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

7)、vmstat -p tmpfs  查看特定磁盤設備的

linuxidc@linuxidc:~/桌面/www.linuxidc.com$  vmstat -p /dev/sda1
sda1            reads      read sectors      writes  requested writes
23879          1617802      10140            668056

說明:
這些信息主要來自於/proc/diskstats。
reads:         來自於這個分區的讀的次數。
read sectors:      來自於這個分區的讀扇區的次數。
writes:         來自於這個分區的寫的次數。
requested writes:   來自於這個分區的寫請求次數。

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

8)、vmstat -m        顯示slabinfo

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo vmstat -m

Linux vmstat命令實際操做介紹Linux vmstat命令實際操做介紹

相關文章
相關標籤/搜索