linux性能分析命令--vmstat

vmstat簡介

vmstat命令是最常見的Linux/Unix監(jiān)控工具,可以展現(xiàn)給定時間間隔的服務器的狀態(tài)值,包括服務器的CPU使用率秸侣,內(nèi)存使用宠互,虛擬內(nèi)存交換情況,IO讀寫情況。相比top予跌,可以看到整個機器的CPU,內(nèi)存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內(nèi)存使用率(使用場景不一樣)

命令簡單用法

一般vmstat工具的使用是通過兩個數(shù)字參數(shù)來完成的频轿,第一個參數(shù)是采樣的時間間隔數(shù)烁焙,單位是秒,第二個參數(shù)是采樣的次數(shù)

[root@vircent7 ~]# vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1068348   2108 372104    0    0   593    42  217  214  1  5 91  3  0
 0  0      0 1068324   2108 372104    0    0     0     0   92  136  0  0 100  0  0
 0  0      0 1068324   2108 372104    0    0     0     0  102  149  0  0 100  0  0

以上命令表示每隔2秒采樣一次膳殷,一共采樣3次,小面的每一行實際的數(shù)字就是每次采樣的數(shù)據(jù)九火。
如果想在一段時間內(nèi)連續(xù)監(jiān)控,則不需要加采樣次數(shù)的參數(shù)考榨,就會一直采樣鹦倚,直至手動結(jié)束河质。

vmstat各字段說明

1震叙、procs-進程相關(guān)

r:表示運行和等待CPU時間片的進程數(shù)(就是說多少個進程真的分配到CPU),這個值如果長期大于系統(tǒng)CPU個數(shù)乐尊,說明CPU不足划址,需要增加CPU

b:顯示多少進程在不可中斷的休眠限府,表示在等待資源的進程數(shù)痢缎,比如正在等待I/O或者內(nèi)存交換等。

2独旷、memory--內(nèi)存相關(guān)

swpd:表示切換到內(nèi)存交換區(qū)的內(nèi)存大小,即虛擬內(nèi)存已使用的大邪钙!(單位KB)麻养,如果大于0,表示你的機器物理內(nèi)存不足了回溺,如果不是程序內(nèi)存泄露的原因混萝,那么你該升級內(nèi)存了或者把耗內(nèi)存的任務遷移到其他機器。

free:表示當前空閑的物理內(nèi)存

buff:表示baffers cached內(nèi)存大小车要,也就是緩沖大小崭倘,一般對塊設備的讀寫才需要緩沖

Cache:表示page cached的內(nèi)存大小,也就是緩存大小司光,一般作為文件系統(tǒng)進行緩沖,頻繁訪問的文件都會被緩存榆俺,如果cache值非常大說明緩存文件比較多坞淮,如果此時io中的bi比較小,說明文件系統(tǒng)效率比較好(Linux/Unix的聰明之處回窘,把空閑的物理內(nèi)存的一部分拿來做文件和目錄的緩存,是為了提高 程序執(zhí)行的性能烁涌,當程序使用內(nèi)存時,buffer/cached會很快地被使用)

3撮执、swap--交換分區(qū)

si:每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個值大于0县忌,表示物理內(nèi)存不夠用或者內(nèi)存泄露了继效,要查找耗內(nèi)存進程解決掉。

so:每秒虛擬內(nèi)存寫入磁盤的大小瑞信。

注意:一般情況下si、so的值都為0凡简,如果si、so的值長期不為0帜乞,則說明系統(tǒng)內(nèi)存不足筐眷,需要增加系統(tǒng)內(nèi)存

4、io

bi:塊設備每秒接收的塊數(shù)量匀谣,即讀磁盤,這里的塊設備是指系統(tǒng)上所有的磁盤和其他塊設備烈炭,默認塊大小是1024byte宝恶,單位kb/s

bo:表示寫到塊設備數(shù)據(jù)的總量,即寫磁盤卑惜,單位kb/s

注意:如果bi+bo的值過大,且wa值較大更米,則表示系統(tǒng)磁盤IO瓶頸

