最低频率最省电最省钱
三部曲:
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,这么看还挺线性的......

最佳节能:

bash
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
四、关键注意事项
- 模式生效范围 :
cpupower frequency-set -g xxx默认对所有 CPU 核心生效,无需逐个核心设置; - 临时生效 :所有
cpupower命令的修改都是临时的,重启后会恢复默认(如需持久化,需用之前的脚本或 TLP 配置); - 优先级 :若你之前用脚本锁定了最大频率(800MHz),即使切换到
performance模式,CPU 也只能运行在 800MHz(最大频率限制优先于调度器)。
总结
- 核心调度器模式共 6 种:
powersave/performance/ondemand/conservative/userspace/schedutil; - 用
cat /sys/devices/system/cpu/cpu0/cpufreq/available_governors可查看系统实际支持的模式; - 你的场景中,
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. 开机自动生效(持久化配置)
上述设置重启后会失效,需配置开机自启脚本:
- 创建配置文件
bash
运行
sudo nano /etc/init.d/cpu-low-power
- 粘贴以下内容(替换
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
- 赋予权限并设置开机自启
bash
运行
sudo chmod +x /etc/init.d/cpu-low-power
sudo update-rc.d cpu-low-power defaults
三、图形界面方式(适合新手)
如果安装了 GNOME 桌面环境,可以通过以下工具可视化配置:
- 安装
cpufreq图形管理工具
bash
运行
sudo apt install -y gnome-tweaks cpufreq
- 打开 GNOME 调整工具 (Gnome Tweaks),进入 电源 选项卡
- 将 CPU 调速器 设置为
powersave - 若需锁定最低频率,仍需结合命令行执行
cpupower frequency-set -u $MIN_FREQ(图形工具无法直接设置最大频率上限)
四、ThinkPad 专属优化:利用 TLP 工具
ThinkPad 可以搭配 TLP(高级电源管理工具),进一步优化 CPU 能耗,同时兼容上述频率锁定设置:
- 安装 TLP
bash
运行
sudo apt install -y tlp tlp-rdw
sudo systemctl enable tlp
sudo systemctl start tlp
- 编辑 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
- 重启 TLP 生效
bash
运行
sudo tlp restart
五、注意事项
- 性能影响:锁定最低频率后,CPU 性能会大幅下降,仅适合文字处理、浏览网页等轻负载场景,不建议运行 ROS 编译、仿真等重任务。
- 多核心适配 :部分 CPU 支持异构核心 (如 Intel 大小核),需确保对所有核心(
cpu0-cpuN)都执行频率设置。 - 恢复默认设置:若需解除锁定,执行以下命令
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 # 查看状态
总结
- 脚本核心功能:
lock锁定最低频率(powersave 策略 + 限制最大频率 = 最小频率)、restore恢复默认(ondemand 策略 + 解锁最大频率)、status查看状态; - 使用前提:必须以
sudo运行(修改 CPU 频率需要管理员权限); - 适配性:脚本自动读取 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 左右,不会再向上波动。
三、补充说明(针对你的硬件情况)
- 你的 CPU 硬件限制是 800MHz ~ 3.20GHz,脚本会自动识别这个范围,无需手动修改参数;
- 当前显示的 797MHz 是正常波动(系统检测精度问题),锁定后会稳定在 800MHz 附近;
- 若后续需要恢复性能,执行
sudo cpu-power restore即可解锁,CPU 会回到 800MHz ~ 3.20GHz 的正常调节范围。
总结
- 你的 CPU 已处于节能策略,但未完全锁定,执行
sudo cpu-power lock即可完成最终锁定; - 锁定成功的核心标志是「最大 / 最小频率均为 800MHz」;
- 恢复默认只需执行
sudo cpu-power restore,无需手动修改任何参数。
本文介绍了在Ubuntu系统中通过命令行和图形界面两种方式锁定CPU最低频率以实现节能的方法。主要内容包括:1. 安装必要的CPU频率管理工具;2. 使用cpupower命令切换为powersave策略并锁定最低频率;3. 创建开机自启脚本使设置持久化;4. 针对ThinkPad笔记本的TLP电源管理优化配置;5. 提供一键切换脚本支持快速锁定/恢复CPU频率。文中详细说明了6种CPU频率调度模式的特点和适用场景,并给出频率锁定后的性能影响说明,特别适合需要在ThinkPad上实现低功耗运行Ubuntu的用户参考。