OpenClaw ユーザーはチャット遅延で製品を評価し、ロードマップは長時間ワークスペース自動化のスループットで評価します。単一 Mac mini M4 の同一ゲートウェイで両方を共有すると失敗は予測可能:リポジトリ全体のインデックス再構築や数分のツールチェーンが全コアを奪い、Slack 返信が数百 ms から数十秒へ跳ねます。2026 年は並行性マトリックスを公開し、ミューテックス、キャンセル意味論、分離 SLO クラスを明記—メトリクスで強制します。
関連制御:ゲートウェイ認証とツールレート制限、launchd スケジュールタスク整合、レディネスプローブと SLO。同一ホストで CI も動かす場合は CI 並行性の公平性。料金;ヘルプ;ブレークグラスは VNC。
2 つのトラフィッククラス、2 つの予算
対話チャットは遅延に敏感で通常ペイロードが小さい。長時間ワークスペースジョブはスループットに敏感で、子プロセスツリー、大きなディスク IO、繰り返し LLM 呼び出しを生むことがあります。同じ OS 内では「同じチーム」でも競合テナントとして扱ってください—カーネルは組織図を知りません。
- 対話:スケジューリング公平性を優先し、ユーザーに見えるキュー深さを制限。
- 長時間:バックプレッシャーとキャンセルを優先;無限リトライは禁止。
- ハイブリッドコマンド:明示ラベルでルータが正しい予算を選べるようにする。
並行性マトリックス
| ワークロード | 既定スロット方針 | ユーザー可視リスク |
|---|---|---|
| 軽いツール呼び出しの DM 応答 | 常時予約スロット | p95 > ~3s だと「ボット停止」と感じられる |
| 夜間モノレポ文書再生成 | 有界並列ワーカー + git ミューテックス | ミューテックス欠如でチャットが飢餓 |
| 人間が起動した「lint 一括修正」津波 | 可視位置付きキュー + キャンセル | 協調的でないキャンセルは重複編集を招く |
キャンセルと協調タイムアウト
親コルーチンだけ止めて子 xcodebuild が動き続けるキャンセルは、キャンセルなしより悪い—部分書き込みを生みます。標準化:キャンセルトークンを伝播し、可能ならプロセスグループを使い、ツールクラスごとに絶対壁時計上限と強制終了時の監査ログを設定します。
| ツールファミリー | ソフトタイムアウト | ハードキル |
|---|---|---|
| HTTP JSON API | クライアント読取 30 秒 | 絶対 90 秒 |
| ローカルコンパイル / テスト | 60 秒ごとの進捗イベント | チケット例外なし 45 分上限 |
| ディスク偏重同期 | IO スループット下限アラーム | オペレータキャンセル + チェックサム検証 |
運用メモ:重いジョブにカレンダージッターを入れ、毎日のスタンドアップメッセージバーストと揃えない—単純で効きます。
8 つのロールアウトステップ
- 計測:チャット p95 とジョブ完了時間を分離。
- ミューテックス定義:git、パッケージマネージャ、シミュレータ起動周り。
- スロット予約:各ゲートウェイホストで対話トラフィック用。
- ダッシュボード配線:キュー深さとキャンセル成功率。
- 文書化:運用 README で「重い」コマンドを列挙。
- 負荷試験:チャットバーストとスケジュールジョブを混合。
- ホスト分割:指標が持続的競合を示したら 2 台目の NodeMac Mac mini M4 を追加。
- インシデント後レビュー:超過した予算クラスを必ず引用。
FAQ
夜間ジョブ中だけチャットが遅いのはなぜ?
共有 CPU、IO、ツール同時実行上限。対話スロットを予約し並列長ジョブを制限。
ゲートウェイプロセスは 1 つか 2 つか?
本番は分離か厳格なミューテックス階層;制限なし共有は尾遅延スパイクを生む。
NodeMac の助けは?
役割/リージョンごとの専用 M4、SSH 自動化、任意 VNC—チャットとバッチをホストで分割。