news 2026/2/7 17:49:18

Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下

最低频率最省电最省钱

三部曲:

1

sudo apt install -y cpufrequtils linux-tools-common linux-tools-generic

2

sudo cpupower frequency-set -g powersave

3

cpufreq-info


性能对比

https://blog.csdn.net/ZhangRelay/article/details/157299108

最高性能:800vs3200,这么看还挺线性的……

最佳节能:


ros2@mobile:~$ cpufreq-info cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. analyzing CPU 0: driver: intel_cpufreq CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 20.0 us. hardware limits: 800 MHz - 3.20 GHz available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil current policy: frequency should be within 800 MHz and 3.20 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 797 MHz. analyzing CPU 1: driver: intel_cpufreq CPUs which run at the same hardware frequency: 1 CPUs which need to have their frequency coordinated by software: 1 maximum transition latency: 20.0 us. hardware limits: 800 MHz - 3.20 GHz available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil current policy: frequency should be within 800 MHz and 3.20 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 797 MHz. analyzing CPU 2: driver: intel_cpufreq CPUs which run at the same hardware frequency: 2 CPUs which need to have their frequency coordinated by software: 2 maximum transition latency: 20.0 us. hardware limits: 800 MHz - 3.20 GHz available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil current policy: frequency should be within 800 MHz and 3.20 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 797 MHz. analyzing CPU 3: driver: intel_cpufreq CPUs which run at the same hardware frequency: 3 CPUs which need to have their frequency coordinated by software: 3 maximum transition latency: 20.0 us. hardware limits: 800 MHz - 3.20 GHz available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil current policy: frequency should be within 800 MHz and 3.20 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 797 MHz.

你想了解sudo cpupower frequency-set -g powersave-g(governor,调度器)参数支持的所有 CPU 频率调节模式列表,我会详细说明每个模式的作用、适用场景,以及结合你的 ThinkPad + Ubuntu 环境的使用建议。

一、完整的 CPU 频率调度器模式列表

在 Ubuntu 系统中,cpupower frequency-set -g支持的模式由内核和 CPU 驱动(你的是intel_cpufreq)决定,常见的完整列表如下(不同 CPU / 内核版本可能略有差异):

模式名称中文释义核心工作逻辑能耗 / 性能特点适用场景
powersave节能模式强制 CPU 始终运行在最低硬件频率(优先能耗,牺牲性能)能耗最低,性能最差仅文字处理、待机等轻负载
performance性能模式强制 CPU 始终运行在最高硬件频率(优先性能,牺牲能耗)能耗最高,性能最好编译、仿真、重载计算等
ondemand按需模式低负载时降频,高负载时自动升频(动态调节,Ubuntu 默认)能耗 / 性能平衡日常办公、普通开发
conservative保守模式类似ondemand,但升频 / 降频更平缓(避免频率频繁波动)能耗略低于 ondemand,性能稍差对功耗敏感的移动场景(如电池)
userspace用户自定义模式允许用户通过文件手动设置固定频率(需手动指定频率值)能耗 / 性能由手动设置决定精准调试、特殊场景定制
schedutil调度器驱动模式由内核调度器根据任务负载动态调节(比 ondemand 更智能)能耗 / 性能平衡更优较新内核(4.14+)的默认模式

二、查看你的系统实际支持的模式

不同 CPU / 驱动支持的模式可能不同,你可以通过以下命令查看当前系统可用的所有调度器模式(适配你的 ThinkPad):

bash

运行

# 方式1:查看核心0的支持列表(所有核心一致) cat /sys/devices/system/cpu/cpu0/cpufreq/available_governors # 方式2:通过cpufreq-info查看(更直观) cpufreq-info | grep "available cpufreq governors"

从你之前的输出可知,你的系统支持:conservative, ondemand, userspace, powersave, performance, schedutil

三、模式切换示例(针对你的场景)

bash

运行

