Перейти к основному содержанию

Введение

Автоматическое масштабирование ресурсов базы данных требует тщательного баланса: слишком медленное увеличение ресурсов может привести к ухудшению производительности, а слишком агрессивное уменьшение — вызвать постоянные колебания. ClickHouse Cloud позволяет быстрее уменьшать ресурсы, сводить к минимуму колебания масштабирования и существенно снижать затраты на инфраструктуру при переменной рабочей нагрузке, сохраняя при этом стабильность, необходимую для баз данных в продакшне, за счет сочетания двухоконного механизма рекомендаций с системой рекомендаций по CPU на основе отслеживания целевого значения.

Масштабирование на основе CPU

Масштабирование CPU основано на методе отслеживания целевого значения, который рассчитывает, какой объем CPU нужно выделить, чтобы поддерживать загрузку на целевом уровне. Масштабирование запускается только в том случае, если текущая загрузка CPU выходит за пределы заданного диапазона: Рекомендатель оценивает загрузку CPU на основе исторических данных и определяет рекомендуемый объем CPU по следующей формуле:
Если загрузка CPU составляет от 37.5% до 75% от выделенной мощности, никаких действий по масштабированию не предпринимается. За пределами этого диапазона рекомендатель точно рассчитывает, сколько ресурсов нужно, чтобы вернуть загрузку к 53%, и сервис масштабируется соответствующим образом.

Пример

Для сервиса выделено 4 vCPU, и в какой-то момент потребление возрастает до 3.8 vCPU (~95% утилизации), превышая верхний порог в 75%. Рекомендатель вычисляет: 3.8 / 0.53 ≈ 7.2 vCPU, а затем округляет результат вверх до следующего доступного размера (8 vCPU). Когда нагрузка снижается и потребление опускается ниже 37.5% (1.5 vCPU), рекомендатель пропорционально уменьшает выделенные ресурсы.

Рекомендации на основе памяти

ClickHouse Cloud автоматически рекомендует объем памяти на основе фактического характера использования вашего сервиса. Рекомендатель анализирует использование в окне ретроспективного анализа и добавляет запас ресурсов, чтобы справляться со всплесками нагрузки и предотвращать ошибки нехватки памяти (OOM). Рекомендатель учитывает три сигнала:
  • Память запросов: пиковое потребление памяти во время выполнения запроса
  • Резидентная память: пиковый объем памяти, используемый процессом в целом
  • События OOM: возникала ли недавно нехватка памяти у запросов или реплик

Как рассчитывается запас ресурсов

Для памяти запросов и резидентной памяти объём добавляемого запаса ресурсов зависит от того, насколько предсказуем характер использования:
  • Стабильная нагрузка (низкая вариативность): множитель 1.25x — больший запас ресурсов, поскольку использование стабильно и резкие всплески маловероятны
  • Пиковая нагрузка (высокая вариативность): множитель 1.1x — меньший запас ресурсов, чтобы избежать избыточного выделения ресурсов для рабочих нагрузок, которые и без того сильно колеблются
Если обнаруживаются события OOM, рекомендатель применяет более агрессивный множитель 1.5x, чтобы у сервиса было достаточно памяти для восстановления.

Итоговая рекомендация

Система берёт максимальное значение по всем сигналам:

Двухоконный рекомендатель

Вместо одного окна ClickHouse Cloud использует два окна ретроспективного анализа с разными временными диапазонами:
  • Малое окно (3 часа): отражает недавние паттерны использования и позволяет быстрее уменьшать масштаб
  • Большое окно (30 часов): гарантирует, что масштаб будет увеличен за один шаг до максимального уровня использования, наблюдавшегося в более длинном окне ретроспективного анализа, а не через несколько постепенных увеличений. Это критично, поскольку масштабирование требует времени и сбрасывает локальные кэши; поэтому безопаснее увеличивать масштаб сразу за один шаг.
Каждое окно независимо формирует рекомендацию на основе анализа памяти и CPU. Затем система объединяет эти рекомендации в зависимости от того, какое направление масштабирования предлагает каждое окно, как показано на рисунке ниже: Подробный разбор проектных решений, лежащих в основе рекомендателя, см. в статье “Более интеллектуальное автомасштабирование для ClickHouse: двухоконный подход ”
Последнее изменение 12 июня 2026 г.