5毫痕、system

in:每秒CPU的中斷次數(shù)迟几,包括時間中斷

cs:cpu每秒產(chǎn)生的上下文切換次數(shù)(cs自愿上下文切換\nvcs非自愿上下文切換)

例如我們調(diào)用系統(tǒng)函數(shù)栏笆,就要進行上下文切換,線程的切換蛉加,也要進程上下文切換,這個值要越小越好厂抽,太大了丁眼,要考慮調(diào)低線程或者進程的數(shù)目,例如在apache和nginx這種web服務器中,我們一般做性能測試時會進行幾千并發(fā)甚至幾萬并發(fā)的測試苞七,選擇web服務器的進程可以由進程或者線程的峰值一直下調(diào),壓測卢厂,直到cs到一個比較小的值硫眨,這個進程和線程數(shù)就是比較合適的值了。系統(tǒng)調(diào)用也是,每次調(diào)用系統(tǒng)函數(shù)族奢,我們的代碼就會進入內(nèi)核空間,導致上下文切換棚品,這個是很耗資源廊敌,也要盡量避免頻繁調(diào)用系統(tǒng)函數(shù)。上下文切換次數(shù)過多表示你的CPU大部分浪費在上下文切換骡澈,導致CPU干正經(jīng)事的時間少了,CPU沒有充分利用囤锉,是不可取的。

注意:

這兩個值越大官地,則由內(nèi)核消耗的CPU就越多

6、CPU

us:表示用戶進程消耗的CPU時間百分比赤炒,us值越高亏较,說明用戶進程消耗CPU時間越多,如果長期大于50%宴杀,則需要考慮優(yōu)化程序或者算法

sy:表示系統(tǒng)內(nèi)核進程消耗的CPU時間百分比,如果太高旷余,表示系統(tǒng)調(diào)用時間長扁达,例如是IO操作頻繁。

一般來說us+sy應該小于80%跪解,如果大于80%,說明可能存在CPU瓶頸

id:表示CPU處在空間狀態(tài)的時間百分比

wa:表示等待所占用的CPU時間百分比窘行,wa值越高图仓,說明I/O等待越嚴重,根據(jù)經(jīng)驗wa的參考值為20%救崔,如果超過20%,說明I/O等待嚴重纬黎,引起I/O等待的原因可能是磁盤大量隨機讀寫造成的劫窒,也可能是磁盤或者監(jiān)控器的貸款瓶頸(主要是塊操作)造成的

綜上所述,如果評估CPU,需要重點關(guān)注procs項的r列值和CPU項的us懂拾、sy铐达、wa列的值

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唐断,隨后出現(xiàn)的幾起案子杭抠,更是在濱河造成了極大的恐慌,老刑警劉巖丹诀,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翁垂,死亡現(xiàn)場離奇詭異,居然都是意外死亡沿猜,警方通過查閱死者的電腦和手機啼肩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來害碾,“玉大人颁虐,你說我怎么就攤上這事×砑ǎ” “怎么了花嘶?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長车海。 經(jīng)常有香客問我,道長侍芝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任棵红,我火速辦了婚禮咧栗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘交煞。我一直安慰自己斟或,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布御毅。 她就那樣靜靜地躺著平斩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绘面。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天晚凿,我揣著相機與錄音瘦馍,去河邊找鬼。 笑死燥筷,一個胖子當著我的面吹牛院崇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播底瓣,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拨扶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缩举,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤酒奶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后杠氢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體另伍,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年温艇,在試婚紗的時候發(fā)現(xiàn)自己被綠了堕汞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡琐鲁,死狀恐怖人灼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情投放,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布涝桅,位于F島的核電站烙样,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏误阻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一寻定、第九天 我趴在偏房一處隱蔽的房頂上張望精耐。 院中可真熱鬧,春花似錦向胡、人聲如沸惊完。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至件豌,卻和暖如春控嗜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疆栏。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遭殉,地道東北人博助。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像富岳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蚁飒,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容