スケーリングの推奨事項
はじめに
データベースリソースのオートスケーリングでは、慎重なバランスが求められます。スケールアップが遅すぎるとパフォーマンス低下のリスクがあり、逆にスケールダウンを急激に行いすぎると、スケーリングの揺り戻しが絶えず発生するおそれがあります。
ClickHouse Cloud では、2 つのウィンドウに基づく推奨フレームワークと、ターゲット追跡型の CPU 推奨システムを組み合わせることで、変動するワークロードに対して、プロダクションデータベースに必要な安定性を維持しながら、より迅速なスケールダウン、スケーリングの揺り戻しの最小化、インフラストラクチャコストの大幅な削減を実現します。
CPU ベースのスケーリング
CPU スケーリングはターゲットトラッキングに基づいており、使用率を目標レベルに維持するために必要な CPU 割り当て量を正確に算出します。スケーリング アクションがトリガーされるのは、現在の CPU 使用率が設定された範囲を外れた場合のみです。
| Parameter | Value | Meaning |
|---|---|---|
| 目標使用率 | 53% | ClickHouse が維持を目指す使用率レベル |
| 上限しきい値 | 75% | CPU がこのしきい値を超えるとスケールアップをトリガー |
| 下限しきい値 | 37.5% | CPU がこのしきい値を下回るとスケールダウンをトリガー |
レコメンダーは過去の使用実績に基づいて CPU 使用率を評価し、次の式を使用して推奨 CPU サイズを決定します。
CPU 使用率が割り当て容量の 37.5%~75% の範囲内であれば、スケーリングは行われません。この範囲を外れると、レコメンダーは使用率が 53% に戻るように必要な正確なサイズを算出し、それに応じてサービスがスケーリングされます.
例
4 vCPU が割り当てられたサービスで、使用量が 3.8 vCPU (使用率約 95%) まで急増し、75% の高水位を超えたとします。
レコメンダーは次のように計算します: 3.8 / 0.53 ≈ 7.2 vCPU。そして、次に利用可能なサイズ (8 vCPU) に切り上げます。負荷が落ち着いて使用量が 37.5% (1.5 vCPU) を下回ると、レコメンダーはそれに応じて比例的に再びスケールダウンします。
メモリベースの推奨事項
ClickHouse Cloud は、サービスの実際の使用パターンに基づいて、適切なメモリサイズを自動的に推奨します。 このレコメンダーは、ルックバックウィンドウの使用状況を分析し、急増時にも対応してメモリ不足 (OOM) エラーを防げるよう、余裕分を加味します。
このレコメンダーでは、次の 3 つのシグナルを参照します。
- クエリメモリ: クエリ実行中に使用されたピークメモリ
- 常駐メモリ: プロセス全体で保持されたピークメモリ
- OOM イベント: クエリまたはレプリカで最近メモリ不足が発生したかどうか
余裕分の計算方法
クエリメモリと常駐メモリでは、追加する余裕分の大きさは、使用量の予測しやすさによって異なります。
- 安定した使用量 (変動が小さい) : 1.25 倍 — 使用量が安定しており、予期しないスパイクが発生しにくいため、余裕分を多めに取ります
- 増減の大きい使用量 (変動が大きい) : 1.1 倍 — もともと変動幅の大きいワークロードに対する過剰なプロビジョニングを避けるため、余裕分を少なめに取ります
OOM イベントが検出された場合、サービスが復旧に十分なメモリを確保できるよう、レコメンダーはより積極的な 1.5 倍 を適用します。
最終的な推奨
システムは、すべてのシグナルの中で最も高い値を採用します。
2 ウィンドウ レコメンダー
ClickHouse Cloud では、単一のウィンドウではなく、異なるタイムレンジを持つ 2 つのルックバックウィンドウを使用します。
- Small Window (3 hours): 直近の使用パターンを捉え、より迅速なスケールダウンを可能にします
- Large Window (30 hours): 複数回に分けて段階的にスケールアップするのではなく、より長いルックバックウィンドウ内で観測された最大使用量まで 1 回でスケールアップできるようにします。これは、スケーリングに時間がかかるうえ、ローカルキャッシュが無効化されるため重要です。そのため、1 回でスケールアップするほうが安全です。
各ウィンドウは、メモリと CPU の両方を分析し、それぞれ独立して推奨値を生成します。 その後、システムは以下の図に示すように、各ウィンドウが示すスケーリング方向に基づいて、これらの推奨値を統合します。

レコメンダーの設計上の判断について詳しくは、「ClickHouse のより賢いオートスケーリング: 2 ウィンドウ アプローチ」 を参照してください