# 切换到性能模式(最高频率) sudo cpupower frequency-set -g performance # 切换到Ubuntu默认的按需模式 sudo cpupower frequency-set -g ondemand # 切换到保守节能模式(平缓调节) sudo cpupower frequency-set -g conservative # 切换到智能调度模式(新内核推荐) sudo cpupower frequency-set -g schedutil # 切换到用户自定义模式(需手动指定频率) sudo cpupower frequency-set -g userspace # 手动设置频率(示例:800MHz,需先切到userspace) sudo cpupower frequency-set -f 800MHz

四、关键注意事项

  1. 模式生效范围cpupower frequency-set -g xxx默认对所有 CPU 核心生效,无需逐个核心设置;
  2. 临时生效:所有cpupower命令的修改都是临时的,重启后会恢复默认(如需持久化,需用之前的脚本或 TLP 配置);
  3. 优先级:若你之前用脚本锁定了最大频率(800MHz),即使切换到performance模式,CPU 也只能运行在 800MHz(最大频率限制优先于调度器)。

总结

  1. 核心调度器模式共 6 种:powersave/performance/ondemand/conservative/userspace/schedutil
  2. cat /sys/devices/system/cpu/cpu0/cpufreq/available_governors可查看系统实际支持的模式;
  3. 你的场景中,powersave是最低能耗模式,结合最大频率锁定可实现 CPU 完全低功耗运行。

在 Ubuntu 系统中,要让 ThinkPad 锁定 CPU 频率到最低能耗模式,核心思路是限制 CPU 最大频率切换到节能调度策略,同时可以结合 ThinkPad 专属工具优化电源管理。以下是分步骤的实操方案,覆盖命令行和图形界面两种方式:

一、前置准备:安装必要工具

首先安装 CPU 频率管理和监控工具:

bash

运行

sudo apt update sudo apt install -y cpufrequtils linux-tools-common linux-tools-generic
  • cpufrequtils:用于查询和设置 CPU 频率
  • linux-tools:提供cpupower工具,支持更底层的 CPU 电源控制

二、命令行方式(推荐,精准可控)

1. 查看当前 CPU 频率状态

先确认 CPU 的核心数、可用频率档位和当前策略:

bash

运行

# 查看所有 CPU 核心的当前频率 cpufreq-info # 查看 CPU 支持的最小/最大频率(以核心0为例) cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq # 最小频率(单位:kHz) cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq # 最大频率

2. 切换到节能调度策略

Ubuntu 默认的 CPU 调度策略是ondemand(按需调节),切换到powersave策略会强制 CPU 优先运行在最低频率:

bash

运行

# 对所有 CPU 核心设置为 powersave 策略 sudo cpupower frequency-set -g powersave

3. 锁定 CPU 到最低频率

通过cpupower强制设置 CPU 最大频率等于最小频率,实现完全锁定:

bash

运行

# 获取最小频率(以核心0为例,单位 kHz) MIN_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq) # 对所有核心设置最大频率 = 最小频率 sudo cpupower frequency-set -u $MIN_FREQ

4. 验证锁定效果

执行以下命令,确认所有核心频率均稳定在最小值:

bash

运行

watch -n 1 cpufreq-info | grep "current CPU frequency"

输出中current CPU frequency应全部等于cpuinfo_min_freq的值。

5. 开机自动生效(持久化配置)

上述设置重启后会失效,需配置开机自启脚本:

  1. 创建配置文件

bash

运行

sudo nano /etc/init.d/cpu-low-power
  1. 粘贴以下内容(替换MIN_FREQ为实际值,如800000代表 0.8GHz)

bash

运行

#!/bin/bash ### BEGIN INIT INFO # Provides: cpu-low-power # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Lock CPU to lowest frequency ### END INIT INFO MIN_FREQ=800000 # 替换为你的 CPU 最小频率(kHz) cpupower frequency-set -g powersave cpupower frequency-set -u $MIN_FREQ
  1. 赋予权限并设置开机自启

bash

运行

sudo chmod +x /etc/init.d/cpu-low-power sudo update-rc.d cpu-low-power defaults

