OpenClaw Gateway 卡死假死问题完整诊断与预防方案
🔍 根因分析:8 大类问题
1️⃣ Gateway 机制问题
| 问题 | 描述 | 影响 |
|---|
| 单线程事件循环 | Node.js 单线程模型,长时间任务阻塞主循环 | 所有请求排队,表现为无响应 |
| WebSocket 连接泄漏 | 客户端断开后连接未正确释放 | 连接数累积,内存增长 |
| 缺少背压控制 | 请求速率超过处理能力时无降级 | 雪崩效应 |
症状表现:
# Gateway 状态显示正常,但所有请求超时
openclaw gateway status
# 输出:Listening: 127.0.0.1:18789
# 但实际请求无响应
| 问题 | 描述 | 影响 |
|---|
| 异常退出残留 | 进程被 kill、系统崩溃、断电 | .lock 文件残留,新进程无法启动 |
| PID 文件过期 | 进程结束但 PID 文件未清理 | 提示 Gateway 已运行但实际未运行 |
| 临时文件累积 | 日志/缓存未定期清理 | 磁盘空间占用,IO 变慢 |
典型错误:
Error: Gateway is already running (PID file exists) 但实际上进程已不存在
| 问题 | 描述 | 影响 |
|---|
| 快速重启 | 旧进程未完全释放端口 (TIME_WAIT) | 等待 30-60 秒或使用 SO_REUSEADDR |
| 多实例竞争 | 配置重复启动 | 使用锁文件机制 |
| 其他进程占用 | 其他应用使用相同端口 | 修改端口或停止冲突进程 |
排查命令:
# 查找占用进程
Get-NetTCPConnection -LocalPort 18789 | Select-Object OwningProcess
# 释放端口
Stop-Process -Id <PID> -Force