執行 top 或 uptime 時看到的 load average 三個數值 (1/5/15 分鐘),代表系統平均工作負載。許多管理員誤以為它等同 CPU 使用率,兩者實有本質差異。本文以電話亭比喻深度剖析,並給出理想閾值與降低負載實務建議。
| 指標 | 定義 | 關鍵差異 |
|---|---|---|
| CPU 使用率 | 單位時間內 CPU 執行非閒置指令的百分比 | 反映「忙碌程度」,單一密集運算程式即可跑滿 100% |
| CPU 負載 | 單位時間內「正在執行 + 等待 CPU」的進程平均數量 (執行佇列長度) | 反映「擁擠程度」,包含可執行與不可中斷睡眠 (I/O 等待) 進程 |
結論:高使用率不代表高負載;高負載意味著頻繁上下文切換,系統回應變慢。
核心數 × 0.5~0.7。經驗法則:「核心數 = 可接受的最大負載基準」,但追求穩定應預留 30%~50% 餘裕。
kernel.sched_latency_ns、kernel.sched_min_granularity_ns 等調度參數 (需深入測試)。長期 60%~80% 屬正常負載;持續 >90% 易觸發效能瓶頸。結合負載指標綜合判斷:
低使用率 + 高負載 → 大量 I/O 等待 (磁碟/網路瓶頸)
高使用率 + 低負載 → 少數計算密集型進程獨佔 CPU