三、图形界面方式(适合新手)

如果安装了 GNOME 桌面环境,可以通过以下工具可视化配置:

  1. 安装cpufreq图形管理工具

bash

运行

sudo apt install -y gnome-tweaks cpufreq
  1. 打开GNOME 调整工具(Gnome Tweaks),进入电源选项卡
  2. CPU 调速器设置为powersave
  3. 若需锁定最低频率,仍需结合命令行执行cpupower frequency-set -u $MIN_FREQ(图形工具无法直接设置最大频率上限)

四、ThinkPad 专属优化:利用 TLP 工具

ThinkPad 可以搭配TLP(高级电源管理工具),进一步优化 CPU 能耗,同时兼容上述频率锁定设置:

  1. 安装 TLP

bash

运行

sudo apt install -y tlp tlp-rdw sudo systemctl enable tlp sudo systemctl start tlp
  1. 编辑 TLP 配置文件,强化节能

bash

运行

sudo nano /etc/tlp.conf

修改以下参数:

conf

# CPU 调度策略强制为 powersave CPU_SCALING_GOVERNOR_ON_BAT=powersave CPU_SCALING_GOVERNOR_ON_AC=powersave # 限制 CPU 最大频率(替换为你的最小频率,单位 MHz) CPU_MAX_PERF_ON_BAT=800 CPU_MAX_PERF_ON_AC=800
  1. 重启 TLP 生效

bash

运行

sudo tlp restart

五、注意事项

  1. 性能影响:锁定最低频率后,CPU 性能会大幅下降,仅适合文字处理、浏览网页等轻负载场景,不建议运行 ROS 编译、仿真等重任务。
  2. 多核心适配:部分 CPU 支持异构核心(如 Intel 大小核),需确保对所有核心(cpu0-cpuN)都执行频率设置。
  3. 恢复默认设置:若需解除锁定,执行以下命令

bash

运行

sudo cpupower frequency-set -g ondemand sudo cpupower frequency-set -u $(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)

是否需要我帮你整理一份CPU 频率锁定与恢复的快捷命令脚本,方便你在 ROS 开发中快速切换模式?


灵活切换

你需要的 CPU 频率锁定 / 恢复快捷脚本我已经为你整理好了,这个脚本专门适配 ThinkPad + Ubuntu 环境,支持一键锁定最低能耗模式、一键恢复默认模式,还能实时查看当前 CPU 频率状态,非常适合日常快速切换使用。

一、完整脚本代码

首先创建脚本文件(建议命名为cpu_power_control.sh):

bash

运行

