2.2. PowerTOP

Red Hat Enterprise Linux 6 開始使用的無計時 kernel(tickless kernel,請參閱 節 3.6, “無計時 kernel”)能讓 CPU 更常進入閒置狀態,降低電力消耗,增進電源管理。新的 PowerTOP 工具會辨識核心與使用者空間應用程式的特定元件,看看這些元件是否常常喚醒 CPU。之前 PowerTOP 是用於發展過程,以進行 節 3.13, “使用者空間的最佳化” 所述的稽核工作;現在許多應用程式在這版本中都已經微調過,不當喚醒 CPU 的機會大約只剩原來的十分之一。
Red Hat Enterprise Linux 6 提供了版本 2.x 的 PowerTOP。這個版本已將 1.x 的程式碼基底完全重新編寫。它包含了更清楚、基於分頁的使用者介面,並且廣泛使用了 kernel 的 "perf" 架構來提供更加精確的資料。系統裝置的電源行為會被追蹤且明顯顯示出,如此一來問題便能被快速找出。此外,2.x 的程式碼基底包含了一個較為試用性的電源估算引擎,它能顯示各項裝置與程序所耗用的電源。請參閱〈圖形 2.1, “PowerTOP 的操作畫面”〉。
若要安裝 PowerTOP,請以 root 身份執行下列指令:
yum install powertop
若要執行 PowerTOP,請以 root 身份執行下列指令:
powertop
PowerTOP 能提供系統的總電源使用量估算,並顯示各項程序、裝置、kernel 工作、計時器以及插斷處理程式的個別電源使用量。手提電腦在執行這項任務時應使用電池電源。若要校準電源估算引擎,請以 root 身份執行以下指令:
powertop --calibrate
微調需要花上一段時間。這項程序會執行數項測試,並且將會進行螢幕亮度的循環測試,並將裝置開啟和關閉。請勿在進行校準時操作機器。當校準程序完成時,PowerTOP 將會正常啟動。請讓它執行約一小時以蒐集資料。當蒐集了足夠資料後,電源估算表便會顯示在第一個欄位中。
若您要在一部手提電腦上執行這項指令,它還是應該使用電池電源,如此一來才能提供所有的可用資料。
它在執行時,PowerTOP 會由系統蒐集數據。您可在「總覽」分頁中檢視一列最常傳送喚醒訊號給 CPU 的元件,或是電源使用量最高的元件(請參閱 圖形 2.1, “PowerTOP 的操作畫面”)。鄰接的欄位顯示了電源估算、資源如何被使用、每秒的喚醒動作、元件的類(例如程序、裝置或是計時器),以及元件的詳述。每秒鐘的喚醒動作代表服務或 kernel 裝置與驅動程式的效率有多高。喚醒次數愈少,代表所耗用的電源量愈低。元件會以其能夠優化電源使用量的程度來排序。
若要微調驅動程式元件,您基本上需要對 kernel 進行變更,而這項任務不包含在本指南的範圍內。然而,會傳送喚醒訊號的使用者空間程序較容易管理。首先,請判斷這項服務或應用程式是否需要在這部系統上執行。若不需要的話,請將它停用。若要永久停用一項老舊的 System V 服務,請執行:
chkconfig off servicename off
欲取得更多有關於這項程序的相關資訊,請以 root 身份執行以下指令:
ps -awux | grep processname
strace -p processid
若追蹤紀錄顯示它正在重複執行,這代表它可能是個忙碌的迴圈。若要修正這種錯誤,一般需要修改元件中的程式碼。
如〈圖形 2.1, “PowerTOP 的操作畫面”〉中所見,總電源耗用量和電池剩餘電量(若存在)將會顯示。在這些資訊下面則是一項簡短的概要,它包含了每秒的總喚醒次數、每秒的 GPU 操作量,以及虛擬檔案系統每秒的操作量。在畫面剩下的部分中則包含了一列程序、插斷、裝置及其它資源,並根據其使用量來排序。若經過正確校準,列在第一個欄位中的每個項目的電源使用量估算也會顯示。
使用 TabShift+Tab 鍵來循環瀏覽分頁。在「閒置數據」分頁中,所有處理器與核心的 C-state 使用將會被顯示。在「頻率數據」分頁中,所有處理器與核心的 P-state 使用,包含 Turbo 模式(若可用的話)皆會被顯示。CPU 留駐的時間愈久,C 或 P-state 就愈高並且愈佳(C4C3 高)。這能顯示 CPU 使用量的優化程度如何。當系統閒置時,最高的 C 或 P-State 應要擁有超過 90% 的駐留時間。
裝置數據」分頁提供了類似「總覽」分頁的資訊,不過此分頁僅提供了裝置相關的資訊。
可微調」分頁包含了有關於優化系統以降低電源使用量的建議。請使用 updown 箭頭鍵來瀏覽建議,以及 enter 鍵來將建議切換為開啟或關閉。
PowerTOP 的操作畫面

圖形 2.1. PowerTOP 的操作畫面

您亦可藉由執行 PowerTOP 並搭配 --html 選項來產生 HTML 報告。請將 htmlfile.html 參數替換為您希望使用的輸出檔案之名稱:
powertop --html=htmlfile.html
就預設值,PowerTOP 會以 20 秒的間隔來進行測量,您可藉由 --time 選項來更改此行為:
powertop --html=htmlfile.html --time=seconds
欲取得更多有關於 PowerTOP 專案的資訊,請參閱〈project's home page〉。
PowerTOP 也能與 turbostat 工具程式搭配使用。turbostat 工具程式乃一項回報工具,它能顯示 Intel 64 處理器上的處理器拓墣、速率、閒置電源狀態數據、溫度以及電源使用量上的相關資訊。欲取得更多有關於 turbostat 工具程式上的相關資訊,請參考 turbostat(8) man page,或參閱《效能微調指南》。