メインコンテンツへスキップ

概要

サーバーは、さまざまな理由で過負荷になることがあります。現在の CPU 過負荷を判定するために、 ClickHouse server は CPU の待機時間 (OSCPUWaitMicroseconds メトリック) とビジー時間 (OSCPUVirtualTimeMicroseconds メトリック) の比率を計算します。サーバーが一定の比率を超えて過負荷になっている場合は、 負荷のさらなる増加を防ぐために、一部のクエリを破棄したり、場合によっては接続リクエストを拒否したりするのが適切です。 CPU が何らかの有用な処理を行っていると見なすための最小ビジー時間を制御する server setting os_cpu_busy_time_threshold があります。OSCPUVirtualTimeMicroseconds メトリックの現在値がこの値を下回る場合、 CPU 過負荷は 0 と見なされます。

クエリの拒否

クエリの拒否動作は、クエリレベルの設定 min_os_cpu_wait_time_ratio_to_throwmax_os_cpu_wait_time_ratio_to_throw によって制御されます。これらの設定が有効で、min_os_cpu_wait_time_ratio_to_throwmax_os_cpu_wait_time_ratio_to_throw より小さい場合、過負荷率が少なくとも min_os_cpu_wait_time_ratio_to_throw に達すると、 一定の確率でクエリが拒否され、SERVER_OVERLOADED エラーが発生します。その確率は、 最小比率と最大比率の間の線形補間によって決まります。たとえば、min_os_cpu_wait_time_ratio_to_throw = 2max_os_cpu_wait_time_ratio_to_throw = 6cpu_overload = 4 の場合、クエリは 0.5 の確率で拒否されます。

接続の切断

接続の切断は、サーバーレベルの設定 min_os_cpu_wait_time_ratio_to_drop_connectionmax_os_cpu_wait_time_ratio_to_drop_connection で制御されます。これらの設定は、サーバーを再起動せずに変更できます。これらの設定の考え方は、 クエリの拒否と同様です。異なるのは、この場合、サーバーが過負荷になると、 接続の試行がサーバー側で拒否される点だけです。

リソース過負荷の警告

ClickHouse は、サーバーが過負荷状態になると、CPU とメモリの過負荷に関する警告も system.warnings テーブルに記録します。これらのしきい値は、サーバー設定でカスタマイズできます。

<resource_overload_warnings>
    <cpu_overload_warn_ratio>0.9</cpu_overload_warn_ratio>
    <cpu_overload_clear_ratio>0.8</cpu_overload_clear_ratio>
    <cpu_overload_duration_seconds>600</cpu_overload_duration_seconds>
    <memory_overload_warn_ratio>0.9</memory_overload_warn_ratio>
    <memory_overload_clear_ratio>0.8</memory_overload_clear_ratio>
    <memory_overload_duration_seconds>600</memory_overload_duration_seconds>
</resource_overload_warnings>
最終更新日 2026年6月10日