这篇文章讨论了一种组合方法,可以通过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告诉我们该设备未调整的一种方式。 
希望它有帮助。