在移动设备和服务器环境中,电力消耗是一个重要考量因素。Linux 提供了多种工具和技术来优化电力使用,同时保持系统性能。以下是详细的用电调优方法。
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
: 最高性能,不考虑功耗powersave
: 最低功耗,可能降低性能ondemand
: 按需调节(默认)conservative
: 更保守的按需调节schedutil
: 基于调度器的调节(较新内核)# 临时设置
echo "powersave" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 永久设置(需要安装cpufrequtils)
sudo apt install cpufrequtils
sudo nano /etc/default/cpufrequtils
# 添加: GOVERNOR="powersave"
sudo systemctl restart cpufrequtils
现代 Linux 内核默认启用 NO_HZ (Tickless)模式:
# 检查是否启用
cat /boot/config-$(uname -r) | grep NO_HZ
# 查看C-states
cat /proc/acpi/processor/CPU*/power | grep C-state
# 查看P-states
cpupower frequency-info
# 安装工具
sudo apt install linux-tools-common linux-tools-generic
# 查看所有CPU信息
sudo cpupower monitor
# 设置最大C-state
sudo cpupower idle-set -d 3 # 限制到C3
# 检查当前ASPM设置
lspci -vv | grep ASPM
# 启用ASPM(在grub配置中添加)
sudo nano /etc/default/grub
# 修改: GRUB_CMDLINE_LINUX_DEFAULT="... pcie_aspm=force"
sudo update-grub
sudo hdparm -I /dev/sda | grep AdvancedPowerManagement
sudo hdparm -B 127 /dev/sda # 1-127, 越低越省电(可能影响性能)
sudo hdparm -S 60 /dev/sda # 5秒后休眠(值=5x12秒)
# 查看当前设置
cat /sys/module/usbcore/parameters/autosuspend
# 启用自动挂起(在grub配置中添加)
sudo nano /etc/default/grub
# 修改: GRUB_CMDLINE_LINUX_DEFAULT="... usbcore.autosuspend=1"
sudo update-grub
# 查看支持的功能
ethtool --show-eee eth0
# 启用EEE(Energy Efficient Ethernet)
sudo ethtool --set-eee eth0 eee on
# 查看当前模式
iw dev wlan0 get power_save
# 设置节能模式
sudo iw dev wlan0 set power_save on
# 查看当前设置
cat /sys/class/drm/card0/power/rc6_enable
# 启用RC6电源状态
echo "1" | sudo tee /sys/class/drm/card0/power/rc6_enable
# 使用nvidia-smi设置
sudo nvidia-smi -pm 1 # 启用持久模式
sudo nvidia-smi -pl 100 # 设置功率限制(瓦特)
sudo apt install tlp tlp-rdw
sudo systemctl enable tlp
sudo systemctl start tlp
# 查看状态
sudo tlp-stat -s
sudo apt install powertop
sudo powertop --auto-tune # 自动优化
sudo powertop --html=report.html # 生成报告
在 /etc/sysctl.conf
中添加:
# 减少交换倾向(更多使用RAM)
vm.swappiness=10
# 减少磁盘写回频率
vm.dirty_writeback_centisecs=1500
vm.dirty_expire_centisecs=3000
bash
pip install s-tui
s-tui
bash
upower -i /org/freedesktop/UPower/devices/battery_BAT0
通过综合应用这些技术,可以显著降低 Linux 系统的电力消耗,特别是在移动设备和边缘计算场景中效果尤为明显。