二〇二六年 レンタル Mac Mini七時二十四分Celery 常駐ワーカー vs cron 扇出並行ACK退避ディスク水位

運用設計
約10分

レンタル Mac Mini一台へCelery 常駐cron 扇出を同居させると、prefetchACKブローカー巻と一時領域が夜間に衝突しやすい。しきい値表URL 例比較表FAQで意思決定を固定する。スケジューリング稿cron 看門犬稿APFS 水位 FAQ長期バッチの隔離公開購入ログイン不要可)で台とディスクに余白を取る。

  1. prefetch 気泡:高倍数で一子に偏り、CPU/ディスクが不均。
  2. cron 重複flock無しは同一 APFSへ二重書き込み。
  3. 早期 ACK:クラッシュ後に副作用だけ残ると手戻りが大きい。

実行しきい値表

並行は物理コア基準、値は出発点。

設定 推奨の出発点 ACK/安全メモ Mini 観点
CELERY_BROKER_URLRESULT_BACKEND vhost 分離/Redis DB をキャッシュと別 秘密はホスト単位ローテ 巻分離で追記ノイズ低減
broker_transport_options(可視性) p99 の3〜6 倍 短=重複、長=救出遅い GPU/ffmpeg は上帯
worker_prefetch_multiplier CPU 重い1、極小 IO 2〜4 late ack+べき等 単一 SSD 頭詰まり抑制
task_acks_latetask_reject_on_worker_lost 再試行可は遅延 ACK リース等で副作用を囲う 子再生成と併用
worker_max_tasks_per_child 200〜2000(漏れなら下げる) 冷起動 vs RSS 夜間に再生成
worker_max_memory_per_child 子 RAM 予算60〜70%(KB) スワップ抑制 同居ブローカー分を残す
task_soft_time_limittask_time_limit ソフト SLA約 9 割、ハード+30〜60s 可視性内に再試行 GPU ハング柵
再試行バックオフ 初回2〜5s・上限約2分・ジッタ20% 人手無し5 回で打切 夜間窓と整合

キュー URL 例

ホスト/DB/TLS は差し替え。Git 禁止、環境変数へ。

役割 例(URL) 使い所
Redis ブローカー redis://:PASSWORD@127.0.0.1:6379/0 同居・DB 番号分離
Redis TLS rediss://:PASSWORD@broker.example:6380/0?ssl_cert_reqs=required WAN・timeout 確認
RabbitMQ amqps://user:pass@rabbit.local:5671/celery_vhost 優先度・連携が要るとき
結果 redis://:PASSWORD@127.0.0.1:6379/2 または rpc:// 巨大 blob は巻に載せない

投入前ゲート

  • 隔離:ブローカー/結果/キャッシュの URL と巻を分ける。
  • ACK:再試行可は late、外部コミット済みのみ early。
  • prefetch:数分 CPU は 1、極小 IO のみ慎重に上げる。
  • 子再生成・メモリ上限:夜間窓でネイティブ漏れを回収。
  • 可視性・時間・再試行:poison は DLQ か人手まで閉じる。
  • ディスク黄赤:enqueue も止める(メールだけにしない)。

並行・ACK・退避

並行は物理コアから測り、キュー深さが定常の10 倍連続 2 回ならページ。再接続は指数バックオフ+ジッタで夜間の嵐を避け、テナント別キューで公平性を保つ。

ディスク・inode 水位チェックリスト

  • :空き約 20%で警告とスロットル。
  • 約 10%未満またはスナップショット失敗ログで enqueue 停止。
  • AOF/ブローカー伸び用に2 GiB級の余白を別確保。
  • ログは約 200 MiB/ファイルでローテ、inode 80%超で調査。

常駐ワーカー vs cron 扇出マトリクス

プロファイル Celery 常駐 cron 扇出
長時間 prefetch 1late ack・時間制限 分割保存が要る
極小シャード キュー分割・prefetch 監視 launchd 段階起動
重複禁止 シングルトン/ロック 1 plist/flock
毒/不安定 API 上限再試行・DLQ サーキット・終了コード通知

安定化の六手順

  1. p99測定→可視性・ソフト時間に2 割ゆとり。
  2. URL/秘密を Git 外、複製時ローテ
  3. late ack、長時間は prefetch 1、再試行上限+DLQ。
  4. worker_max_tasks_per_child とメモリ上限、再生成は静かな窓
  5. tmp・結果・inode を監視、でプロデューサ減速。
  6. 四半期に強制 kill 演習で再配信安全性を確認。

FAQ

長時間は Celery と cron どちらか
枯渇と再試行の集約は常駐。短い非重複スライスはcron
prefetch は常に 1 か
長 CPU は1。極小 IO は late ack+べき等のうえで2〜4まで。
max tasks per child の意味
数百〜数千で子を作り直し、断片化と FD 増を抑える。
可視性と時間制限
可視性は p99 の3〜6 倍、ソフトSLA の約 9 割、ハード+30〜60 秒
cron が有利なとき
短時間・flock で重複禁止。継続枯渇は Celery。

引用ゲート:長 CPU は prefetch 1late ackmax tasks per child 200〜2000、空き黄 20%/赤 10%で投入停止。

まとめ:レンタル Mac Mini長期バッチを回すなら、表のURL・prefetch・ACK・子再生成・水位を先に固定し、常駐か扇出かを負荷形に合わせる。公開購入コアとディスクに余白を取り、本番と検証を分けてください。

Celery/cron 向け Mac ノード

RunMini Apple Silicon で七時二十四分を隔離。ホーム料金ヘルプ公開購入ログイン不要可)。

ブログ一覧 公開購入

公開購入へ