#!/bin/bash # ThinkPad Ubuntu CPU 功耗控制脚本 # 功能:一键锁定最低频率/恢复默认/查看状态 # 检查是否为 root 用户(修改 CPU 频率需要管理员权限) if [ "$(id -u)" -ne 0 ]; then echo "❌ 请使用 sudo 运行此脚本!" echo "示例:sudo ./cpu_power_control.sh lock" exit 1 fi # 获取 CPU 最小/最大频率(自动适配,无需手动修改) MIN_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq) MAX_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) # 转换为 GHz 便于阅读(kHz → GHz) MIN_FREQ_GHZ=$(echo "scale=2; $MIN_FREQ / 1000000" | bc) MAX_FREQ_GHZ=$(echo "scale=2; $MAX_FREQ / 1000000" | bc) # 定义核心功能函数 # 1. 锁定到最低频率 lock_low_power() { echo "🔒 正在锁定 CPU 到最低频率($MIN_FREQ_GHZ GHz)..." # 切换到节能调度策略 cpupower frequency-set -g powersave > /dev/null 2>&1 # 强制设置最大频率 = 最小频率 cpupower frequency-set -u $MIN_FREQ > /dev/null 2>&1 echo "✅ 锁定完成!当前 CPU 调度策略:powersave,最大频率限制:$MIN_FREQ_GHZ GHz" } # 2. 恢复默认模式 restore_default() { echo "🔄 正在恢复 CPU 到默认模式(最大频率:$MAX_FREQ_GHZ GHz)..." # 切换回按需调度策略 cpupower frequency-set -g ondemand > /dev/null 2>&1 # 恢复最大频率为默认值 cpupower frequency-set -u $MAX_FREQ > /dev/null 2>&1 echo "✅ 恢复完成!当前 CPU 调度策略:ondemand,最大频率:$MAX_FREQ_GHZ GHz" } # 3. 查看当前状态 check_status() { echo "📊 当前 CPU 状态:" echo "-------------------------" echo "CPU 最小频率:$MIN_FREQ_GHZ GHz" echo "CPU 最大频率:$MAX_FREQ_GHZ GHz" # 获取当前调度策略 CURRENT_GOVERNOR=$(cpufreq-info | grep "governor" | head -1 | awk -F':' '{print $2}' | sed 's/ //g') echo "当前调度策略:$CURRENT_GOVERNOR" # 获取当前实际频率(核心0) CURRENT_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq) CURRENT_FREQ_GHZ=$(echo "scale=2; $CURRENT_FREQ / 1000000" | bc) echo "CPU0 当前运行频率:$CURRENT_FREQ_GHZ GHz" echo "-------------------------" } # 命令行参数判断 case "$1" in lock) lock_low_power ;; restore) restore_default ;; status) check_status ;; *) echo "📚 ThinkPad CPU 功耗控制脚本使用说明:" echo "sudo ./cpu_power_control.sh lock - 锁定 CPU 到最低能耗模式" echo "sudo ./cpu_power_control.sh restore - 恢复 CPU 到默认模式" echo "sudo ./cpu_power_control.sh status - 查看当前 CPU 频率/策略状态" exit 1 ;; esac

二、使用步骤

1. 赋予脚本执行权限

bash

运行

chmod +x cpu_power_control.sh

2. 脚本使用命令(必须加 sudo)

bash

运行

# 一键锁定最低能耗模式 sudo ./cpu_power_control.sh lock # 一键恢复默认模式 sudo ./cpu_power_control.sh restore # 查看当前 CPU 状态(频率/调度策略) sudo ./cpu_power_control.sh status

3. 示例输出

  • 锁定模式输出:

    plaintext

    🔒 正在锁定 CPU 到最低频率(0.80 GHz)... ✅ 锁定完成!当前 CPU 调度策略:powersave,最大频率限制:0.80 GHz
  • 查看状态输出:

    plaintext

    📊 当前 CPU 状态: ------------------------- CPU 最小频率:0.80 GHz CPU 最大频率:4.70 GHz 当前调度策略:powersave CPU0 当前运行频率:0.80 GHz -------------------------

三、进阶:添加全局快捷命令(可选)

如果想在任意目录直接使用,可将脚本移动到系统命令目录:

bash

运行

sudo mv cpu_power_control.sh /usr/local/bin/cpu-power

之后即可在任意目录执行:

bash

运行

sudo cpu-power lock # 锁定 sudo cpu-power restore # 恢复 sudo cpu-power status # 查看状态

总结

  1. 脚本核心功能:lock锁定最低频率(powersave 策略 + 限制最大频率 = 最小频率)、restore恢复默认(ondemand 策略 + 解锁最大频率)、status查看状态;
  2. 使用前提:必须以sudo运行(修改 CPU 频率需要管理员权限);
  3. 适配性:脚本自动读取 CPU 最小 / 最大频率,无需手动修改参数,适配所有 ThinkPad 机型。

从你提供的cpufreq-info输出可以看到,你的 ThinkPad CPU 已经处于节能状态但尚未完全锁定—— 当前调度策略是powersave,实际运行频率约 797MHz(接近最低的 800MHz),但系统仍允许频率在 800MHz ~ 3.20GHz 范围内波动。

接下来我会告诉你如何用之前的脚本完成完全锁定,并验证最终效果:

