Skip to main content
これらの設定は ClickHouse server を構成するもので、ClickHouse のソースコードから自動生成されています。

cpu_slot_preemption

CPU リソース (マスタースレッドとワーカースレッド) のワークロードスケジューリングをどのように行うかを定義します。
  • true (デフォルト) の場合、実際に消費された CPU time に基づいて計算されます。競合する workload には、公平な CPU time が割り当てられます。スロットは限られた時間だけ割り当てられ、期限切れ後に再度リクエストされます。CPU リソースが過負荷の場合、スロットのリクエストによってスレッド実行がブロックされることがあり、つまりプリエンプションが発生する可能性があります。これにより、CPU time の公平性が確保されます。
  • false の場合、計算は割り当てられた CPU スロット の数に基づきます。競合する workload には、公平な数の CPU スロット が割り当てられます。スロットはスレッドの開始時に割り当てられ、そのまま保持され、スレッドの実行終了時に解放されます。クエリ実行に割り当てられるスレッド数は 1 から max_threads まで増えることはあっても、減ることはありません。これは長時間実行されるクエリに有利ですが、短時間のクエリでは CPU starvation を引き起こす可能性があります。
関連項目

cpu_slot_preemption_timeout_ms

プリエンプション中、つまり別の CPU スロット が割り当てられるのを待っている間に、ワーカースレッドが待機できる時間をミリ秒単位で定義します。このタイムアウトを過ぎてもスレッドが新しい CPU スロット を取得できない場合、そのスレッドは終了し、クエリは動的にスケールダウンされて、同時実行されるスレッド数が減ります。なお、マスタースレッドがスケールダウンされることはありませんが、無期限にプリエンプトされる可能性があります。これは、cpu_slot_preemption が有効で、かつ CPU リソースが ワーカースレッド に対して定義されている場合にのみ意味があります。
関連項目

cpu_slot_quantum_ns

これは、スレッドが CPU スロットを取得してから次の CPU スロットをリクエストするまでに消費できる CPU ナノ秒数を定義します。cpu_slot_preemption が有効で、かつ CPU リソースがマスタースレッドまたはワーカースレッドに対して定義されている場合にのみ意味があります。
関連項目
最終更新日 2026年7月23日