0

0

Linux cpupower 的 frequency-set 与 governor 动态调整脚本

舞姬之光

舞姬之光

发布时间:2026-02-22 15:48:11

|

160人浏览过

|

来源于php中文网

原创

cpupower frequency-set 设不生效的根本原因是当前 governor 不支持手动设频,仅 userspace 和 performance 支持,但 performance 不响应 -f;需先切 userspace 再设频,且须确认驱动与权限。

linux cpupower 的 frequency-set 与 governor 动态调整脚本

cpupower frequency-set 命令为什么设不生效?

根本原因通常是当前 governor 不支持手动频率设定。比如 ondemandconservative 这类动态 governor 会忽略你用 frequency-set -f 强设的值,只按负载自动调节;只有 userspaceperformance 才真正响应 -f 参数。

实操建议:

Gaga
Gaga

曹越团队开发的AI视频生成工具

下载
  • 先用 cpupower frequency-info 确认当前 governor 和可用频率范围
  • 若想固定频率,必须先切到 userspacecpupower frequency-set -g userspace
  • 再设目标频率:cpupower frequency-set -f 2.4GHz(注意单位支持 GHzMHzkHz,但部分内核版本不识别 GHz,建议统一用 MHz
  • performance governor 虽默认跑最高频,但它不接受 -f,强行设会报错 Setting cpu frequency failed

如何写一个安全切换 governor + 频率的 shell 脚本?

关键不是“能跑”,而是避免把系统卡死——比如在笔记本上误设 performance 导致风扇狂转,或在虚拟机里调 userspace 却没权限写 sysfs。

实操建议:

  • 脚本开头加权限检查:if ! cpupower frequency-info &>/dev/null; then echo "cpupower not available"; exit 1; fi
  • 对每个 CPU 核单独处理(尤其多 socket 服务器),用 for cpu in /sys/devices/system/cpu/cpu[0-9]*; do
  • 切换前保存原 governor:orig_gov=$(cat $cpu/cpufreq/scaling_governor 2>/dev/null),退出时可还原
  • 设频率前确认该 governor 支持手动设置:仅当 userspacescaling_available_governors 里且当前是它,才执行 frequency-set -f
  • 避免用 sudo 全局提权,改用 sudo cpupower ... 按需调用

为什么脚本在 systemd service 里运行失败?

常见现象是日志里出现 Permission deniedNo such file or directory,本质是 systemd 默认限制了对 /sys/devices/system/cpu/ 的访问,且 cpupower 初始化依赖 udev 规则未就绪。

实操建议:

  • service 文件里加 WantedBy=multi-user.targetAfter=sysinit.target,确保 CPU 频率子系统已加载
  • 必须显式声明权限:CapabilityBoundingSet=CAP_SYS_ADMINRestrictDevices=false
  • 不要依赖环境变量(如 $PATH),用绝对路径调用:/usr/bin/cpupower frequency-set
  • 测试时先用 systemctl --no-block start your-service,再立刻 journalctl -u your-service -n 20 查错

governor 切换后频率没变,是 bug 吗?

不是 bug,是预期行为。比如从 powersave 切到 performance,内核不会立刻跳到 max freq,而是等下一个 tick 或负载上升时才触发升频;同理,切回 ondemand 后,当前频率可能维持几秒不变。

实操建议:

  • watch -n 1 'grep \"cur\" /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq' 实时观察实际频率
  • 验证 governor 是否生效,看 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 内容是否更新,别只信 cpupower frequency-info 缓存输出
  • 某些 Intel CPU(如带 Speed Shift 的 Skylake+)默认用 intel_pstate 驱动,此时 cpupower 对 governor 的控制力有限,需检查 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 输出是不是 intel_pstate
最常被忽略的一点:不同 CPU 架构(x86 vs ARM)、不同内核驱动(acpi-cpufreq vs intel_pstate)下,cpupower 的行为差异极大,同一脚本在笔记本和云服务器上可能一个生效一个静默失败。动手前先看 scaling_driver,比背参数重要得多。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

246

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

826

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

826

2023.08.22

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1520

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

715

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

300

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

791

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

584

2023.07.06

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1030

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.5万人学习

Git 教程
Git 教程

共21课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号