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 설정도 살펴보세요. 예를 들면:
number_of_free_entries_in_pool_to_lower_max_size_of_mergenumber_of_free_entries_in_pool_to_execute_mutationnumber_of_free_entries_in_pool_to_execute_optimize_entire_partition
예시
<background_pool_size>16</background_pool_size>
background_streaming_schedule_pool_size
스트리밍 백그라운드 작업을 실행하는 데 사용되는 최대 스레드 수예요.