您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux命令中vmstat怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫, 是實時系統監控工具;用來獲得有關進程、虛存、頁面交換空間及 CPU活動的信息。這些信息反映了系統的負載情況;這個命令Linux/Unix都支持,而且相比top,通過該命令可以看到整個機器的CPU,內存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內存使用率(使用場景不一樣)。
1、命令格式
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]
2、命令參數
-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版本信息。
3、使用示例
[root@seaing ~]# vmstat
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 0 15700892 181712 385304 0
0 4 11
30 26 0 0
100 0
0
[root@seaing ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu------
r
b swpd free
inact active si so
bi bo in
cs us sy id wa st
0
0 0 15700892 272456
344768 0 0
4 11 30
26 0 0 100
0 0
--每2秒采集一次服務器狀態,共采集6次
[root@seaing ~]# vmstat 2 6
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 0 15701016 181712
385308 0 0
4 11 32
26 0 0 100
0 0
0
0 0 15701016 181712
385308 0 0
0 0 1015 72
0 0 100 0 0
0
0 0 15701016 181712
385308 0 0
0 0 1016 71
0 0 100 0 0
0
0 0 15701016 181712
385308 0 0
0 14 1016 76
0 0 100 0 0
0
0 0 15701008 181712
385308 0 0
0 0 1014 73
0 0 100 0 0
0
0 0 15701008 181712
385308 0 0
0 0 1019 70
0 0 100 0 0
說明:
類別 | 項目 | 含義 | 說明 |
Procs(進程) | r | 等待執行的任務數 | 展示了正在執行和等待cpu資源的任務個數。當這個值超過了cpu個數,就會出現cpu瓶頸。 這個也和top的負載有關系,一般負載超過了3就比較高,超過了5就高,超過了10就不正常了,服務器的狀態很危險。top的負載類似每秒的運行隊列。如果運行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。 |
B | 等待IO的進程數量 | 也可以理解為阻塞的進程數 | |
Memory(內存) | swpd | 正在使用虛擬的內存大小,單位k | 虛擬內存已使用的大小,如果大于0,表示你的機器物理內存不足了,如果不是程序內存泄露的原因,那么你該升級內存了或者把耗內存的任務遷移到其他機器。 |
free | 空閑物理內存的大小 |
| |
buff | 已用的buff大小,對塊設備的讀寫進行緩沖 |
| |
cache | 已用的cache大小,文件系統的cache | cache直接用來記憶我們打開的文件,給文件做緩沖 (這里是Linux/Unix的聰明之處,把空閑的物理內存的一部分拿來做文件和目錄的緩存,是為了提高程序執行的性能,當程序使用內存時,buffer/cached會很快地被使用。) | |
Swap | si | 每秒從磁盤讀入虛擬內存的大小(單位:kb/s) | 如果這個值大于0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。 |
so | 每秒虛擬內存寫入磁盤的大小 | 如果這個值大于0,同上 | |
IO | bi | 每秒讀取的塊數(讀磁盤) | 這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte |
bo | 每秒寫入的塊數(寫磁盤) | 例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調整。 | |
system | in | 每秒CPU的中斷數,包括時鐘中斷 | 這兩個值越大,會看到由內核消耗的cpu時間會越多 上下文切換次數過多表示你的CPU大部分浪費在上下文切換,導致CPU干正經事的時間少了,CPU沒有充分利用,是不可取的。 |
cs | 每秒上下文切換數 | ||
CPU(以百分比表示) | us | 用戶進程執行消耗cpu時間(user time) | us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期超過50%的使用,那么我們就該考慮優化程序算法或其他措施了 |
sy | 系統進程消耗cpu時間(system time) | sys的值過高時,說明系統內核消耗的cpu資源多,這個不是良性的表現,我們應該檢查原因。 | |
id | 空閑時間(包括IO等待時間) | 一般來說,id + us + sy = 100,一般我認為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統CPU使用率。 | |
wa | 等待IO時間 | wa過高時,說明io等待比較嚴重,這可能是由于磁盤大量隨機訪問造成的,也有可能是磁盤的帶寬出現瓶頸。 |
--顯示磁盤相關統計信息
[root@seaing ~]# 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
ram1 0 0
0 0 0
0 0 0
0 0
ram2 0 0
0 0 0
0 0 0
0 0
ram3 0 0
0 0 0
0 0 0
0 0
ram4 0 0
0 0 0
0 0 0
0 0
ram5 0 0
0 0 0
0 0 0
0 0
ram6 0 0
0 0 0
0 0 0
0 0
ram7 0 0
0 0 0
0 0 0
0 0
ram8 0 0
0 0
0 0 0
0 0 0
ram9 0 0
0 0 0
0 0 0
0 0
ram10 0 0
0 0 0
0 0 0
0 0
ram11 0 0
0 0 0
0 0 0
0 0
ram12 0 0
0 0 0
0 0 0
0 0
ram13 0 0
0 0 0
0 0 0
0 0
ram14 0 0
0 0 0
0 0 0
0 0
ram15 0 0
0 0 0
0 0 0
0 0
sda 19755 13057
834627 82098 488536 207361
5567304 207387 0
161
sdb 941 2526
5713 361 842
70921 143526 2720
0 0
sdc 449 191
2711 75 0
0 0 0
0 0
sdd 237174 194 1896535 22173
1874 233855 1885832 328146 0
24
sde 868 1757
4251 277 760
71240 144000 3584
0 0
sdf 414 101
1711 34 0
0 0 0
0 0
sdg 22910 101
181679 4143 189
22314 180024 32323
0 4
sdh 877 1748
4251 84 623
71377 144000 65594
0 0
sdi 418 95
1695 47 0
0 0 0
0 0
sdj 22417 95
177687 2323 192
22797 183912 79565
0 3
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms
total merged sectors ms cur
sec
sdk 881 2145
4879 204 615
70984 143204 65317
0 0
sdl 414 101
1711 30 0
0 0 0
0 0
sdm 22413 101
177703 4086 186
21814 176000 75456
0 4
dm-0 30821 0
829946 324147 695909 0 5567272
681182 0 161
dm-1 112 0
896 905 0
0 0 0
0 0
sr0 0 0
0 0
0 0 0
0 0 0
md0 0 0
0 0 0
0 0 0
0 0
loop0 0 0
0 0 0
0 0 0
0 0
loop1 0 0
0 0 0
0 0 0
0 0
loop2 0 0
0 0 0
0 0 0
0 0
loop3 0 0
0 0 0
0 0 0
0 0
loop4 0 0
0 0 0
0 0 0
0 0
loop5 0 0
0 0 0
0 0 0
0 0
loop6 0 0
0 0 0
0 0 0
0 0
loop7 0 0
0 0 0
0 0 0
0 0
--查看分區的資源使用情況
[root@seaing ~]# vmstat -p /dev/sda1
sda1 reads read sectors
writes requested writes
124 2309 9 32
--
--以M為單位顯示所有情況
[root@seaing ~]# vmstat -S m
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 0 16077
186 394 0
0 4 11
31 26 0 0
100 0
0
--顯示vmstat版本的信息
[root@seaing ~]# vmstat –V
procps version 3.2.7
--顯示內存相關統計信息及多種系統活動數量
[root@seaing ~]# vmstat -s
16426356 total memory
725216 used memory
344788 active memory
272460 inactive memory
15701140 free memory
181712 buffer memory
385320 swap cache
18481144 total swap
0 used swap
18481144 free swap
4478 non-nice user cpu ticks
2105 nice user cpu ticks
11814 system cpu ticks
38902423 idle cpu ticks
14495 IO-wait cpu ticks
13407 IRQ cpu ticks
4756 softirq cpu ticks
0 stolen cpu ticks
1654066 pages paged in
4289217 pages paged out
0 pages swapped in
0 pages swapped out
99503472 interrupts
10117715 CPU context switches
1508999388 boot time
8617 forks
說明:
non-nice user cpu ticks 自系統啟動以來,CPU在用戶態下運行非nice進程的時間,單位為jiffies user
nice user cpu ticks 自系統啟動以來,CPU在用戶態下運行nice進程的時間,單位為jiffies nice
system cpu ticks 自系統啟動以來,CPU處于系統狀態的時間,單位為jiffies sys
idle cpu ticks 自系統啟動以來,CPU處于閑置狀態的時間,單位為jiffies idle
IO-wait cpu ticks 自系統啟動以來,CPU處理IO中斷的時間,單位為jiffies iowait
IRQ cpu ticks 自系統啟動以來,CPU處理硬中斷的時間,單位為jiffies irq
softirg cpu ticks 自系統啟動以來,CPU處理軟中斷的時間,單位為jiffies Softirq
interrupts 自系統啟動以來,發生的所有的中斷的次數目 Intr
CPU context switches 自系統啟動以來,發生的上下文交換的次數 Ctxt
boot time 自系統啟動以來到現在運行的時間,單位為秒。 btime
forks 自系統啟動以來所創建的任務的個數目。 Process
4、常見問題處理
如果r經常大于4,且id經常少于40,表示cpu的負荷很重。
如果bi,bo長期不等于0,表示內存不足。
關于“Linux命令中vmstat怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。