AI/自動化 2026年4月28日

2026 OpenClaw のディスク枯渇、JSONL ローテーション、ProxyMac Mac mini における APFS パージ可能領域

ProxyMac エンジニアリングチーム 2026年4月28日 約 12 分

OpenClaw香港・日本・韓国・シンガポール・米国にまたがる賃借 Mac mini M4 で運用するチームがときどき残酷な失敗にぶつかります。MCP ツールがタイムアウトしエージェントが再起動ループし、それでも top の CPU は遊んでいる——根本原因はしばしば単調なディスク圧迫です。Apple Silicon デスクトップにも NVMe の上限はあり、終わりなき JSONL 診断(ログ記事)、コンテナレイヤ、Xcode DerivedData の残骸が実効空きを5 GB 未満まで削り、APFS が小さな書き込みにエクステントを割り当てられなくなり子プロセスがENOSPC を返してもポップアップは出ません。本稿では OpenClaw 内部での現れ方、df とディスクユーティリティの読み方、launchd と両立するローテーション設計、そして ヘルスプローブゲートウェイ復旧 に並べるアラートまでまとめます。

ユーザーがディスクグラフに気づく前に ENOSPC が OpenClaw でどう見えるか

OpenClaw は短命プロセスを大量に束ねます。MCP サーバが JSON を追記し、埋め込みモデルが ~/Library にシャードをキャッシュし、TCC プロンプトが失敗するとコンソールへ転がります。write(2) が空きなしを返すと Node が標準エラーをフラッシュする前に例外を投げ、ダッシュボードには「ツール利用不可」とだけ出ます。複数時間ソーク後にのみ現れる怪しい症状は デプロイのトラブルシュート と並行してディスクを見てください。

  • 症状 A:MCP サブプロセスが終了コード 1 でログが空。
  • 症状 B:ゲートウェイ LaunchAgent が45–90 秒ごとに再起動しクラッシュレポートなし。
  • 症状 C:ディスクユーティリティは「50 GB 利用可能」なのに df -h が矛盾——APFS スナップショットが丁寧に誤魔化している。

この種の静かな障害はモデルプロバイダ障害や WAN と混同されやすいので、長時間ジョブの前提チェックにディスク使用率とローテーション設定バージョンを追加してください。

APFS の空き、パージ可能バイト、Docker と Xcode が静かに破裂する理由

APFS は写真の派生物、タイムマシンのローカルスナップショット、ファイルプロバイダのプレースホルダなどパージ可能キャッシュから空きを借ります。圧迫が本気になるまでファイルシステムがテラバイトを取り戻す一方、その間 df92% 使用率と読めるのに Finder は余裕ありと言うことがあります。tmutil listlocalsnapshots /diskutil apfs listVolumeGroups を対にしてください。コンテナランタイムは Data ボリュームへ overlayFS を重ねます。未使用イメージ削除だけで CI 偏重ホストでは18–40 GB が返ることも珍しくありません。OpenClaw とモデルキャッシュには最低 15 GB の常時ヘッドルームを計画してください。それよりタイトだと夜間 cron の圧縮やバッチと競合します。

chmod 777 で適当に広げない。 ACL を緩めて空間を稼ぐと シークレット設計 が守りたい境界を失う。

監視が使用率だけでなく絶対ギガバイトでもトリガするようにしてください。メタデータ領域は残り数ギガでもスパイク書き込みで瞬間的に詰まります。

launchd と協調する JSONL ローテーションパターン

JSONL は nginx ログと同じ発想で、150 MB を超えたら転がし、圧縮した日次アーカイブを7 世代残し、コンプライアンスが許せば冷データをオブジェクトストレージへ。macOS では単純パスに newsyslog、ユーザーごとのエージェントには閾値直前に mv app.log app-$(date +%s).log を挟む bash ガードを。Linux Ansible からそのまま logrotate バイナリを流用すると Gatekeeper とパス漂移で苦しむ現場がありました。Git 管理の設定は 設定バージョニング と同期させます。

症状ルックアップ:運用の言い回しをディスク事実へ翻訳する

