AI / 自动化 2026 年 4 月 28 日

2026 年 OpenClaw 磁盘耗尽、JSONL 轮转与 ProxyMac Mac mini 上的 APFS 可清除空间

ProxyMac 工程团队 2026 年 4 月 28 日 约 12 分钟阅读

香港、日本、韩国、新加坡、美国的租用 Mac mini M4 上交付 OpenClaw 的团队,偶尔会撞见一种冷酷失败:MCP 工具超时、智能体重启循环,而 top 里 CPU 还很闲。根因常常是磁盘压力。Apple Silicon 台式机依然有有限 NVMe 配额;无尽的 JSONL 诊断(参见 日志指南)、容器层级与 Xcode 派生数据残留,可把有效空闲压到 5 GB 以下——此时 APFS 难以为小写入分配范围,子进程返回 ENOSPC,却未必弹出友好横幅。本文说明它在 OpenClaw 里如何冒头、如何读 df 对比磁盘工具、如何设计可与 launchd 协作的轮转,以及如何把告警接到 健康探测网关恢复手册旁。

ENOSPC 如何在用户盯磁盘曲线之前就表现在 OpenClaw 里

OpenClaw 会编排大量短生命周期进程:MCP 服务器向 JSONL 追加行、嵌入模型把分片缓存在 ~/Library,TCC 失败时崩溃转储还会落到控制台。当 write(2) 返回无空间,Node 可能在刷 stderr 前就抛错——仪表盘只剩「工具不可用」。排查 部署排障 里那些只在长时间浸泡后才出现的症状时,请并行检查磁盘。

  • 症状 A:MCP 子进程退出码 1 且日志空白。
  • 症状 B:网关 LaunchAgent 每 45–90 秒重启且无崩溃报告。
  • 症状 C:磁盘工具仍显示「可用 50 GB」而 df -h 不一致——APFS 快照在礼貌地说谎。

APFS 可用空间、可清除字节,以及 Docker 或 Xcode 为何安静爆炸

APFS 会从可清除缓存借用空闲——照片衍生、Time Machine 本地快照与文件提供程序占位符。承压前文件系统可能回收整 TB;在此之前 df 可能显示92%占用而访达仍声称有余量。运行 tmutil listlocalsnapshots / 并与 diskutil apfs listVolumeGroups 对照。容器运行时在 Data 卷上映射 overlayFS;删除不用镜像常见18–40 GB回收。请为 OpenClaw 与模型缓存预留至少15 GB稳态余量——更紧就会在夜间 cron 压缩时竞态。也可以把「可用字节」同步写入 Prometheus 文本导出与 Slack 摘要,避免只有值班手机收到 iCloud 存储提醒。

不要用 chmod 777 碰随机目录。宽松 ACL 会毁掉 密钥文档里的保证。

与 launchd 合作的 JSONL 轮转范式

把 JSONL 当 nginx 日志:文件超过 150 MB 就轮转,保留 7 份按日压缩归档,合规允许时再送到对象存储。macOS 上简单路径可用 newsyslog;用户态智能体可为 logger 包一层 bash,在阈值前执行 mv app.log app-$(date +%s).log。除非你把二进制打进镜像并签名,否则别照搬 Linux 上的 logrotate——Gatekeeper 路径漂移坑过抄 Ansible 角色的团队。轮转边界要与 配置版本化 里的 Git 声明一致。

症状对照表:把口头抱怨翻译成磁盘事实

晦涩说法磁盘信号立刻执行的命令
「模型六小时后挂住」卷占用越过 95%df -h /System/Volumes/Data
「智能体不停重启」无法追加 JSONLls -lh ~/Library/Logs/OpenClaw/*.jsonl
「下载的东西不见了」可清除缓存被猛回收磁盘工具急救 + 快照瘦身

重装 OpenClaw 之前的六步磁盘分诊

  1. 快照现实:dfdiskutil infotmutil listlocalsnapshots 打进同一张工单附件。
  2. 定位重目录:du -hd1 ~,优先看 Logs、Library 与工程目录。
  3. 按上文模式轮转 JSONL,确认 launchd 任务仍能启动。
  4. 确认异地备份后再清理旧快照
  5. 网关恢复 文档执行 launchctl kickstart 序列重启 OpenClaw
  6. 在存活 ping 旁加磁盘告警——可用字节连续五分钟低于 20 GB 就触发。
吞吐提示:磁盘 IO 饱和时 MCP 延迟尖峰像网络丢包——先用 并发调优 对照,再去追虚构的广域网故障。

容量规划:把 GB 翻译运营决策

出厂 512 GB SSD 听起来很大,直到三支团队共用一台 mini:四十 GB Xcode 工具链、六十 GB 缓存模型、九十 GB 夜间集成产物——一个糟糕周末就能逼近零字节。请显式给每段负载划带宽——交互研发至少 80 GB,可在独立 APFS 卷上快照的 CI 溢出 40 GB,再留 25 GB 应急缓冲给元数据增长。若85%占用持续超六小时,按 提供商故障转移 先迁走智能体流量再删日志,而不是等 MCP 崩完。

从 mini 挂载的 SMB 共享继承同一磁盘池——别让设计同事把数百兆 PSD 拖进与 JSONL 同级的共享目录,除非保留策略一致。监管导出若只能落在内部 SSD,请用有生命周期的加密 sparsebundle,并在 GitOps 仓库 记下财务可审计的容量决策。

把磁盘快照当作分支指针:理解它时很美,忽略它时致命。仅在证明相对 JSONL 写入快照增量仍然细小后,才把每小时/每日/每周 Time Machine 卷与轻量 ZFS 式保留并用;否则坚持轮转平面文件加拉冷归档。删除归档前要有签字责任人——否则审计会认定你在磁盘报警的第一分钟就把证据扔掉。事故记录里贴上 diskutil apfs list 页脚,午夜排障就不必猜容器 UUID。

若整机跑在多人分时日程表上,请在日历里把「磁盘预算评审」排在「模型上线」之前:当周构建产物预计新增超过 30 GB,提前协调共享目录搬迁或临时挂载只读归档,而不是周五夜里才疯狂 rm -rf。对代理流量使用速率限制与采样日志,以免 JSONL 在demo周变成海啸。

常见问题

要不要关掉统一日志?降低子系统详细级别,别删 /var/db/diagnostics

iCloud 桌面优化会影响 OpenClaw 工作区吗?会——桌面/文稿优化可能阻塞写入;请排除智能体目录。

RAM 盘缓存呢?M4 上做临时构建有用,但容量必须有上限——把上限写进与 帮助文档 并列的运行手册。

为何磁盘密集型智能体仍应落在 ProxyMac Mac mini

租用的 Mac mini M4 配备可预期磨损的快速 SSD,相较超售虚拟机更透明;你可以在不搬运硬件的情况下开通 香港 / 日本 / 韩国 / 新加坡 / 美国区域并保持 APFS 快照与合规保留对齐。把磁盘卫生与透明 定价 配对,运营走 帮助中心,需要 Finder 级清理时再开 VNC

留出余量,智能体才能在线

香港 / 日本 / 韩国 / 新加坡 / 美国 · 适配 JSONL 的 Mac mini