系統(tǒng)平均負載高(load average)
問題現(xiàn)象
- 兩個案例都是:系統(tǒng)平均負載高,但cpu,內存,磁盤io都正常
什么是系統(tǒng)平均負載
-
平均負載是指單位時間內,系統(tǒng)處于可運行狀態(tài)和不可中斷狀態(tài)的平均進程數(shù),也就是平均活躍進程數(shù),它和CPU使用率并沒有直接關系。
-
可運行狀態(tài)的進程,是指正在使用CPU或者正在等待CPU的進程,也就是我們常用ps命令看到的,處于R狀態(tài)(Running 或 Runnable)的進程
-
不可中斷狀態(tài)的進程則是正處于內核態(tài)關鍵流程中的進程,并且這些流程是不可打斷的,比如最常見的是等待硬件設備的I/O響應,也就是我們在ps命令中看到的D狀態(tài)(Uninterruptible Sleep,也稱為Disk Sleep)的進程
負載高的常見情況
-
我們常見的負載高一般有這幾種情況引起,一個是cpu密集型,使用大量cpu會導致平均負載升高;
-
另外一個就是io密集型等待I/O會導致平均負載升高,但是CPU使用率 不一定很高;
-
還有就是大量等待CPU的進程調度也會導致平均負載升高,此時的CPU使用率也會比較高
問題分析
1、top:
2、vmstat:
可以看到r,cs和us較高
procs:
? r 表示運行和等待CPU時間片的進程數(shù),這個值如果長期大于系統(tǒng)CPU個數(shù),說明CPU不足。
? b 表示等待資源的進程數(shù),比如正在等待I/O、或者內存交換等。
memory:算是正常
swap:
? si 每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠或者內存泄露了,要查找耗內存進程解決掉。
? so 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上。文章來源:http://www.zghlxwxcb.cn/news/detail-404711.html
? 一般情況下,si、so的值都為0,如果文章來源地址http://www.zghlxwxcb.cn/news/detail-404711.html
到了這里,關于如何解決linux系統(tǒng)平均負載高(load average)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!