每次我們系統變慢時,我們通常做的第一件事就是top命令或者uptime命令,看一下系統的負載情況,比如下面:
我在命令列中輸入uptime
22:15:51 表示當前系統時間
up 13 min 系統執行總時間
2 users 當前正在登陸 使用者數
load **erage :0.12,0.06,0.05 表示系統1分鐘,5分鐘,15分鐘系統的平均負載情況
平均負載是什麼?
平均負載:指單位時間內,系統處於可執行狀態和不可中斷狀態的平均程序數,可以理解為平均活躍程序數。它和cpu 的使用率並沒有直接的關係
可執行狀態是指正在使用cpu或者等待cpu的程序,也就是ps命令檢視程序狀態為r(running或runnable)的程序
不可中斷狀態指正處於核心態關鍵流程中的程序,並且這些流程是不可打斷的, 如最常見的是等待硬體裝置的 i/o 響應
也就是ps命令檢視程序狀態為d(uninterruptible sleep,也稱為 disk)的程序
比如,當乙個程序向磁碟讀寫資料時,為了保證資料的一致性,在得到磁碟回覆前,它是不能被其他程序或者中斷打斷的,
這個時候的程序就處於不可中斷狀態。如果此時的程序被打斷了,就容易出現磁碟資料與程序資料不一致的問題。
平均負載多少時合理?
執行以下命令檢視cpu 的邏輯個數
grep 'model name' /proc/cpuinfo | wc -l
如:
平均負載是平均程序數,由此可見,平均負載等於cpu 的個數時為最理想狀態,說明cpu充分被利用了,
當平均負載大於cpu個數時說明系統已經出現了過載。
我們要通過平均負載的三個數值來觀察系統負載情況趨勢,這裡我再舉個例子,假設我們在乙個單 cpu 系統上看到平均負載為
1.73,0.60,7.98,那麼說明在過去 1 分鐘內,系統有 73% 的超載,而在 15 分鐘內,有 698% 的超載,從整體趨勢來看,系統
的負載在降低。
個人認為平均負載超過cpu數量70%時,就應該分析排查負載過高的問題,一旦負載過高,就可能導致系統響應變慢,影響服務正常
執行。平均負載和cpu使用率的關係
平均負載案例分析
首先安裝 stress 和 sysstat 兩個工具包
stress 是linux 系統壓力測試工具,這裡我們用作異常程序模擬平均負載公升高的場景。
sysstat 包含了常用的linux效能工具,用來監控和分析系統的效能,如mpstat何pidstat
mpstat 是乙個常用的多核cpu效能分析工具,用來實時檢視每個cpu的效能指標,已經所有cpu 的平均指標
pidstat 是乙個常用的程序效能分析工具,用來實時檢視程序的cpu、記憶體、io以及上下文切換等效能指標
Linux效能優化 CPU優化(二)
cpu 使用率,就是除了空閒時間外的其他時間佔總 cpu 時間的百分比,用公式來表示就是 為了計算 cpu 使用率,效能工具一般都會取間隔一段時間 比如 3 秒 的兩次值,作差後,再計算出這段時間內的平均 cpu 使用率,即 工具 工具 perflinux 2.6.31 以後內建的效能分析工具。它以...
unity效能優化 CPU
影響效能的因素 對於乙個遊戲來說,有兩種主要的計算資源 cpu和gpu,它們會互相合作,來讓我們的遊戲可以在預期的幀率和解析度下工作。cpu負責其中的幀率,gpu主要負責解析度相關的一些東西。本篇會介紹cpu的優化技巧 作用 計算。主要是在蒙皮骨骼計算,布料模擬,頂點動畫,粒子模擬等,還有在各種頂點...
cpu效能優化手段
1 cpu優化 快取 為了提高程式的執行的效能,現代cpu在很多方面對程式進行優化 例如 cpu的快取記憶體,盡可能的避免處理器訪問主記憶體的時間開銷,處理器大多會利用快取來提高效能 cpu快取分為 快取 l1 一級快取是cpu第一層快取記憶體 分為資料快取和指令快取 一般伺服器的cpu在32 4....