【Ubuntu】在Ubuntu中实现酣畅淋漓的性能释放:调整CPU频率

一、问题描述

在机器人开发中,经常需要运行诸如 SLAM 和 Planning 等 CPU 密集型程序,这些程序需要充分发挥计算机的性能,以确保算法的高效运行。然而,默认情况下,Ubuntu 通常将 CPU 设置为节能模式,导致 CPU 在低频率下运行,从而可能影响算法的执行效率。因此,为了最大化 CPU 性能,需要将所有核心的工作模式设置为高性能。

查看各 CPU 核心的工作模式可以通过下面这条命令:

bash 复制代码
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

终端打印以下内容:

复制代码
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave

这说明CPU处于节点模式,正在养生

二、软件安装与设置

执行以下命令安装 indicator-cpufreq:

bash 复制代码
sudo apt-get install indicator-cpufreq

安装完成后,重新启动计算机。重新启动后,在界面右上角会出现如下图标。

点击该图标,并选择"性能"模式。

  • performance:高性能模式,将 CPU 频率设为最高值,以最大化 CPU 性能。
  • powersave:节能模式,降低 CPU频率,以最大化节能。

三、查看各 CPU 状态

执行以下命令,查看各 CPU 核心的工作模式:

bash 复制代码
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

终端将会打印以下内容:

bash 复制代码
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance

这说明所有 CPU 都处于 "performance" (性能) 模式。

四、开机默认高性能设置

上述步骤可以方便快捷地设置当前 CPU 状态,但重启计算机后,系统会恢复默认设置。为了确保系统在每次启动时都以高性能模式运行,可以按照以下步骤进行设置:

4.1 安装 cpufrequtils

执行以下命令安装 cpufrequtils 软件:

bash 复制代码
sudo apt-get install cpufrequtils

该软件包含一些常用命令,如:

  • cpufreq-info:查看 CPU 状态;
  • sudo cpufreq-set -c 0 -g performance:设置指定 CPU 的状态。其中,-c 0 指定要设置的 CPU 核心编号
  • performance 表示将 CPU 状态设置为高性能模式;
  • sudo cpufreq-set -c 1 -d 900MHz:设置指定 CPU 的最低频率为 900MHz;
  • sudo cpufreq-set -c 2 -u 2.6GHz:设置指定 CPU 的最高频率为 2.6GHz。

4.2 编写脚本

创建 set_cpu_performance.sh 文件,并赋予可执行权限:

bash 复制代码
#!/bin/bash
# Check if the cpufrequtils package is installed
if ! [ -x "$(command -v cpufreq-set)" ]; then
  echo "Error: cpufrequtils package is not installed. Please install the package first."
  exit 1
fi

cpu_mode=performance  # CPU operating mode, defaulting to performance mode

# Get the number of CPU cores
cpu_cores=$(nproc)

# Set each CPU core to performance mode
for ((cpu=0; cpu<cpu_cores; cpu++)); do
  sudo cpufreq-set -c $cpu -g $cpu_mode
done

# Validate the current CPU frequency scaling governor state
cpufreq-info --policy | grep "current policy"

echo "All $cpu_cores CPU cores are now in $cpu_mode mode."

在脚本中,可以通过修改 cpu_mode 变量来切换工作模式。

4.3 设为默认开机脚本

(1)将你的脚本放置在一个合适的位置,比如 /usr/local/bin。

(2)创建一个 .service 文件,这将告诉 systemd 如何启动你的脚本。

bash 复制代码
sudo nano /etc/systemd/system/set_cpu_performance.service

(3)在编辑器中输入以下内容:

bash 复制代码
[Unit]
Description=Set CPU performance mode
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/set_cpu_performance.sh

[Install]
WantedBy=multi-user.target

请确保 ExecStart 的路径与你的脚本的实际路径相匹配,然后保存并退出编辑器。

(4)刷新 systemd 以加载新的服务单元

bash 复制代码
sudo systemctl daemon-reload

(5)启用服务,使其在启动时自动运行。

bash 复制代码
sudo systemctl enable set_cpu_performance.service

以上操作能够确保系统在每次启动时都以高性能模式运行。

相关推荐
惜分飞6 分钟前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
chian-ocean6 分钟前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
m0_550024639 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
AC赳赳老秦10 分钟前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
释怀不想释怀14 分钟前
Linux网络基础(ip,域名)
linux·网络·tcp/ip
初願致夕霞16 分钟前
Linux_进程
linux·c++
开开心心就好23 分钟前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender
啦啦啦_999924 分钟前
Redis-2-queryFormat()方法
数据库·redis·缓存
lucky-billy43 分钟前
Ubuntu 下一键部署 ROS2
linux·ubuntu·ros2
Thera7771 小时前
【Linux C++】彻底解决僵尸进程:waitpid(WNOHANG) 与 SA_NOCLDWAIT
linux·服务器·c++