はじめに
CPU ベースのスケーリング
レコメンダーは過去の使用状況に基づいて CPU 使用率を評価し、次の式を使用して推奨 CPU サイズを決定します。
例
3.8 / 0.53 ≈ 7.2 vCPU と計算し、次に大きい利用可能なサイズ (8 vCPU) に切り上げます。負荷が落ち着き、使用量が 37.5% (1.5 vCPU) を下回ると、レコメンダーはそれに応じて比例してスケールダウンします。
メモリ使用量に基づく推奨事項
- クエリメモリ: クエリ実行中に使用された最大メモリ量
- 常駐メモリ: プロセス全体で保持された最大メモリ量
- OOM イベント: クエリまたはレプリカで最近メモリ不足が発生したかどうか
ヘッドルームの計算方法
- 安定した使用状況 (変動が小さい) : 1.25 倍 — 使用状況が安定しており、予期しない急増が起こりにくいため、ヘッドルームを多めに確保します
- スパイクしやすい使用状況 (変動が大きい) : 1.1 倍 — もともと変動幅の大きいワークロードに対して過剰なプロビジョニングを避けるため、ヘッドルームは少なめになります
最終的な推奨事項
Two-window recommender
- Small Window (3 hours): 直近の使用傾向を捉え、より迅速なスケールダウンを可能にします
- Large Window (30 hours): 複数回に分けて段階的にスケールアップするのではなく、より長いルックバックウィンドウ内で観測された最大使用量まで 1 回でスケールアップできるようにします。これは、スケーリングには時間がかかり、ローカル cache も無効化されるため重要です。そのため、1 回でスケールアップするほうが安全です。