vmstat是一個十分有用的Linux系統(tǒng)監(jiān)控工具,使用vmstat命令可以得到關(guān)于進(jìn)程,、內(nèi)存,、內(nèi)存分頁、堵塞IO,、traps及CPU活動的信息,。
一、前言 很顯然從名字中我們就可以知道vmstat是一個查看虛擬內(nèi)存(Virtual Memory)使用狀況的工具,,但是怎樣通過vmstat來發(fā)現(xiàn)系統(tǒng)中的瓶頸呢,?在回答這個問題前,還是讓我們回顧一下Linux中關(guān)于虛擬內(nèi)存相關(guān)內(nèi)容,。 二,、虛擬內(nèi)存運(yùn)行原理 三,、使用vmstat 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] -a:顯示活躍和非活躍內(nèi)存 -f:顯示從系統(tǒng)啟動至今的fork數(shù)量 。引申閱讀: http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html -m:顯示slabinfo -n:只在開始時(shí)顯示一次各字段名稱,。 -s:顯示內(nèi)存相關(guān)統(tǒng)計(jì)信息及多種系統(tǒng)活動數(shù)量,。 delay:刷新時(shí)間間隔。如果不指定,,只顯示一條結(jié)果,。 count:刷新次數(shù)。如果不指定刷新次數(shù),,但指定了刷新時(shí)間間隔,,這時(shí)刷新次數(shù)為無窮。 -d:顯示磁盤相關(guān)統(tǒng)計(jì)信息,。 -p:顯示指定磁盤分區(qū)統(tǒng)計(jì)信息 -S:使用指定單位顯示,。參數(shù)有 k 、K ,、m ,、M ,分別代表1000,、1024,、1000000、1048576字節(jié)(byte),。默認(rèn)單位為K(1024 bytes) -V:顯示vmstat版本信息,。 2.使用說明 例子1:每2秒輸出一條結(jié)果 字段說明: Procs(進(jìn)程): r: 運(yùn)行隊(duì)列中進(jìn)程數(shù)量 b: 等待IO的進(jìn)程數(shù)量 Memory(內(nèi)存): swpd: 使用虛擬內(nèi)存大小(k表示)。如果swpd的值不為0,,或者比較大,,比如超過了100m,只要si,、so的值長期為0,,系統(tǒng)性能還是正常 free: 可用內(nèi)存大小(k表示) buff: 用作緩沖的內(nèi)存大小,作為buffer cache的內(nèi)存數(shù)量,一般對塊設(shè)備的讀寫才需要緩沖。 cache: 用作緩存的內(nèi)存大小,作為page cache的內(nèi)存數(shù)量,,一般作為文件系統(tǒng)的cache,,如果cache較大,說明用到cache的文件較多,,如果此時(shí)IO中bi比較小,,說明文件系統(tǒng)效率比較好。 Swap: si: 每秒從交換區(qū)寫到內(nèi)存的大小 so: 每秒寫入交換區(qū)的內(nèi)存大小 IO:(現(xiàn)在的Linux版本塊的大小為1024bytes) bi: 每秒讀取的塊數(shù)(讀磁盤)(每秒kb) bo: 每秒寫入的塊數(shù)(寫磁盤)(每秒kb) 系統(tǒng): in: 每秒中斷數(shù),,包括時(shí)鐘中斷,。 cs: 每秒上下文切換數(shù),。 CPU(以百分比表示): us: 用戶進(jìn)程執(zhí)行時(shí)間(user time),us的值比較高時(shí),說明用戶進(jìn)程消耗的cpu時(shí)間多,,但是如果長期大于50%,,需要考慮優(yōu)化用戶的程序。 sy: 系統(tǒng)進(jìn)程執(zhí)行時(shí)間(system time).這里us + sy的參考值為80%,,如果us+sy 大于 80%說明可能存在CPU不足,。進(jìn)程就會在運(yùn)行隊(duì)列中花費(fèi)等待時(shí)間,響應(yīng)時(shí)間和吞吐量就會下降 id: 空閑時(shí)間(包括IO等待時(shí)間) wa: 等待IO時(shí)間,wa>40表明磁盤io沒有也許存在不合理的平衡,,或者對磁盤操作比較頻繁,可以結(jié)合iostat輸出來分析,。 例子2:顯示活躍和非活躍內(nèi)存 使用-a選項(xiàng)顯示活躍和非活躍內(nèi)存時(shí),所顯示的內(nèi)容除增加inact和active外,,其他顯示內(nèi)容與例子1相同,。 字段說明: Memory(內(nèi)存): inact: 非活躍內(nèi)存大小(當(dāng)使用-a選項(xiàng)時(shí)顯示) active: 活躍的內(nèi)存大?。ó?dāng)使用-a選項(xiàng)時(shí)顯示) 在Linux下有很多系統(tǒng)性能分析工具,,比較常見的有top、free,、ps,、time、timex,、uptime等,。后續(xù)將介紹幾個較為重要的性能分析工具vmstat、iostat和sar及其使用,。 本文部分來源:http://hi.baidu.com/imlidapeng/blog/item/51872329329ab8335243c1c9 (如果r經(jīng)常大于4 ,,且id經(jīng)常少于40,表示cpu的負(fù)荷很重,。) |
|