謎の文言ディスクシグナルすぐ打つコマンド
「モデルが六時間後に固まった」ボリューム使用率が95% を跨ぐdf -h /System/Volumes/Data
「エージェントが再起動し続ける」JSONL に追記できないls -lh ~/Library/Logs/OpenClaw/*.jsonl
「ダウンロードが消えた」パージキャッシュが突然回収されたディスクユーティリティのファーストエイドとスナップショット削減

各行に時間範囲とボリューム UUID を添えれば、後から入ったオンコールも同じグラウンドトゥルースに立てます。

OpenClaw を再インストールする前の六段階ディスク手順書

  1. 現実のスナップショット:dfdiskutil infotmutil listlocalsnapshots を一枚のチケット添付に。
  2. 太いツリー:du -hd1 ~ で Logs、Library、ワークスペースを重点視。
  3. JSONL をローテーションし launchd ジョブがまだ起動するか確認。
  4. 古いスナップショットを削除——オフボックスのバックアップ確認後のみ。
  5. OpenClaw を再起動:ゲートウェイ復旧launchctl kickstart 順に従う。
  6. 死活監視と並列してディスクアラート——連続五分間で利用可能バイトが20 GB を下回ったら発火。
スループットのヒント:ディスク IO が飽和すると MCP レイテンシがパケットロスのように見える。まず 並行度調整 で疑わしい WAN を潰す。

キャパシティ計画:ギガバイトを運用判断へ変換する

標準 512 GB SSD は三台のチームが共有すると瞬く間に狭くなります。四十ギガは Xcode ツールチェイン、六十ギガはモデルキャッシュ、九十ギガは夜間統合成果物——悪い週末でゼロバイトが視界に入ります。ワークロード帯を明示的に割り振ってください。対話開発に最低 80 GB、独立した APFS ボリュームへスナップショットできる CI 溢出しに40 GB、緊急バッファとして未割り当て25 GB。使用率85% が六時間以上続くなら プロバイダフェイルオーバー でエージェントトラフィックを逃がしてからログ整理——MCP が総崩れした後ではなくその手前で。

SMB 共有も同一ディスクプールです。設計が PSD を hundreds MB 単位で JSONL と同居させるなら保持ポリシーを合わせてください。規制エクスポートを外付けへ逃がすのはセキュリティレビュー後だけ。内部 SSD の暗号 sparsebundle と寿命ドキュメントが無難です。ギガバイト決定は GitOps 設定 の隣に書けば、アップグレード理由が監査にも財務にも通ります。

スナップショットはブランチポインタのようなもので、理解していれば美しく、無視すれば壊滅的です。JSONL が荒れている環境でいきなり厚い世代保持を敷くより、ローテーションされたフラットファイルとコールドエクスポートのほうが運用しやすいことが多いです。削除承認者を決めずして証跡を消すと、監査側はディスクが逼迫した瞬間に証拠を捨てたとみなします。インシデントログには diskutil apfs list の末尾を貼り UUID を推測しないでください。

FAQ

ユニファイドロギングを止めるべきか。 サブシステムの冗長さを下げる。/var/db/diagnostics を削除しない。

iCloud の最適化は OpenClaw ワークスペースに効くか。 はい。デスクトップ/書類の最適化が書き込みを遅らせるのでエージェントディレクトリは除外する。

RAM ディスクキャッシュは? M4 での短命ビルドには有用だがサイズ上限を文書化し ヘルプ記事 と並べる。

ディスク負荷の高いエージェントでも ProxyMac Mac mini が現実解である理由

賃借 Mac mini M4 は過剰割り当てハイパーバイザより摩耗が読みやすい高速 SSD を備え、ハードを運ばずにHK / JP / KR / SG / US を用意できます。ディスク衛生と透明な 価格 をセットにし、オペレータは ヘルプセンター を経由させ、Finder レベルの掃除が速いときは VNC を。

ヘッドルームを確保してエージェントをオンラインに

HK / JP / KR / SG / US · JSONL 対応 Mac mini