intel_pstate
是Intel处理器的一个特殊的电源管理驱动,通常提供两种工作模式:performance和powersave。通过禁用
intel_pstate
并使用cpufrequtils
,您可以获得对CPU频率更精确的控制,这可能有助于优化特定工作负载。请注意,某些处理器可能会超过设定的最大频率,特别是当系统负载增加时。在某些情况下,您可能想要更精确地控制CPU频率,下面的教程将指导您如何实现。
一、安装
1. 安装cpufrequtils
首先,确保安装了cpufrequtils
包。在Debian或基于Debian的系统上,可以运行以下命令:
apt install cpufrequtils
2. 检查现有CPU频率驱动
运行以下命令来查看当前驱动情况:
cpufreq-info
如果为driver: acpi-cpufreq
,则不用进行第三步
3.禁用intel_pstate
如果结果中显示driver: intel_pstate
,要禁用intel_pstate
,您需要编辑GRUB配置文件。
nano /etc/default/grub
找到以“quiet”结尾的行,并添加intel_pstate=disable
参数。例如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"
保存文件并更新GRUB:
update-grub
重新启动计算机以使更改生效。
4. 查看当前可用的CPU模式
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
#conservative ondemand userspace powersave performance schedutil
电源模式 | 解释说明 |
---|---|
performance | 性能模式,将 CPU 频率固定工作在其支持的较高运行频率上,而不动态调节。 |
userspace | 系统将变频策略的决策权交给了用户态应用程序,较为灵活。 |
powersave | 省电模式,CPU 会固定工作在其支持的最低运行频率上。 |
ondemand | 按需快速动态调整 CPU 频率,没有负载的时候就运行在低频,有负载就高频运行。 |
conservative | 与 ondemand 不同,平滑地调整 CPU 频率,频率的升降是渐变式的,稍微缓和一点。 |
schedutil | 负载变化回调机制,后面新引入的机制,通过触发 schedutil sugov_update 进行调频动作。 |
5. 查看当前可用的CPU频率
要查看当前系统所支持的所有可用CPU频率,您可以运行以下命令:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
#2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000
6. 配置cpufrequtils
编辑/etc/default/cpufrequtils
文件:
nano /etc/default/cpufrequtils
添加或修改以下内容:
codeENABLE="true"
GOVERNOR="ondemand"
MAX_SPEED="2000000"
MIN_SPEED="1200000"
保存并退出。
#重启cpufrequtils服务
systemctl restart cpufrequtils
7. 确认更改
运行以下命令来确认是否生效:
#查看当前CPU状态
cpufreq-info
#查看当前所处模式
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
#查看实时CPU频率
watch -n 1 "cat /proc/cpuinfo | grep MHz"
8.手动更改CPU模式
#设置为性能模式
cpupower -c all frequency-set -g ondemand
二、可能问题
1.可用的CPU模式只有performance和powersave
Intel的P-State(Processor Performance State)技术在许多现代Linux系统中是默认的电源管理技术。Intel P-State主要有两种工作模式:performance和powersave
2.可用的CPU频率达不到最大睿频
许多现代处理器,特别是Intel和AMD的处理器,配备了Turbo Boost或类似的技术,可以在某些核心未使用时,暂时提高其他核心的频率。这种频率增加可能不会在scaling_available_frequencies
中反映,因为它是动态和临时的
3.重启后CPU模式变回默认
当您遇到每次重启都需要手动设置 CPU 电源管理模式,可以**使用 systemd 服务:**您可以创建一个 systemd 服务来在启动时自动设置所需的电源管理模式。
创建一个文件 /etc/systemd/system/cpupower.service
,内容如下:
[Unit]
Description=CPU power management adjustment
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g ondemand
[Install]
WantedBy=multi-user.target
启用并启动服务:
systemctl enable cpupower.service
systemctl start cpupower.service
评论区