Добавление вычислительных ресурсов

Иногда при работе с кликами возникают проблемы с производительностью из-за полного использования имеющихся ресурсов и, как следствие, деградации запросов. В таких случаях нужно увеличить объём вычислительных ресурсов.
Вычислительные ресурсы — это инстансы ClickHouse: серверы с выделенными процессорами (CPU) и оперативной памятью (RAM). Чаще всего пользователям достаточно регулировать только число инстансов.

Важно

Чтобы настроить клику, у вас должно быть право manage на эту клику. Проверьте, есть ли у вас этот тип прав, на вкладке ACL на Панели вкладок в разделе Object permissions.

Добавить вычислительные ресурсы клике можно двумя способами:

  1. Откройте интерфейс клики, как описано в разделе Как перейти в интерфейс клики.

  2. Нажмите кнопку edit speclet в блоке Кнопки действий или Edit speclet на вкладке Speclet на Панели вкладок.

  3. Выберите слева вкладку Resources.

  4. В поле Instances введите количество инстансов для клики от 1 до 100.

    Примечание

    Значение поля по умолчанию — 1. Универсальной рекомендации по выбору количества инстансов нет: параметр зависит от ваших задач и подбирается опытным путём. Советуем начать со значения по умолчанию.

  5. Чтобы применить изменения, нажмите кнопку Confirm.

  1. Установите CHYT CLI в составе пакета ytsaurus-client, если вы этого ещё не сделали.

  2. Сохраните адрес прокси в переменную окружения. Это нужно, чтобы не указывать кластер YTsaurus в каждой команде через аргумент --proxy.

    export YT_PROXY=<cluster_name>
    
  3. Задайте переменную окружения с адресом контроллера:

    export CHYT_CTL_ADDRESS=<address>
    

    , где <address> — адрес контроллера. Например, для демо-кластера адрес имеет вид: https://strawberry-XXXXXXXX.demo.ytsaurus.tech.
    Адрес контроллера можно получить из поля controller из результата выполнения команды

    yt get //sys/strawberry/chyt/<alias>/@strawberry_info_state
    
  4. Сохраните в переменную окружения имя кластера:

    export CLUSTER_NAME=<cluster_name>
    

    , где <cluster_name> — имя кластера. Например, имя демо-кластера: ytdemo.

  5. Установите нужное количество инстансов с помощью опции instance_count:

    yt clickhouse ctl set-option instance_count COUNT --alias chyt_example_clique
    

    , где COUNT — количество инстансов.

Продвинутые настройки вычислительных ресурсов

Важно

Эти опции предназначены для опытных пользователей. Если вы не уверены, нужны ли они вам, оставьте значения по умолчанию.

К продвинутым настройкам относятся параметры CPU и RAM для каждого инстанса. При выборе значений CPU и RAM учитывайте физические ресурсы ваших серверов и потребности базовых операций с кликами.

Рекомендуемые значения:

  • от 1 до 100 ядер CPU на инстанс;
  • от 20 до 300 ГБ RAM на инстанс.

Важно

Выбирайте значения опций так, чтобы они не превышали физические ресурсы серверов. Например, на сервере с 10 ядрами CPU и 40 ГБ памяти нельзя выделить инстанс с 16 ядрами и 65 ГБ.

Установить значения опций Instance CPU и Instance Total Memory можно через:

  1. Откройте интерфейс клики, как описано в разделе Как перейти в интерфейс клики.
  2. Нажмите кнопку edit speclet в блоке Кнопки действий или Edit speclet на вкладке Speclet на Панели вкладок.
  3. Выберите слева вкладку Resources.
  4. В поле Instance CPU укажите количество ядер CPU на инстанс.
  5. В поле Instance Total Memory укажите объём оперативной памяти RAM на инстанс.
  6. Чтобы сохранить настройки, нажмите кнопку Confirm.
  1. Установите CHYT CLI в составе пакета ytsaurus-client, если вы этого ещё не сделали.

  2. Сохраните адрес прокси в переменную окружения. Это нужно, чтобы не указывать кластер YTsaurus в каждой команде через аргумент --proxy.

    export YT_PROXY=<cluster_name>
    
  3. Задайте переменную окружения с адресом контроллера:

    export CHYT_CTL_ADDRESS=<address>
    

    , где <address> — адрес контроллера. Например, для демо-кластера адрес имеет вид: https://strawberry-XXXXXXXX.demo.ytsaurus.tech.
    Адрес контроллера можно получить из поля controller из результата выполнения команды

    yt get //sys/strawberry/chyt/<alias>/@strawberry_info_state
    
  4. Сохраните в переменную окружения имя кластера:

    export CLUSTER_NAME=<cluster_name>
    

    , где <cluster_name> — имя кластера. Например, имя демо-кластера: ytdemo.

  5. Установите нужное количество CPU, которое будет выделено под каждый инстанс клики с помощью опции instance_cpu:

    yt clickhouse ctl set-option instance_cpu CPU_AMOUNT --alias chyt_example_clique
    

    , где CPU_AMOUNT — количество ядер CPU.

  6. Установите нужный объём RAM, которое будет выделено под каждый инстанс клики с помощью опции instance_total_memory:

    yt clickhouse ctl set-option instance_total_memory RAM_AMOUNT --alias chyt_example_clique
    

    , где RAM_AMOUNT — количество оперативной памяти RAM в ГБ.

Учитывайте, что при включённой опции Restart on speclet change, изменение любых настроек приведёт к автоматическому перезапуску клики, при этом перезапуск займёт некоторое время. Опцию Restart on speclet change можно включить на вкладке General в диалоговом окне интерфейса спеклета.