生产 OpenClaw 最怕两件事:夜里悄悄升级与日志把盘写满。在加拿大 M4 远程 Mac 上,把变更做成「可审计、可回滚、可分批」,Gateway 18789 才不会在亚太同事开工前掉链子。租期与并联预算可先对照 2026 远程 Mac 租期与总拥有成本:跨太平洋加拿大接力 QA、M4 扩容与并联怎么定;区域与档位选型见 2026 年新加坡·日本·韩国·香港·加拿大远程 Mac 怎么选:加拿大北美补充与中高配 M4 存储扩容、开发测试决策指南。
依赖冻结与可控升级路径(HowTo)
升级前冻结三类工件:package-lock.json / pnpm-lock、Node 小版本、以及 launchd plist 引用的绝对路径。加拿大机上不要用「顺手 brew upgrade 全套」当默认动作;把 Homebrew 与 npm 拆成双周窗口,OpenClaw 本体单独走灰度。黄金样机先跑 doctor、单 Channel、健康探针各 30 分钟无 jitter,再滚动下一台。
node -v > /var/log/openclaw/node.rev npm ls --depth=0 > /var/log/openclaw/npm.tree.snapshot
回滚务必二进制 + 配置 tarball + plist同步还原;只降级 npm 包却留着新键名,是凌晨告警的常见来源。
Gateway 健康探测与滚动重启
探针分两层:本机 curl 与进程维度 lsof -i :18789。滚动重启时先用负载外的一台接受流量(或将上游指向备用机),launchctl bootout 后等待端口释放再 bootstrap,避免「旧进程未退净」造成偶发 502。两台以上并联时,批次间隔建议 ≥90 秒,给 Dashboard 与通道握手留出收敛时间。
| 症状 | 优先核查 | 动作 |
|---|---|---|
| health 偶发 FAIL | 同秒磁盘 IO 尖刺 | 延后大批量日志导出 |
| 401 计数升高 | token 旋转与时钟 | 对齐 NTP、复核 secrets |
| 滚动后首包慢 | DNS / Tailscale DERP | 固定解析、换就近 DERP |
磁盘日志水位与轮转
把日志根、npm cache、临时导出目录放在独立卷或独立子路径,根卷保留 ≥15% 余量作缓冲。轮转策略要覆盖「单文件上限 + 总目录上限」两级;加拿大节点常承载夜间批跑,若把 debug 默认开到最大,M4 也会在一周内被 trace 撑满。告警阈值建议:根卷 <18% 黄灯,<12% 红灯自动停非关键 tail。
远程链路抖动排障对照
跨洋链路问题常被误判为「Gateway 坏了」。先在同机 loopback 验证 health,再走 SSH jump 与 Tailscale 两条路径对比 RTT 与重传。MTU 不匹配会在高峰表现为单流中断、并发偶发;把大包传输改走 rsync --partial 并限速,可快速区分「应用层」与「管道层」。
中高配资源落地案例(摘要)
16GB / 256GB:适合单网关 + 轻量 Channel,日志必须每日轮转。24GB / 512GB:并发 CI 或双 Channel,cache 与 workspace 分盘。24GB / 1TB 及以上:夜间批跑 + 保留七天压缩日志,适合亚太—北美接力。并联时在控制台层打标签(region、role、lockfile 版本),避免「同名机器、不同依赖」。
FAQ
能否交给 cron 自动 npm update?
不建议直连生产。若必须自动,限定补丁版本、先在黄金样机跑相同流水线,再写入变更工单号。
滚动重启会不会丢通道状态?
会有短暂握手窗口;用分批与健康探针确认「新进程已就绪」再接流量,可把感知中断压到秒级。
磁盘只剩 10% 要先清什么?
优先压缩或迁走历史日志与 npm cache,再处理大块导出;勿在未备份时删 workspace。