jemalloc_* 서버 설정
jemalloc_* 서버 설정
이 페이지에서는 jemalloc 할당기의 trace_log 저장, 백그라운드 스레드 수, 전용 arenas, 프로파일러 샘플링 비율 등을 제어하는 jemalloc_* 계열 서버 설정을 설명할게요.
출처: 문서
본문
이 설정들은 ClickHouse 서버를 구성하며, ClickHouse 소스에서 자동으로 생성돼요.
jemalloc_collect_global_profile_samples_in_trace_log
jemalloc의 샘플링된 할당을 system.trace_log에 저장해요.
jemalloc_max_background_threads_num
생성할 jemalloc 백그라운드 스레드의 최대 수예요. 0으로 설정하면 jemalloc의 기본값을 사용해요.
jemalloc_merge_tree_arenas
오래 사는 MergeTree 파트별·테이블별 메타데이터를 위한 전용 jemalloc arenas 수예요. 0은 전용 arena를 비활성화해요 (메타데이터는 기본 per-CPU arenas를 사용해요). 1은 단일 공유 arena를 사용해요. N > 1은 N개의 arenas 풀을 만들고 CPU별로 할당을 라우팅해요; 많은 코어 머신에서 단일 arena의 잠금에 메타데이터 할당이 직렬화되는 것을 피해요. 프로세스가 실행될 수 있는 CPU 수(affinity mask)로 상한이 정해지므로, 큰 값(또는 코어 수)은 허용된 CPU당 arena 하나를 만들게 돼요. 시작 시 적용돼요.
jemalloc_profiler_sampling_rate
jemalloc의 lg_prof_sample을 제어해요 — 할당 샘플 사이 평균 간격(바이트)의 밑이 2인 로그예요. 기본값 19는 512 KiB에 해당해요. 더 작은 값으로 설정하면 샘플링 빈도가 높아지고(오버헤드 증가, 더 자세함), 더 큰 값은 낮춰요. 이 값을 변경하면 모든 누적 프로파일링 통계를 재설정하는 prof.reset을 호출해요. 프로파일링이 활성화되어 있어야 해요 (MALLOC_CONF=prof:true).