## What — 設定値と決め手の一覧 覚え方の一行: > **CPU は処理の性質(I/O 待ちか計算か)、memory はデータ容量×膨張率、timeout は正常時間の数倍、retry は冪等性とセット。** | 設定 | 値 | 決め手 | |---|---|---| | cpu | `"1"` | 処理の性質(I/O 待ち支配なら 1) | | memory | `"512Mi"` | データ容量 × パース膨張率 | | timeout | `"900s"` | 正常時間(数分)の数倍 | | max_retries | `1` | 冪等だが、失敗原因は再試行で直らない系 | | schedule | 早朝の日次 | 下流(dbt)の開始より前+日次で提供遅延に追従 | | Scheduler retry | 3回 / 30〜300s | dispatch HTTP 失敗時のみ。リポジトリ多数派パターン | 行ごとの根拠は2本に分けた。cpu・memory は [[Cloud Run Jobのcpuとmemoryの決め方]]、schedule・retry は [[Jobのスケジュールとリトライは下流から逆算する]]。 ## How — 最小で始めて、実測で上げる 実測データから逆算して最小で始め、破綻したら実測で上げる。 この方針の例外が timeout だ。`"900s"` は正常時間(数分)の数倍に置いてある。モジュール既定の 3600s をあえて短縮した値で、**timeout は性能チューニングではなく、ハング時の課金ストッパー**として使う。「正常なら届かない、ハングしたら無限課金しない」上限、と考えると迷わない。 そして数字より効くのが、根拠を言葉にしておくこと。実際の PR レビューでは「この時刻にしてる理由は?」と時刻の根拠を指摘された。値そのものより、**なぜその値かを1行で言えるか**が見られている。 リポジトリの前例:別の大容量変換 Job は 4Gi で OOM した実績があって 8Gi に増強、また別の Job は「OOM が出たら上げる」コメント付きの 4Gi。最初から盛らない文化。 ## 関連 - [[Google Cloud]] - [[Cloud Run Jobのcpuとmemoryの決め方]] — リソース側の根拠 - [[Jobのスケジュールとリトライは下流から逆算する]] — 実行タイミングと失敗時の設計 - [[APIとJobの違い]] - [[Cloud StorageとBigQuery]]