Skip to main content
Эти настройки определяют конфигурацию сервера ClickHouse и генерируются автоматически на основе исходного кода ClickHouse.

columns_cache_free_memory_ratio

Доля лимита памяти сервера (max_server_memory_usage), которую кэш столбцов оставляет свободной для запросов. Память кэша учитывается в том же лимите, что и память запросов, поэтому фактический размер кэша уменьшается, пока остальные компоненты сервера потребляют больше, чем max_server_memory_usage * (1 - columns_cache_free_memory_ratio) - columns_cache_size, и снова возвращается к columns_cache_size, когда это потребление снижается. Кроме того, при выделении памяти, которое привело бы к превышению лимита, данные сначала вытесняются из кэша и лишь затем запрос останавливается. Аналогично page_cache_free_memory_ratio. Действующий лимит отображается в CurrentMetrics.ColumnsCacheSizeLimit, тогда как system.server_settings по-прежнему показывает заданное в конфигурации значение columns_cache_size.

columns_cache_history_window_ms

Определяя допустимый для себя объём памяти, кэш столбцов учитывает пиковое потребление памяти остальной частью сервера за указанное количество миллисекунд (и за такое же предшествующее окно). Благодаря этому кратковременный спад потребления памяти не приводит к тому, что кэш разрастается, а через мгновение его данные снова вытесняются. Аналогично page_cache_history_window_ms.

columns_cache_policy

Название политики кэша столбцов.

columns_cache_size

Максимальный размер (в байтах) кэша столбцов, в котором хранятся десериализованные столбцы из таблиц семейства MergeTree. Кэш столбцов избавляет от повторной декомпрессии и десериализации часто запрашиваемых столбцов. Кэш используется, если включён параметр уровня запроса use_columns_cache. Если этот параметр не задан в конфигурации сервера, размер кэша составляет долю columns_cache_size_to_ram_ratio от доступной серверу памяти (по умолчанию 10%), поэтому на сервере с большим объёмом памяти кэш оказывается достаточно большим, чтобы вместить рабочий набор более тяжёлых запросов. Встроенное значение этого параметра используется, только если объём памяти определить не удаётся. Как и для других кэшей, размер ограничен значением cache_size_to_ram_max_ratio. Ограничение распространяется на память, удерживаемую кэшем: для каждой записи учитывается выделенный размер её столбца, который может превышать логический размер содержащихся в нём строк, а также небольшие накладные расходы на саму запись. system.columns_cache показывает ту же величину для каждой записи, а CurrentMetrics.ColumnsCacheBytes — её суммарное значение. system.server_settings показывает значение этого параметра в том виде, в каком оно задано в конфигурации. Фактически действующее ограничение может быть ниже, когда остальной части сервера не хватает памяти (см. columns_cache_free_memory_ratio); это значение публикуется отдельно как CurrentMetrics.ColumnsCacheSizeLimit.
Значение 0 означает, что кэш отключён.Этот параметр можно изменять во время работы сервера, изменения вступают в силу немедленно.

columns_cache_size_ratio

Доля размера защищённой очереди (при использовании политики SLRU) в кэше столбцов относительно общего размера кэша.

columns_cache_size_to_ram_ratio

Размер кэша столбцов в виде доли памяти, доступной серверу. Используется, если columns_cache_size не задан в конфигурации сервера: тогда размер кэша вычисляется как эта доля оперативной памяти (с учётом ограничения cache_size_to_ram_max_ratio). Благодаря этому на крупном сервере кэш способен вместить рабочий набор данных для более тяжёлых запросов, а небольшой сервер отдаёт под него лишь малую часть своей памяти. Память выделяется только по мере необходимости и только тогда, когда запросы выполняются с включённой настройкой use_columns_cache. Значение 0 отключает кэш, если только columns_cache_size не задан явно.