在Load average 高的狀況下如何鑑別系統瓶頸。是CPU不足,仍是io不夠快形成? 或是內存不足? ios
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 496056 889316 4065748 0 0 9 41 55 51 0 0 99 1 0優化
procs 進程
r b內存
0 0資源
r :運行和等待cpu時間片的進程數,若是長期大於1,說明cpu不足,須要增長cpu。 io
b :在等待資源的進程數,好比正在等待I/O、或者內存交換等。 效率
-----------memory----------程序
swpd free buff cache
0 496056 889316 4065748
swpd :切換到內存交換區的內存數量(k表示)。
若是swpd的值不爲0,或者比較大,好比超過了100m,只要si、so的值長期爲0,系統性能仍是正常
free :當前的空閒頁面列表中內存數量(k表示)
buff :做爲buffer cache的內存數量,通常對塊設備的讀寫才須要緩衝。
cache :做爲page cache的內存數量,通常做爲文件系統的cache,
若是cache較大,說明用到cache的文件較多,若是此時IO中bi比較小,說明文件系統效率比較好。
---swap--
si so
0 0
si :由內存進入內存交換區數量。
so :由內存交換區進入內存數量。
-----io----
bi bo
9 41
bi :從塊設備讀入數據的總量(讀磁盤)(每秒kb)。
bo :塊設備寫入數據的總量(寫磁盤)(每秒kb)
這裏咱們設置的bi+bo參考值爲1000,若是超過1000,並且wa值較大應該考慮均衡磁盤負載,能夠結合iostat輸出來分析。
--system--
in cs
55 51
in :在某一時間間隔中觀測到的每秒設備中斷數。
cs :每秒產生的上下文切換次數,如當 cs 比磁盤 I/O 和網絡信息包速率高得多,都應進行進一步調查。
-----cpu------
cs us sy id wa st
51 0 0 99 1 0
us :用戶方式下所花費 CPU 時間的百分比。us的值比較高時,說明用戶進程消耗的cpu時間多,可是若是長期大於50%,須要考慮優化用戶的程序。
sy :內核進程所花費的cpu時間的百分比。這裏us + sy的參考值爲80%,若是us+sy 大於 80%說明可能存在CPU不足。
wa :IO等待所佔用的CPU時間的百分比。這裏wa的參考值爲30%,若是wa超過30%,說明IO等待嚴重,
這多是磁盤大量隨機訪問形成的,也可能磁盤或者磁盤訪問控制器的帶寬瓶頸形成的(主要是塊操做)。
id :cpu處在空閒狀態的時間百分比