一、执行脚本完成彻底锁定

运行我们之前创建的脚本,一键锁定到最低频率(800MHz):

bash

运行

# 如果你已经将脚本设为全局命令 sudo cpu-power lock # 若未设置全局命令,直接运行脚本文件 sudo ./cpu_power_control.sh lock

执行后会输出类似:

plaintext

🔒 正在锁定 CPU 到最低频率(0.80 GHz)... ✅ 锁定完成!当前 CPU 调度策略:powersave,最大频率限制:0.80 GHz

二、验证锁定效果

再次执行cpufreq-info或脚本的status命令,检查是否完全锁定:

bash

运行

# 方式1:用脚本查看状态 sudo cpu-power status # 方式2:直接查看核心信息 cpufreq-info | grep "current policy" -A1

锁定成功的标志:

输出中会显示current policy: frequency should be within 800 MHz and 800 MHz(最大 / 最小频率均为 800MHz),示例:

plaintext

current policy: frequency should be within 800 MHz and 800 MHz. The governor "powersave" may decide which speed to use within this range.

此时 CPU 频率会被强制固定在 800MHz 左右,不会再向上波动。

三、补充说明(针对你的硬件情况)

  1. 你的 CPU 硬件限制是 800MHz ~ 3.20GHz,脚本会自动识别这个范围,无需手动修改参数;
  2. 当前显示的 797MHz 是正常波动(系统检测精度问题),锁定后会稳定在 800MHz 附近;
  3. 若后续需要恢复性能,执行sudo cpu-power restore即可解锁,CPU 会回到 800MHz ~ 3.20GHz 的正常调节范围。

总结

  1. 你的 CPU 已处于节能策略,但未完全锁定,执行sudo cpu-power lock即可完成最终锁定;
  2. 锁定成功的核心标志是「最大 / 最小频率均为 800MHz」;
  3. 恢复默认只需执行sudo cpu-power restore,无需手动修改任何参数。

本文介绍了在Ubuntu系统中通过命令行和图形界面两种方式锁定CPU最低频率以实现节能的方法。主要内容包括:1. 安装必要的CPU频率管理工具;2. 使用cpupower命令切换为powersave策略并锁定最低频率;3. 创建开机自启脚本使设置持久化;4. 针对ThinkPad笔记本的TLP电源管理优化配置;5. 提供一键切换脚本支持快速锁定/恢复CPU频率。文中详细说明了6种CPU频率调度模式的特点和适用场景,并给出频率锁定后的性能影响说明,特别适合需要在ThinkPad上实现低功耗运行Ubuntu的用户参考。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 0:04:18

Redis复盘总结

Redis 什么是Redis ​ Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。 **性…

作者头像 李华
网站建设 2026/2/6 13:18:13

langchain 快速入门(三):搭建RAG知识库

简介 LLM大模型一般训练的数据都是滞后的,这是就需要用到RAG知识库,RAG知识库可以降低大模型在输出答案时的幻觉,也能够让大模型知识拓展。 知识库架构知识 检索流程图 用户输入 (User Query)|v-----------------------| 提示词 (Prompt) …

作者头像 李华
网站建设 2026/2/4 23:30:33

守住 Java AI 生命线:优先级与熔断降级工程化实战

在AI技术迅猛发展的当下,越来越多的Java企业开始投身于AI应用开发。但很多团队最初都存在一个认知误区,认为接入AI大模型不过是调用一个接口那么简单。然而实际开发中,当业务同时依赖GPT-4、国内合规模型、开源DeepSeek等多个不同类型的模型时…

作者头像 李华
网站建设 2026/2/5 7:08:05

国产大模型第一梯队!

为百万财经人士倾心打造的投研资讯平台 为您解析宏观及政策、研判产业格局及动态, 与君共同见证中国资本市场的壮阔奋进时代! ——研讯社 当前正值国产大模型新一轮更新迭代周期,梳理下国产大模型第一梯队。 深度求索DeepSeek DS实控人是…

作者头像 李华