本文针对常见的 OpenClaw 性能问题,提供系统性的调优方案。
性能基准:正常表现是什么?
| 场景 | 典型表现 | 问题阈值 |
|---|---|---|
| CLI 命令响应 | 1-3 秒 | > 8 秒需优化 |
| Telegram 首次回复 | 2-6 秒(AI 响应) | > 15 秒需排查 |
| Gateway 内存占用 | 300-600MB | > 1.5GB 需检查 |
| CPU 使用(空闲) | < 5% | 持续 > 20% 需排查 |
优化一:CLI 启动速度(必做)
在低配 VPS 或 ARM 机器上,每次运行 openclaw 命令可能要 3-8 秒。 开启 Node.js 编译缓存后降至 1-2 秒:
bash
# 追加到 ~/.bashrc 或 ~/.zshrc
cat >> ~/.bashrc << 'EOF'
export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
mkdir -p /var/tmp/openclaw-compile-cache
export OPENCLAW_NO_RESPAWN=1
EOF
source ~/.bashrc
# 第一次运行预热(正常,会慢一点)
openclaw --version
# 之后每次都快很多效果:在树莓派 4 上实测,启动时间从 6 秒降到 1.5 秒。
优化二:AI 响应延迟
AI 回复延迟主要取决于两个因素:模型选择 和 网络到 AI API 的延迟。
2.1 模型选型对延迟的影响
| 模型 | 首 Token 延迟 | 每秒输出 | 成本 | 适合场景 |
|---|---|---|---|---|
| claude-haiku-3-5 | ~0.5s | 快 | 低 | 日常对话、快速问答 |
| claude-sonnet-4-5 | ~1s | 中 | 中 | 技术问题、写代码 |
| claude-opus-4 | ~2s | 慢 | 高 | 复杂推理、重要决策 |
建议:日常对话用 haiku,技术问题用 sonnet,不需要用 opus。
bash
# 切换到更快的模型
openclaw config set agents.defaults.model "claude-haiku-3-5"2.2 网络到 AI API 的延迟
bash
# 测试到 Anthropic API 的延迟
curl -w "连接时间: %{time_connect}s
总耗时: %{time_total}s
" -o /dev/null -s https://api.anthropic.com
# 如果延迟 > 500ms,考虑:
# 1. 换部署地区(美国/欧洲节点比亚洲到 Anthropic 更快)
# 2. 换 AI 提供商(Google Gemini 在亚洲有节点)优化三:内存占用控制
3.1 关闭不需要的工具
json5
{
tools: {
// Browser 工具是最大的内存消耗来源(约 200-400MB)
browser: {
enabled: false, // 不需要网页自动化时关闭
},
// exec 沙箱(Docker 模式会额外占用)
exec: {
enabled: true,
sandbox: "none", // 低配机器关闭沙箱
}
}
}3.2 内存使用对比
| 配置 | 内存占用 |
|---|---|
| 全功能(Browser 开) | 400-700MB |
| Browser 关闭 | 120-200MB |
| 最小化(仅 Telegram + AI) | 80-120MB |
3.3 检查内存泄漏
bash
# 查看 Gateway 进程内存
ps aux | grep openclaw
# 查看 Gateway 健康状态(含内存信息)
curl http://localhost:18789/health
# 如果内存持续增长(几天后超过 1GB),重启 Gateway 释放
openclaw gateway restart优化四:会话 Token 压缩
长对话会积累大量 Token,影响响应速度(上下文越长,AI 处理越慢)。 开启会话压缩自动处理:
json5
{
agents: {
defaults: {
session: {
compression: {
enabled: true,
// 超过此 Token 数时自动压缩历史对话
triggerTokens: 60000, // 默认 80000,可调低
// 压缩保留最近几轮对话
keepRecentTurns: 10,
}
}
}
}
}压缩效果:将长对话历史压缩为摘要,保留关键信息,大幅减少 Token 消耗。
优化五:1C1G 低配 VPS 专项方案
在 1 核 1GB 内存的 VPS 上运行 OpenClaw 的完整优化配置:
json5
// 低配 VPS 推荐配置
{
agents: {
defaults: {
model: "claude-haiku-3-5", // 用最快最省的模型
session: {
compression: { enabled: true, triggerTokens: 40000 }
}
}
},
tools: {
browser: { enabled: false }, // 关闭 Browser(最省内存)
exec: { enabled: true, sandbox: "none" },
web: { enabled: true }
}
}系统级优化:
bash
# 配置 swap(防止 OOM)
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 降低 swappiness(减少频繁换页)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p监控与告警
用 OpenClaw 自身监控自身(递归式监控):
markdown
# HEARTBEAT.md
## 每 1 小时检查
检查以下项目,任何异常立即发 Telegram 通知:
1. curl http://localhost:18789/health 是否返回正常
2. 内存使用是否超过 800MB(ps aux | grep openclaw)
3. Gateway 进程是否还在(openclaw gateway status)
如果发现异常,尝试 openclaw gateway restart,然后通知我。快速诊断命令速查
bash
openclaw doctor # 全面诊断
openclaw gateway status # Gateway 状态
openclaw gateway logs --tail 50 # 最近日志
curl http://localhost:18789/health # HTTP 健康检查
ps aux | grep openclaw # 进程内存使用来源:OpenClaw 官方文档 - docs.openclaw.ai/gateway