新聞中心
vmstat命令是最常見(jiàn)的Linux/Unix監(jiān)控工具,可以展現(xiàn)給定時(shí)間間隔的服務(wù)器的狀態(tài)值,包括服務(wù)器的CPU使用率,內(nèi)存使用,虛擬內(nèi)存交換情況,IO讀寫(xiě)情況。這個(gè)命令是我查看Linux/Unix最喜愛(ài)的命令,一個(gè)是Linux/Unix都支持,二是相比top,我可以看到整個(gè)機(jī)器的CPU,內(nèi)存,IO的使用情況,而不是單單看到各個(gè)進(jìn)程的CPU使用率和內(nèi)存使用率(使用場(chǎng)景不一樣)。

于田網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,于田網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為于田近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的于田做網(wǎng)站的公司定做!
語(yǔ)法
vmstat 命令的執(zhí)行不需要特殊的權(quán)限,普通用戶就可以執(zhí)行,其語(yǔ)法形式如下:
vmstat [options] [delay [count]]
delay 表示數(shù)據(jù)更新間隔,單位是秒,如果沒(méi)有指定此值,表示系統(tǒng)啟動(dòng)以來(lái)的平均時(shí)間,而且此時(shí)只輸出一次結(jié)果
count 表示輸出次數(shù),如果沒(méi)有指定該值,但是指定了 delay 的值,則表示無(wú)限次
結(jié)果字段說(shuō)明
在命令行輸入 vmstat 并回車(chē), 會(huì)輸出一次結(jié)果
[root@cghost22 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 991324 932 537336 0 0 0 0 3 4 0 0 100 0 0
[root@cghost22 ~]#
結(jié)果中有許多的字段,下表列出了每個(gè)字段的詳細(xì)說(shuō)明
| 字段 | 說(shuō)明 |
|---|---|
| r | 可運(yùn)行進(jìn)程的數(shù)量,包括運(yùn)行態(tài)和就緒態(tài) |
| b | 處于不可中斷睡眠狀態(tài)的進(jìn)程數(shù)量 |
| swpd | 虛擬內(nèi)存使用量 |
| free | 空閑內(nèi)存 |
| buff | 用作buffer的內(nèi)存數(shù)量 |
| cache | 用作cache的內(nèi)存數(shù)量 |
| si | 從磁盤(pán)換入內(nèi)存的數(shù)量 |
| so | 從內(nèi)存換出到磁盤(pán)的數(shù)量 |
| bi | 從塊設(shè)備接收的塊,單位:塊/秒 |
| bo | 發(fā)送到塊設(shè)備的塊,單位:塊/秒 |
| in | 每秒中斷數(shù),包括時(shí)鐘中斷 |
| cs | 每秒上下文切換數(shù) |
| us | 用戶態(tài)執(zhí)行時(shí)間 |
| sy | 內(nèi)核態(tài)執(zhí)行時(shí)間 |
| id | CPU空閑時(shí)間 |
| wa | 等待IO的時(shí)間 |
| st | 從虛擬機(jī)中偷取的時(shí)間 |
顯示詳細(xì)信息
表中第二行 處于不可中斷睡眠狀態(tài)的進(jìn)程數(shù)量,這里的不可中斷是指 一個(gè)進(jìn)程在執(zhí)行某些系統(tǒng)調(diào)用時(shí)進(jìn)入的狀態(tài),在這種狀態(tài)下,進(jìn)程被阻塞,并且不能被中斷,直到完成系統(tǒng)調(diào)用
字段結(jié)果按照顏色分成了幾部分,從上到下依次是:進(jìn)程信息,內(nèi)存信息,IO信息,系統(tǒng)中斷和上下文,CPU時(shí)間
內(nèi)存信息中數(shù)值的單位默認(rèn)是 KB ( 1024 kbytes ), CPU時(shí)間字段并不表示具體的時(shí)間,而是占總CPU時(shí)間的一個(gè)百分比
常見(jiàn)選項(xiàng)
| 選項(xiàng) | 說(shuō)明 |
|---|---|
| -a | 顯示活躍和非活躍內(nèi)存 |
| -f | 從系統(tǒng)啟動(dòng)至今 fork 的數(shù)量,包括 fork、vfork 以及 clone 等系統(tǒng)調(diào)用 |
| -s | 顯示系統(tǒng)事件計(jì)數(shù)以及內(nèi)存統(tǒng)計(jì)信息 |
| -d | 報(bào)告磁盤(pán)統(tǒng)計(jì)信息 |
| -D | 統(tǒng)計(jì)活動(dòng)磁盤(pán)信息 |
| -p | 指定分區(qū)的詳細(xì)信息 |
| -t | 追加一列時(shí)間顯示 |
| -S | 按照指定字節(jié)單位顯示 |
| -w | 結(jié)果按照寬模式顯示 |
| -V | vmstat的版本 |
顯示詳細(xì)信息
常見(jiàn)用法
vmstat 命令主要用于識(shí)別系統(tǒng)的瓶頸,統(tǒng)計(jì)數(shù)據(jù)的時(shí)候,它不會(huì)包含自身進(jìn)程
-
按照指定時(shí)間間隔和次數(shù)輸出
[root@cghost22 ~]$ vmstat 2 10
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 12552 148356 234324 3382956 0 0 1 21 4 4 2 2 97 0 0
1 0 12552 148264 234324 3382980 0 0 0 0 14974 27478 3 2 96 0 0
1 0 12552 148232 234324 3382984 0 0 0 14 14384 27181 3 2 96 0 0
0 0 12552 148376 234332 3383052 0 0 0 204 14197 26812 4 2 94 0 0
0 0 12552 148512 234332 3383088 0 0 0 4 14398 27155 3 2 95 0 0
0 0 12552 147892 234332 3383128 0 0 0 210 15515 28802 3 2 95 0 0
1 0 12552 148388 234332 3383156 0 0 0 0 15147 28042 3 2 95 0 0
0 0 12552 148264 234332 3383168 0 0 0 4 14380 27395 3 1 96 0 0
0 0 12552 148264 234336 3383216 0 0 0 198 14430 27008 3 1 95 0 0
2 0 12552 148140 234336 3383252 0 0 0 6 14233 27161 3 2 95 0 0
2 表示每隔 2 秒輸出一次結(jié)果,10 表示總共輸出 10 次,10 次之后程序自動(dòng)結(jié)束
-
修改內(nèi)存顯示單位
輸出的結(jié)果中,內(nèi)存數(shù)據(jù)的單位默認(rèn)是 KB,可以通過(guò) -S 選項(xiàng)調(diào)整顯示的單位,有下面幾種單位可供選擇
注意:-S 選項(xiàng)對(duì) si、 so 字段無(wú)效
k # 1000 bytes
K # 1024 bytes
m # 1000 * 1000 bytes
M # 1024 * 1024 bytes
上圖中第一個(gè)結(jié)果中內(nèi)存數(shù)據(jù)顯示單位是 KB , 第二個(gè)結(jié)果中單位是 MB,將第一個(gè)結(jié)果對(duì)應(yīng)字段的數(shù)值除以 1024 就得到了第二個(gè)結(jié)果
-
活躍內(nèi)存和非活躍內(nèi)存
inact 是非活躍內(nèi)存,active 是活躍內(nèi)存
活躍內(nèi)存是進(jìn)程在使用的內(nèi)存,非活躍內(nèi)存是未運(yùn)行進(jìn)程的內(nèi)存
-
系統(tǒng)啟動(dòng)以來(lái) fork 的數(shù)量
這里的 fork 數(shù)量包括 fork、vfork 以及 clone 等系統(tǒng)調(diào)用
[root@cghost22 ~]# vmstat -f
12714 forks
[root@cghost22 ~]# vmstat -f
12715 forks
[root@cghost22 ~]# vmstat -f
12716 forks
我們每次在控制臺(tái)執(zhí)行一次命令,系統(tǒng)就會(huì) fork 一個(gè)新的進(jìn)程來(lái)執(zhí)行命令,比如像上面的例子,每執(zhí)行一次 vmstat -f 命令,系統(tǒng)就會(huì) fork 一個(gè)新進(jìn)程
這個(gè)選項(xiàng)還可以用于統(tǒng)計(jì)某個(gè)操作消耗多少次 fork 調(diào)用,只需要在操作前后各執(zhí)行一次 vmstat -f 命令,比較兩次結(jié)果的差值即可
-
每行追加一列時(shí)間
追加一列時(shí)間顯示,有助于比較一段時(shí)間內(nèi)的結(jié)果
-
按照寬模式顯示
vmstat 結(jié)果中的某些字段的數(shù)字有時(shí)會(huì)比較長(zhǎng),而且跟字段名的位置有偏差, 不太適合人類(lèi)的觀看習(xí)慣,-w 選項(xiàng)可以按照寬模式顯示數(shù)據(jù),使結(jié)果看起來(lái)更直觀,下圖是分別未使用寬模式和使用了寬模式的一個(gè)對(duì)比
-
統(tǒng)計(jì)磁盤(pán)信息
磁盤(pán)信息主要分三個(gè)方面:讀、寫(xiě)、IO ,讀和寫(xiě)以毫秒為單位,IO以秒為單位
讀
total: 成功讀取的總數(shù)
merged: 分組讀取(產(chǎn)生一個(gè) IO)
sectors: 成功讀取的扇區(qū)數(shù)
ms: 讀取花費(fèi)的毫秒
寫(xiě)
total: 成功寫(xiě)入的總數(shù)
merged: 分組寫(xiě)入(產(chǎn)生一個(gè) IO)
sectors: 成功寫(xiě)入的扇區(qū)數(shù)
ms: 寫(xiě)花費(fèi)的毫秒
IO
cur: 正在進(jìn)行的IO
s: IO花費(fèi)的秒數(shù)
-
指定磁盤(pán)分區(qū)信息
上圖中,輸出結(jié)果顯示 sda3 分區(qū)設(shè)備的信息,它們包括:讀計(jì)數(shù)、讀取的扇區(qū)數(shù),寫(xiě)計(jì)數(shù),分區(qū)寫(xiě)請(qǐng)求總數(shù)。
分享文章:Linuxvmstat命令使用實(shí)例
本文地址:http://fisionsoft.com.cn/article/dpeppsp.html


咨詢
建站咨詢
