Skip to main content
Оверкоммит памяти — это экспериментальный метод, предназначенный для более гибкой настройки лимитов памяти для запросов. Суть этого метода заключается во введении настроек, которые задают гарантированный объём памяти, доступный запросу. Когда оверкоммит памяти включен и достигнут лимит памяти, ClickHouse выбирает запрос с наибольшим оверкоммитом и пытается освободить память, завершая этот запрос. При достижении лимита памяти любой запрос некоторое время ожидает при попытке выделить новую память. Если тайм-аут истёк и память была освобождена, запрос продолжает выполнение. В противном случае генерируется исключение, и запрос завершается. Выбор запроса для остановки или завершения выполняется либо глобальным трекером оверкоммита, либо пользовательским трекером оверкоммита — в зависимости от того, какой лимит памяти был достигнут. Если трекер оверкоммита не может выбрать запрос для остановки, генерируется исключение MEMORY_LIMIT_EXCEEDED.

Трекер оверкоммита пользователя

Трекер оверкоммита пользователя находит в списке запросов пользователя запрос с самым высоким коэффициентом оверкоммита памяти. Коэффициент оверкоммита памяти для запроса вычисляется как число выделенных байтов, делённое на значение настройки memory_overcommit_ratio_denominator_for_user. Если для запроса значение memory_overcommit_ratio_denominator_for_user равно нулю, трекер оверкоммита не выберет этот запрос. Тайм-аут ожидания задаётся настройкой memory_usage_overcommit_max_wait_microseconds. Пример

Глобальный трекер оверкоммита

Глобальный трекер оверкоммита находит среди всех запросов запрос с самым большим коэффициентом оверкоммита памяти. В этом случае коэффициент оверкоммита памяти вычисляется как число выделенных байтов, делённое на значение настройки memory_overcommit_ratio_denominator. Если для запроса memory_overcommit_ratio_denominator равен нулю, трекер оверкоммита не будет выбирать этот запрос. Тайм-аут ожидания задаётся параметром memory_usage_overcommit_max_wait_microseconds в конфигурационном файле.
Последнее изменение 23 июля 2026 г.