這篇文章討論了一種組合方法,可以通過6核或9核Intel CPU延長高端筆記本電腦的電池壽命,同時減少熱量產生。該方法根據電源(交流電或電池)的不同,以不同的方式設置CPU的性能,並使用TLP作為自動化的前端。

15" built-in display @ 144Hz: Embedded 4 Cells Polymer battery pack – 55Wh (57.1Wh max)
powerstat用於評估不同輪廓的電池放電速率。
| 方法 | 放電率 | CPU溫度。 | 載入 | 方法描述 |
|---|---|---|---|---|
| 1 | 11.64W | 38-40C | 輕載: gnome-system-monitor , powerstat , powertop ,背景:Google Chrome(1個TAB), psensor | 英特爾GPU +此組合方法 +背光顯示 @ 15% |
| 2 | 16.41W | 41-43C | 輕載: gnome-system-monitor , powerstat , powertop ,背景:Google Chrome(1個TAB), psensor | 英特爾GPU + turboboost禁用 + perf:19%-50% +原始配置 +背光顯示 @ 15% |
| 3 | 23.56W | 48-50C | 輕載: gnome-system-monitor , powerstat , powertop ,背景:Google Chrome(1個TAB), psensor | NVIDIA GPU(GTX 1070 MAX-Q) + TurbOboost Disable + Perf:19%-50% +原始配置 +背光顯示 @ 15% |
| 4 | 9.11W | 36C | 沒有負載(空閒) | 英特爾GPU +此組合方法 +背光顯示 @ 15% |
注意:我使用System76-Power禁用NVIDIA GPU。
儘管powertop目前報告了每個過程的當前補給率,但使用它來測量總功耗並不准確。從統計學上測量功耗的工具(7-10分鐘)將產生更可靠的結果。在這一目標中,我們使用powerstat 。
從評估中,方法1可以幫助ORYX4筆記本電腦在輕載下持續約5小時(我經常得到5h -5.2h)。雖然方法4可以將筆記本電腦電池延長至6小時(用於不同輪廓的方便測試用例,而不是實際的用例)。


powertop --auto-tune以避免與TLP衝突)。 為了延長電池壽命,我使用以下組合方法:
tlp自動化該過程。powertop調音。我使用動態方法可以通過設置AC和電池中允許的最大和最低性能來縮小CPU頻率的尺度,而不是手動開發CPU。
要求:活動Intel P_State驅動程序(Power Condort = PowerSave(默認cat /sys/devices/system/cpu/intel_pstate/status ))
電池模式:
echo 20 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo 20 | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo解釋:設置允許的最高性能等於最高性能的19%。 Intel P_State驅動程序將相應地縮小CPU頻率。這可以在運行時執行。
注意:您應該嘗試並嘗試其他max_perf_pct value ,並查看最適合您的需求。建議:如果您在電池模式下使用,請首先嘗試以20-30%的值在20-30%之間。如果您使用AC,請嘗試在70-90%之間的值。
交流模式:
echo 80 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo 20 | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct
echo 0 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo解釋:設置允許的最高性能等於最高性能的80%。 Intel P_State驅動程序將相應地縮小CPU頻率。這可以在運行時執行。
使用這些設置,電池上的最高CPU溫度為40C(輕載荷 +無渦輪增壓器),AC插入AC的75-80C(高負載 + Turboboost)。有關頻率和溫度之間的關係,請參閱此帖子。
為了自動化該過程,我使用TLP。您可以在這裡找到我的TLP配置
在應用之前,請通過配置閱讀。另外,我鼓勵您在這裡仔細閱讀TLP文檔
要在電池上禁用藍牙,請在TLP配置中更改以下行:
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
當使用(12-14W)時,以太網會消耗巨大的能量,而當不使用/閒置時,以太網會消耗巨大的能量(0.5-1W)。要關閉以太網,請參閱以太網接口名稱的ifconfig ,然後殺死它
sudo ifconfig enp4s0 down注意:以太網可能會閒置(即沒有電纜連接),但是powertop會像充分利用中報告。
請參閱BASH腳本(在電池上重新啟動後執行):此處
我發現我從未在電池模式下使用所有CPU內核。由於我的目標是防止筆記本電腦的電池排水,因此我從未在沒有AC插入的情況下運行任何計算昂貴的程序。因此,在電池模式下禁用幾個CPU核心對我有幫助。它沒有引入任何感知的性能下降,因為我只運行了簡單的程序,例如VI文本編輯器,4或5個Chrome Tabs,libreoffice等。
在i7-8750h中禁用4/6個物理核心(不用擔心,如果您明確使它們重新啟動或重新啟動後,它們將成為網上)
echo 0 | sudo tee /sys/devices/system/cpu/cpu11/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu10/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu9/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu8/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu7/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu6/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu5/online
echo 0 | sudo tee /sys/devices/system/cpu/cpu4/online如果要重新打開這些CPU內核,則用echo 1替換echo 0 。
請參閱此處的BASH腳本(在電池上重新啟動後執行)。
powertop --calibrate 。您只需要一次運行一次。powertop --auto-tune以使Powertop調整正在吃電池的不良過程。powertop --auto-tune以避免與TLP衝突。powertop通常會超過電池上的所有外圍設備。這可以使我們的USB設備的響應速度降低。為此,我們需要手動告訴powertop不要調整它。
例如,我有一個Logitech無線USB鼠標,它在powertop --auto-tune啟動。無線鼠標通信中有兩個主要部分,鼠標中的發射器和一個接收器,可以將其連接到PC上的USB端口。告訴powertop不要調整我的鼠標功耗,請執行以下操作:
sudo powertopTunables ,查找與Logitech USB接收器或您感興趣的設備相關的條目。由於powertop對其進行了調整,因此當前的調整狀態被標記為Good (不是真的)。 
powertop停止干預我們的鼠標衝浪業務。為此,我們將選擇突出顯示的條目(使用鍵盤上的上/下按鈕),然後按Enter將其狀態從Good更改為Bad 。請注意, Bad並未表明突出顯示的設備發生故障或消失(在功耗方面)。這只是powertop告訴我們該設備未調整的一種方式。 
希望它有幫助。