Skip to main content
이 설정은 ClickHouse 서버를 구성하며 ClickHouse 소스에서 자동으로 생성됩니다.

cpu_slot_preemption

CPU 리소스에 대한 워크로드 스케줄링(MASTER THREAD 및 WORKER THREAD)이 어떻게 수행되는지 정의합니다.
  • true인 경우(기본값), 실제로 소비된 CPU 시간을 기준으로 산정합니다. 경쟁하는 workload에 공정한 양의 CPU 시간이 할당됩니다. 슬롯은 제한된 시간 동안 할당되며, 만료되면 다시 요청됩니다. CPU 리소스가 과부하된 경우 슬롯 요청으로 인해 스레드 실행이 차단될 수 있으며, 즉 선점이 발생할 수 있습니다. 이는 CPU 시간의 공정성을 보장합니다.
  • false인 경우, 할당된 CPU 슬롯 수를 기준으로 산정합니다. 경쟁하는 workload에 공정한 수의 CPU 슬롯이 할당됩니다. 슬롯은 스레드가 시작될 때 할당되어 계속 유지되다가, 스레드 실행이 끝나면 해제됩니다. 쿼리 실행에 할당되는 스레드 수는 1에서 max_threads까지 증가할 수만 있고, 줄어들지는 않습니다. 이 방식은 장시간 실행되는 쿼리에 더 유리하며, 짧은 쿼리가 CPU를 할당받지 못하는 상태를 초래할 수 있습니다.
예시
관련 항목

cpu_slot_preemption_timeout_ms

이 설정은 선점 중, 즉 다른 CPU 슬롯이 부여되기를 기다리는 동안 worker thread가 몇 밀리초까지 대기할 수 있는지를 정의합니다. 이 timeout이 지나도록 스레드가 새 CPU 슬롯을 획득하지 못하면 해당 스레드는 종료되며, 쿼리는 동시에 실행되는 스레드 수를 더 적은 수준으로 동적으로 줄입니다. master thread는 절대 축소되지 않지만, 무기한 선점될 수 있습니다. 이 설정은 cpu_slot_preemption이 활성화되어 있고 CPU 리소스가 WORKER THREAD에 대해 정의된 경우에만 의미가 있습니다. 예시
관련 항목

cpu_slot_quantum_ns

스레드가 CPU 슬롯을 획득한 후, 다른 CPU 슬롯을 다시 요청하기 전까지 사용할 수 있는 CPU 나노초 수를 정의합니다. cpu_slot_preemption이 활성화되어 있고 MASTER THREAD 또는 WORKER THREAD에 대해 CPU 리소스가 정의된 경우에만 의미가 있습니다. 예시
관련 항목
마지막 수정일 2026년 7월 23일