詞彙表/CPU、GPU和能源

平均負載

又稱:系統負載

簡短回答

平均負載是CPU上正在執行或等待執行的平均工作量,通常以三個數字表示過去1、5和15分鐘的情況。它是Unix的一項指標,在Mac上可以用uptime指令查看。

平均負載為4.0,表示平均大約有四個執行緒正在執行或準備執行。這算不算多,取決於你的Mac有幾個CPU核心。在八核心的Mac上,4.0的負載還綽綽有餘。

「活動監視器」不顯示平均負載。它的「CPU」標籤頁顯示的是「系統」、「使用者」和「閒置」百分比,以及「CPU負載」圖表。平均負載主要在「終端機」和腳本中有用。

如何在Mac上查看平均負載

打開「終端機」並執行uptime。最後三個數字就是1、5和15分鐘的平均負載。你也可以執行sysctl -n vm.loadavg。

要和核心數量比較,請執行sysctl -n hw.logicalcpu。

如何看懂這三個數字

如果1分鐘的數字遠高於15分鐘的數字,代表負載正在上升;如果比較低,代表負載正在下降。負載長時間遠高於核心數量,代表有工作在排隊等CPU,Mac會感覺變慢。

平均負載與活動監視器中的「% CPU」

兩者衡量的是不同的東西。「% CPU」和「閒置」數值顯示的是核心有多少時間在忙。而平均負載,依top手冊的說法,是執行佇列中的平均工作數:正在執行或準備執行的執行緒。

所以兩者可能對不起來。活動監視器可能顯示「閒置」還有很多,而平均負載卻高於你的核心數量。大量短暫的工作可能在佇列中堆積,卻不會讓每個核心在整段期間都忙碌。

要比較兩者,請把平均負載除以sysctl -n hw.logicalcpu提供的核心數量。結果低於1,表示平均而言,每個需要核心的執行緒都能取得一個。

如何即時觀察平均負載

uptime只會輸出一次這三個數字。要觀察它們的變化,請在「終端機」中執行top。接近頂端、以Load Avg開頭的那一行顯示1分鐘、5分鐘和15分鐘的值,下面的CPU usage行則顯示user、sys和idle百分比,讓你同時看到兩者。按q離開。

要取得一份可以貼到筆記或工序指令中的快照,請執行top -l 1 -n 0 | grep "Load Avg"。

平均負載高時,什麼時候需要在意

負載高是一種症狀,而不是故障。請搭配Mac使用起來的感覺一起判斷。

  • 如果負載一直遠高於核心數量,而且App反應遲緩,就需要在意,因為有工作在排隊等待CPU。
  • 在編譯、輸出或大量拷貝期間,就沒那麼重要。這些工作本來就應該讓每個核心都忙碌。
  • 在Apple silicon上,核心數量包含節能核心。macOS會把大量背景工作放在節能核心上執行,所以即使負載接近核心數量,效能核心仍可能空出來給你正在使用的App。
  • 負載無緣無故升高並一直居高不下,背後通常有一個忙碌的程序。在擔心這個數字之前,請先把它找出來。

如何找出是什麼讓負載升高

  1. 在活動監視器中按一下「CPU」標籤頁,依「% CPU」排序,找出工作量最大的程序。
  2. 在「終端機」中執行top -o th -stats pid,command,cpu,th。#TH欄顯示執行緒總數,斜線後面是此刻正在執行的執行緒數量。
  3. 有多個執行緒正在執行的程序,對負載的影響最大。結束不需要的程式,幾分鐘後再查看負載,因為1分鐘的值最先反應。

大家常問的問題

Mac上正常的平均負載是多少?

這取決於核心數量。負載等於或低於核心數量,通常代表CPU應付得來。長時間遠高於核心數量,就代表工作在排隊。

「活動監視器」會顯示平均負載嗎?

不會。「活動監視器」顯示的是「系統」、「使用者」和「閒置」百分比,以及「CPU負載」圖表。要查看平均負載,請在「終端機」中使用uptime。

為什麼CPU使用率不高,平均負載卻很高?

平均負載計算的是等待執行的工作,而不只是正在執行的工作。大量的短暫作業,或排隊等候的作業,都可能讓它升高,而CPU百分比看起來並不高。

八核心Mac的平均負載多少才算好?

負載等於或低於8,代表CPU應付得來。短暫超過8是正常的。如果負載長時間遠高於8,Mac又很遲緩,代表工作正在排隊。

平均負載是百分比嗎?

不是。它是正在執行或等待執行的執行緒平均數量。負載2.0表示大約兩個執行緒,而不是任何東西的2%。

平均負載包含GPU嗎?

不包含。它計算的是等待CPU的執行緒。GPU正在做的工作不會算進去,所以要了解圖形負載,請在活動監視器中查看「% GPU」。

相關詞條

想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。