background_* 서버 설정

background_* 서버 설정 (스레드 풀)

이 페이지에서는 백그라운드 작업에 사용되는 스레드 풀 크기를 제어하는 background_* 계열 서버 설정을 설명할게요. Buffer 테이블 플러시, MergeTree 가비지 컬렉션, 분산 전송, 파트 fetch, 파트 이동, 병합 등 다양한 백그라운드 작업에 각각 별도의 풀이 사용돼요.

출처: 문서

본문

이 설정들은 ClickHouse 서버를 구성하며, ClickHouse 소스에서 자동으로 생성돼요.

background_buffer_flush_schedule_pool_size

Buffer-engine 테이블의 플러시 작업을 백그라운드에서 수행하는 데 사용되는 최대 스레드 수예요.

background_common_pool_size

*MergeTree-engine 테이블의 다양한 작업(대부분 가비지 컬렉션)을 백그라운드에서 수행하는 데 사용되는 최대 스레드 수예요.

background_distributed_schedule_pool_size

분산 전송(distributed sends)을 실행하는 데 사용되는 최대 스레드 수예요.

background_fetches_pool_size

*MergeTree-engine 테이블의 데이터 파트를 다른 레플리카에서 가져오는 데 사용되는 최대 스레드 수예요.

background_message_broker_schedule_pool_size

메시지 스트리밍을 위한 백그라운드 작업을 실행하는 데 사용되는 최대 스레드 수예요.

background_move_pool_size

*MergeTree-engine 테이블의 데이터 파트를 다른 디스크나 볼륨으로 이동하는 데 사용되는 최대 스레드 수예요.

background_pool_size

MergeTree 엔진 테이블의 백그라운드 병합과 mutation을 수행하는 스레드 수를 설정해요.

  • 이 설정은 ClickHouse 서버 시작 시 하위 호환성을 위해 default 프로필 구성에서도 적용될 수 있어요.
  • 런타임에는 스레드 수를 늘리기만 할 수 있어요.
  • 스레드 수를 줄이려면 서버를 재시작해야 해요.
  • 이 설정을 조정하면 CPU와 디스크 부하를 관리할 수 있어요.

풀 크기가 작으면 CPU와 디스크 리소스를 덜 사용하지만, 백그라운드 프로세스가 더 느리게 진행되어 결국 쿼리 성능에 영향을 줄 수 있어요. 변경하기 전에 관련 MergeTree 설정도 살펴보세요. 예를 들면:

예시

<background_pool_size>16</background_pool_size>

background_streaming_schedule_pool_size

스트리밍 백그라운드 작업을 실행하는 데 사용되는 최대 스레드 수예요.

더 알아보기 (Learn more)