① つまずき(共有ビルド機)
- 共有可変パスへの同時到達でキャッシュ破損。
- キュー深度だけ増え見かけは待機。
- 署名・シミュレータが直列なのに並列数だけ上げる。
② 直列保障と限定的並列(比較表)
| 観点 | 直列 | 限定的並列 |
|---|---|---|
| 狙い | 整合性最優先で競合を消す | 隔離が揃うときだけ短縮 |
| 向く場面 | 単一キャッシュ・単一画面 | ジョブ別作業域と分割ロック |
| 注意 | ピーク遅延は増えやすい | 前提崩壊で不具合が難解化 |
ヘビー共有領域は先に直列、監視で余裕が見えてから軽量のみ並列へ。
③ FAQ
- 問.ロックで守れる範囲は。
- 協調プロセス間の短い更新区間。パスと権限設計が前提です。
- 問.キュー深度を抑える理由は。
- 無制限だと長時間ブロックと切り分け遅延。上限超えは明示失敗で別レーンへ。
- 問.不安定に見えるときは。
- 待ち中央値・空き容量・スワップを同時に見る。安定性FAQで再接続も確認。
④ パラメータとコマンド例
- 同時実行:共有可変ありならヘビーは原則一、軽量は監視のうえ最大二まで。
- 待ち行列:全体またはレーンで上限、超過は理由付き早期失敗。
- ジョブ上限(分):軽検査十五〜二十五、標準三十五〜六十、アーカイブ四十五〜九十から調整。
- ロック待ち秒:依存・キャッシュ百二十〜三百、極小更新三十〜六十から。p九十五で詰める。
- 安定性:待ち中央値が業務時間に十五分超が継続、空き十五パーセント割れで拡張検討。
flock -n /var/lib/build-locks/shared-deps.lock -- bash -lc 'pod install --deployment'
flock -w 240 /var/lib/build-locks/shared-deps.lock -- bash -lc 'npm ci'
成果物同期の判断とロック単位を揃えます。
⑤ 五ステップ
- 直列資源の棚卸し。
- レーン分割と待ち上限を文書化。
- 資源単位でロックパスを命名。
- ジョブ上限とロック待ち上限を二段設定。
- 固まり・孤児・誤削除のRunbookを一枚化。