1. 程式人生 > >Linux效能優化-平均負載

Linux效能優化-平均負載

uptime的平均負載意思是
單位時間內,系統處於 可執行狀態 和 不可中斷狀態的平均程序數,也就是平均活躍程序數
當一個程序向磁碟讀寫資料時,為保證一致性,在得到磁盤迴復前,他是不能被其他程序或中斷打斷的,如果被中斷就容易出現數據與程序資料不一致的問題
不可中斷實際上是系統對程序和硬體裝置的一種保護機制

當平均負載為2時
如果只有2個CPU就表示全部被佔用
在4個CPU上,意味著有50%的空閒
在1個CPU上意味著有一半的程序競爭不到CPU

通過top或者 /proc/cpuinfo 檢視CPU個數決定負載大小
uptime的1分鐘,5分鐘,15分鐘負載值
如果是1.73,0.6,7.98
表示最近一分鐘負載是173%,5分鐘是60%,15分鐘內是798%
從整體看負載在降低

當平均負載高於CPU數量70%的時候,就應該分析排查負載高的問題了
一旦負載過高,就可能導致程序響應變慢,進而影響服務的正常執行


CPU使用率是單位時間內CPU繁忙的情況,跟平均負載並不一定完全對應
1.CPU密集型程序,大量CPU導致平均負載升高,這兩者是一致的
2.I/O密集型,等待I/O也會導致平均負載升高,但CPU使用率不一定很高
3.大量等待CPU的程序排程也會導致平均負載升高,此時的CPU使用率也會比較高
 

平均負載提供了一個快速檢視系統整體效能的手段,反應了整體的負載情況,但只看平均負載本身並能直接發現問題,需要注意
1.平均負載高可能是CPU密集型程序導致的
2.平均負載高並不一定代表CPU使用率搞,還可能是I/O更繁忙了
3.當發現負載較高的時候,可以使用mpstat,pidstat等工具輔助分析負載情況