> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Статья о возможности запланированного масштабирования в ClickHouse Cloud

# Запланированное масштабирование

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Бета</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Возможность в статусе бета</span>
        </a>;
};

<BetaBadge />

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

С помощью запланированного масштабирования вы настраиваете набор правил по времени прямо в консоли ClickHouse Cloud. Каждое правило задаёт дни, в которые оно активно, часы начала и окончания в UTC, а также параметры, применяемые в этот период, — число реплик (горизонтальное масштабирование), минимальный и максимальный объём памяти на реплику (вертикальное масштабирование) и возможность перехода сервиса в бездействующий режим. В течение активного периода ClickHouse Cloud применяет эти параметры, а после его окончания возвращается к конфигурации масштабирования по умолчанию, чтобы сервис был масштабирован должным образом ещё до роста нагрузки, а не реагировал на неё постфактум.

Это отличается от автомасштабирования на основе метрик, которое динамически реагирует на нагрузку CPU и памяти. Запланированное масштабирование детерминировано: вы точно знаете, когда произойдёт масштабирование и до какого размера. Эти два подхода дополняют друг друга — у сервиса может быть базовое расписание масштабирования, и при этом он всё равно может выигрывать от автомасштабирования в этих рамках, если рабочая нагрузка неожиданно меняется.

Сейчас запланированное масштабирование доступно в **бета-версии**.

<div id="setting-up-a-scaling-schedule">
  ## Настройка расписания масштабирования
</div>

Чтобы настроить расписание, перейдите к своему сервису в консоли ClickHouse Cloud и откройте настройки. Затем выберите **Schedule Override** и добавьте новое правило.

<Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/EvPjyFqV5fkDf49u/images/cloud/features/autoscaling/scheduled-scaling-1.webp?fit=max&auto=format&n=EvPjyFqV5fkDf49u&q=85&s=d3e0da773603342034f3dc4a30776c09" size="md" alt="Интерфейс Scaling Schedules в консоли ClickHouse Cloud с правилами масштабирования по времени" border width="748" height="1606" data-path="images/cloud/features/autoscaling/scheduled-scaling-1.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/EvPjyFqV5fkDf49u/images/cloud/features/autoscaling/scheduled-scaling-2.webp?fit=max&auto=format&n=EvPjyFqV5fkDf49u&q=85&s=8ec0081e7906d06e2d7a274877c5dd77" size="md" alt="Настройка правила запланированного масштабирования в консоли ClickHouse Cloud" border width="938" height="534" data-path="images/cloud/features/autoscaling/scheduled-scaling-2.webp" />

Для каждого правила нужно указать:

* **Активные дни:** дни недели, к которым применяется правило
* **Время начала и окончания:** период действия правила, указанный в **UTC** с точностью до целого часа. Период, в котором час окончания раньше часа начала, продолжается ночью до следующего дня
* **Применяемые настройки:** количество реплик, минимальный и максимальный объём памяти на реплику, а также минимальное время бездействия (или отсутствие перехода в режим бездействия), используемые в течение действия периода

Несколько правил можно объединить в полное недельное расписание, если их периоды не пересекаются. Например, одно правило, охватывающее понедельник—пятницу с 06:00 до 20:00 UTC, может поддерживать сервис в большем размере в течение рабочего дня, а за пределами этого периода будет применяться конфигурация по умолчанию.

<div id="use-cases">
  ## Сценарии использования
</div>

**Батч- и ETL-нагрузки:** Увеличивайте масштаб перед запуском ночной задачи по приёму данных и уменьшайте его после её завершения, чтобы избежать избыточного выделения ресурсов в дневные часы простоя.

**Предсказуемые паттерны трафика:** Сервисы со стабильными периодами пиковой нагрузки (например, с трафиком запросов в рабочие часы) можно заранее масштабировать под ожидаемую нагрузку, а не ждать, пока среагирует автомасштабирование.

**Уменьшение масштаба на выходных:** Снижайте число реплик или уровень памяти на выходных, когда спрос ниже, а затем восстанавливайте ресурсы перед утренним всплеском в понедельник.

**Контроль затрат:** Для команд, контролирующих затраты на ClickHouse Cloud, запланированное уменьшение масштаба в периоды заведомо низкой нагрузки может заметно сократить потребление ресурсов без какого-либо ручного вмешательства.

<Note>
  Действие запланированного масштабирования и одновременная рекомендация по автомасштабированию могут взаимодействовать — в момент срабатывания приоритет у расписания.
</Note>

<div id="handling-bursty-workloads">
  ## Обработка всплесков рабочей нагрузки
</div>

Если вы ожидаете всплеск рабочей нагрузки, можно использовать
[ClickHouse Cloud API](/ru/products/cloud/features/admin-features/api/api-overview), чтобы
заранее увеличить масштаб сервиса, а после снижения нагрузки — уменьшить его.

Чтобы понять, сколько ядер CPU и памяти сейчас используется для
каждой из ваших реплик, выполните запрос ниже:

```sql theme={null}
SELECT *
FROM clusterAllReplicas('default', view(
    SELECT
        hostname() AS server,
        anyIf(value, metric = 'CGroupMaxCPU') AS cpu_cores,
        formatReadableSize(anyIf(value, metric = 'CGroupMemoryTotal')) AS memory
    FROM system.asynchronous_metrics
))
ORDER BY server ASC
SETTINGS skip_unavailable_shards = 1
```
