You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7下udev修改CPU scaling_governor规则手动生效开机失效如何解决

排查思路

  • 查看udev执行日志确认规则在开机时是否正常执行:执行journalctl -u systemd-udevd | grep scaling_governor,如果返回找不到属性路径的报错,说明规则触发时cpufreq节点还未初始化完成。
  • 检查是否有系统服务在开机后覆盖配置:CentOS7默认的tuned、cpupower服务都会修改CPU调频策略,执行systemctl status tuned cpupower查看服务运行状态。
  • 检查是否有更高优先级的udev规则覆盖配置:udev规则按文件名数字前缀从小到大执行,数字越大优先级越高,执行grep -r scaling_governor /usr/lib/udev/rules.d/ /etc/udev/rules.d/查看是否有其他规则修改该属性。

解决方案

方案1:优化udev规则

把规则文件名前缀改大,比如重命名为99-scaling-governor.rules,确保它是最后执行的CPU相关规则,同时调整规则内容,改为延迟写入避免节点未就绪的问题:

SUBSYSTEM=="cpu", KERNEL=="cpu[0-9]|cpu[0-9][0-9]", ACTION=="add", RUN+="/bin/sh -c 'sleep 0.1; echo performance > /sys$devpath/cpufreq/scaling_governor'"

修改后执行udevadm control --reload-rules重载规则,再重启测试即可。

方案2:禁用覆盖配置的系统服务

如果排查发现tuned或cpupower服务处于运行状态,直接关闭并禁用服务即可避免配置被覆盖:

systemctl stop tuned cpupower
systemctl disable tuned cpupower

如果需要保留tuned服务,也可以直接修改tuned的配置文件,将CPU调频策略设置为performance,无需额外修改udev规则,更符合CentOS7的系统管理逻辑。

方案3:使用sysfsutils持久化配置

如果不想折腾udev规则,可以用sysfsutils工具直接管理sysfs属性,配置更简单稳定:

  1. 安装工具包:yum install -y sysfsutils
  2. 编辑/etc/sysfs.conf,添加以下内容:
devices/system/cpu/cpu*/cpufreq/scaling_governor = performance
  1. 启用服务:systemctl enable --now sysfsutils
    重启后配置即可生效。

内容的提问来源于stack exchange,提问作者Phoenix Chao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:45:11