vmstat詳解

vmstat介紹
.Procs
 -r: 運行的和等待(CPU時間片)運行的進程數,這個值也可以判斷是否需要增加CPU(長期大於1)
-b: 處於不可中斷狀態的進程數,常見的情況是由I/O引起的。

MEMORY
-swap:切換到交換內存上的內存(默認以KB爲單位)
  如果SWAP的值不爲0,或者還比較大,比如超過100M了,但是SI,SO的值長期爲0,這種情況我們可以不用擔心,不會影響系統性能。
-free:p空閒的物理內存
- buff:作爲buffer cache的內存,對塊設備的讀寫進行緩衝
-cache:作爲page cache的內存,文件系統的cache
 如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會非常小。
SWAP
 -si:交換內存使用,由磁盤調入內存
 -so:交換內存使用,由內存調入磁盤
內存夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。
我發現有些朋友看到空閒內存(FREE)很少的或接近於0時,就認爲內存不夠用了,實際上不能光看這一點,還要結合si,so,如果free很少,但是si,so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。
IO
-bi:從塊設備讀入的數據總量(讀磁盤)(KB/S)
-bo:寫入到塊設備的數據總量(寫磁盤)(KB/S)
隨機磁盤讀寫的時候,這2個值越大(如超出1M),能看到CPU在IO等待的值也會越大
SYSTEM
 --in:每秒產生的中斷次數
 --cs:每秒產生的上下文切換次數
上面2個值越大,會看到由內核消耗的CPU時間會越大
CPU
-us:用戶進程消耗的CPU時間百分
 us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程序算法或者進行加速(比如PHP/PERL)
-sy:內核進程消耗的CPU時間百分比(sy的值高時,說明系統內核消耗的CPU資源多,這並不是良性表現,我們應該檢查原因)
-wa:IO等待消耗的CPU時間百分比
 wa的值高時,說明IO等待比較嚴重,這可能由於磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。
-id:CPU處於空閒狀態時間百分比
情景分析:
vmstat的輸出哪些信息值得關注?
--proc r:運行的進程比較多,系統很繁忙
--IO bo:磁盤寫的數據量稍大,如果大文件的寫,10以內基本不用擔心,如果是小文件2M以前基本正常,
--CPU us:持續大於50,服務高峯期可以接受
--CPU wa:稍微有些同
--CPU id:持續小於50,服務高峯期可以接受

TOP命令:
這個命令可以查看系統中運行的進程的狀況,CPU使用狀況,系統負載,內存使用等。它是檢查系統進程運行狀況最方便的工具了。它默認顯示部分活動的進程,並按照進程使用CPU的多少排序,
top參數:
-D 不可中斷休眠,通常是IO操作處的狀態
-R 正在執行的或者處在等街待的進程隊列中
-S 休眠中
-T 暫停颳起的
-Z 殭屍進程,進程執行完成,但由於其父進程沒有銷燬該進程,而被INIT進程接管進行銷燬。
-W 沒有使用物理內存,所佔用的物理內存被切換到交換內存
-N 低優先級
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章