侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计创建 46 个标签
  • 累计收到 96 条评论

目 录CONTENT

文章目录

Linux系统(PVE)下禁用Intel P-State驱动并使用cpufrequtils控制CPU频率

草莓牛奶
2023-08-22 / 0 评论 / 0 点赞 / 409 阅读 / 1,073 字 / 正在检测是否收录...
温馨提示:
「博客文章out of date 会及时更新,无特殊说明仍然有效,欢迎指正内容中的错误」

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

三、参考连接

功耗节能 - 国光的 PVE 环境搭建教程

N5105调整CPU模式正确生效并降温

0

评论区