性能优化与散热
把小小的树莓派榨出最大性能
为什么要优化
树莓派的性能就那么多,但很多人只用到了六七成。通过调整 CPU 频率策略、GPU 内存分配、swap 配置和散热方案,可以让这块小板子多榨出 20-30% 的性能。
而且优化不光是为了跑得快,更是为了跑得稳。散热没做好的话,CPU 一过热就自动降频,跑着跑着反而变慢了。
CPU 频率策略
树莓派默认用 ondemand 策略,根据负载自动调频。跑服务器的话换成 performance 模式,让 CPU 一直保持最高频率,响应更快:
CPU 调频设置
# 查看当前频率策略
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# 临时切换到 performance 模式
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 永久生效:安装 cpufrequtils
sudo apt install -y cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl restart cpufrequtils
# 查看当前频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
# Pi 5 应该显示 2400000 (2.4GHz)
GPU 内存分配
跑服务器不需要图形界面,把分给 GPU 的内存降到最低,留给 CPU 用:
/boot/config.txt 优化配置
# GPU 内存分配(最低 16MB,不跑桌面够用了)
gpu_mem=16
# Pi 5 超频(散热要跟上,不然别开)
# arm_freq=2800
# over_voltage=4
# 关闭蓝牙(不用的话省点资源)
dtoverlay=disable-bt
# 关闭板载 WiFi(如果用有线的话)
# dtoverlay=disable-wifi
# 关闭 HDMI 输出(Headless 部署用不到)
# hdmi_blanking=2
改完之后重启生效:sudo reboot
Swap 调优
合理的 swap 配置能防止 OOM,但 swap 设太大又会拖慢 SD 卡:
Swap 优化
# 设置 swap 大小(建议和内存一样大)
sudo dphys-swapfile swapoff
sudo sed -i "s/CONF_SWAPSIZE=.*/CONF_SWAPSIZE=4096/" /etc/dphys-swapfile
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
# 降低 swappiness(减少不必要的换出)
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 如果用 SSD 启动,swappiness 可以适当高一些(30-40)
# SD 卡建议设成 10,减少卡的磨损
散热方案对比
散热直接决定了 CPU 能不能维持高频运行。以下三种方案从省事到极致:
| 方案 | 价格 | 降温效果 | 噪音 | 适合场景 |
|---|---|---|---|---|
| 被动散热片 | ¥5-15 | 降 5-10°C | 零噪音 | 轻负载、不超频 |
| 官方主动散热器 | ¥30-50 | 降 15-25°C | 低噪音 | 日常使用,推荐 |
| ICE Tower 散热塔 | ¥60-100 | 降 30-40°C | 中等 | 超频、24/7 高负载 |
个人推荐:不超频用官方散热器就够了,超频或者 24/7 跑的话上 ICE Tower,效果拉满。
Docker 资源限制
给容器设个上限,防止某个进程把系统资源吃光导致整机卡死:
Docker 资源限制
# 限制 CPU 使用(留一个核给系统)
docker update --cpus="3.0" openclaw
# 限制内存使用
docker update --memory="2g" --memory-swap="3g" openclaw
# 查看容器资源占用
docker stats openclaw --no-stream
监控命令
调优之后得看看效果,这几个命令常用:
系统监控
# CPU 温度(最重要的指标!)
vcgencmd measure_temp
# temp=45.0'C ← 这个温度很正常
# 超过 80°C 就该检查散热了
# CPU 频率(看有没有降频)
vcgencmd measure_clock arm
# 是否在降频
vcgencmd get_throttled
# 0x0 表示一切正常
# 非零表示触发过降频或欠压,去查具体含义
# 系统总览
htop
# 内存使用详情
free -h
# 磁盘使用
df -h
# Docker 容器资源占用
docker stats --no-stream
PicoClaw 轻量模式
如果树莓派配置实在紧张,可以开启 PicoClaw 轻量模式。这个模式会关闭一些非核心功能,把资源占用压到最低:
PicoClaw 轻量模式配置
# 在 docker-compose.yml 的 environment 里加上:
environment:
- OPENCLAW_LITE=true # 启用轻量模式
- OPENCLAW_CACHE_SIZE=50 # 缓存条数(默认200,低内存设小一点)
- OPENCLAW_WORKERS=2 # 工作线程数(默认4)
- OPENCLAW_LOG_LEVEL=warn # 日志级别调高,减少磁盘写入
轻量模式下内存占用大概能降 40%,对于 2GB 的树莓派 4B 来说是救命的。
优化到极致还是觉得卡?MOLILI 云端服务不受硬件限制,性能按需分配,告别散热焦虑。
了解 MOLILI →