Linux
CPU 使用率永遠不會 100%
我在 6 個 Handbrake 實例中編碼影片,但 CPU 使用率從未超過 85%。為什麼會這樣/我該如何診斷這個問題?
所有非互動式計算作業最終都會找到瓶頸,其中某些資源處於 100% 使用率並阻止其他資源被充分利用。
這裡涉及的典型資源是 CPU、匯流排頻寬、記憶體頻寬和磁碟頻寬。如果您的系統更複雜,可能會有更多(例如,gpu 使用率、gpu 頻寬)。此外,匯流排頻寬和記憶體頻寬可能相同。
此外,磁碟 I/O 和 cpu 使用可能是相互依賴的,因此在從磁碟載入數據之前無法開始 cpu 工作,並且在 cpu 完成計算新數據之前不會開始磁碟寫入。在這種情況下,嘗試預測未來的讀取(可能在應用程序的幫助下)和預緩衝數據,或者在數據完全寫入之前開始新的計算可能有助於提高性能。或者,執行多個不相互依賴的實例可能允許一個實例使用 cpu,而另一個實例正在執行磁碟 I/O。
如果您僅獲得 85% 的 cpu 使用率,則可能是磁碟頻寬已被充分利用,或者沒有足夠的磁碟緩衝並且 cpu 工作不足。在 linux 中,您可以使用諸如
atop
檢查磁碟頻寬之類的工具。如果還沒有達到 100%,您可以嘗試添加另一個實例,並希望在單獨的實例中並行使用 CPU 和磁碟來彌補差距。但可能不會,這可能不會讓事情變得更快。