Перейти к основному содержимому
Версия: 2.0.x

Рекомендации

В этой теме описаны некоторые системные ограничения и конфигурации, которые необходимо учитывать перед запуском загрузки данных.

Ограничения памяти

Selena предоставляет параметры для ограничения использования памяти для каждого задания загрузки, тем самым уменьшая потребление памяти, особенно в сценариях с высокой параллельностью. Однако не указывайте слишком низкий лимит использования памяти. Если лимит использования памяти слишком низкий, данные могут часто сбрасываться из памяти на диск, потому что использование памяти для заданий загрузки достигает указанного лимита. Мы рекомендуем указывать подходящий лимит использования памяти в зависимости от вашего бизнес-сценария.

Параметры, используемые для ограничения использования памяти, различаются для каждого метода загрузки. Для получения дополнительной информации см. Stream Load, Broker Load, Routine Load, Spark Load и INSERT. Обратите внимание, что задание загрузки обычно выполняется на нескольких BE или CN. Поэтому параметры ограничивают использование памяти каждого задания загрузки на каждом задействованном BE или CN, а не общее использование памяти задания загрузки на всех задействованных BE или CN.

Selena также предоставляет параметры для ограничения общего использования памяти всеми заданиями загрузки, выполняющимися на каждом отдельном BE или CN. Для получения дополнительной информации см. раздел "Системные конфигурации" ниже.

Системные конфигурации

В этом разделе описаны некоторые конфигурации параметров, применимые ко всем методам загрузки, предоставляемым Selena.

Конфигурации FE

Вы можете настроить следующие параметры в файле конфигурации fe.conf каждого FE:

  • max_load_timeout_second и min_load_timeout_second

    Эти параметры указывают максимальный и минимальный периоды тайм-аута каждого задания загрузки. Периоды тайм-аута измеряются в секундах. Максимальный период тайм-аута по умолчанию составляет 3 дня, а минимальный период тайм-аута по умолчанию — 1 секунду. Указанные максимальный и минимальный периоды тайм-аута должны находиться в диапазоне от 1 секунды до 3 дней. Эти параметры действительны как для синхронных, так и для асинхронных заданий загрузки.

  • desired_max_waiting_jobs

    Этот параметр указывает максимальное количество заданий загрузки, которые могут удерживаться в очереди ожидания. Значение по умолчанию — 1024 (100 в версии v1.5.2 и ранее, и 1024 в версии v1.5.2 и позже). Когда количество заданий загрузки в состоянии PENDING на FE достигает указанного максимального числа, FE отклоняет новые запросы загрузки. Этот параметр действителен только для асинхронных заданий загрузки.

  • max_running_txn_num_per_db

    Этот параметр указывает максимальное количество текущих транзакций загрузки, разрешённых в каждой базе данных вашего cluster Selena. Задание загрузки может содержать одну или несколько транзакций. Значение по умолчанию — 100. Когда количество транзакций загрузки, выполняющихся в базе данных, достигает указанного максимального числа, последующие отправленные задания загрузки не планируются. В этой ситуации, если вы отправляете синхронное задание загрузки, задание отклоняется. Если вы отправляете асинхронное задание загрузки, задание удерживается в очереди ожидания.

    примечание

    Selena подсчитывает все задания загрузки вместе и не различает синхронные и асинхронные задания загрузки.

  • label_keep_max_second

    Этот параметр указывает период хранения записей истории для заданий загрузки, которые завершились и находятся в состоянии FINISHED или CANCELLED. Период хранения по умолчанию составляет 3 дня. Этот параметр действителен как для синхронных, так и для асинхронных заданий загрузки.

Конфигурации BE/CN

Вы можете настроить следующие параметры в файле конфигурации be.conf каждого BE или файле конфигурации cn.conf каждого CN:

  • write_buffer_size

    Этот параметр указывает максимальный размер блока памяти. Размер по умолчанию — 100 МБ. Загруженные данные сначала записываются в блок памяти на BE или CN. Когда объём загруженных данных достигает указанного максимального размера блока памяти, данные сбрасываются на диск. Вы должны указать подходящий максимальный размер блока памяти в зависимости от вашего бизнес-сценария.

    • Если максимальный размер блока памяти слишком мал, на BE или CN может быть создано большое количество небольших файлов. В этом случае производительность запросов снижается. Вы можете увеличить максимальный размер блока памяти, чтобы уменьшить количество создаваемых файлов.
    • Если максимальный размер блока памяти слишком велик, удалённые вызовы процедур (RPC) могут истечь по таймауту. В этом случае вы можете настроить значение этого параметра в зависимости от ваших бизнес-потребностей.
  • streaming_load_rpc_max_alive_time_sec

    Период ожидания тайм-аута для каждого процесса Writer. Значение по умолчанию — 1200 секунд. Во время процесса загрузки данных Selena запускает процесс Writer для получения данных и записи данных в каждый tablet. Если процесс Writer не получает никаких данных в течение указанного периода ожидания тайм-аута, Selena останавливает процесс Writer. Когда ваш cluster Selena обрабатывает данные на низких скоростях, процесс Writer может не получить следующую партию данных в течение длительного периода времени и поэтому сообщает об ошибке "TabletWriter add batch with unknown id". В этом случае вы можете увеличить значение этого параметра.

  • load_process_max_memory_limit_bytes и load_process_max_memory_limit_percent

    Эти параметры указывают максимальный объём памяти, который может быть использован для всех заданий загрузки на каждом отдельном BE или CN. Selena определяет меньшее потребление памяти между значениями двух параметров как окончательное разрешённое потребление памяти.

    • load_process_max_memory_limit_bytes: указывает максимальный размер памяти. Максимальный размер памяти по умолчанию — 100 ГБ.

    • load_process_max_memory_limit_percent: указывает максимальное использование памяти. Значение по умолчанию — 30%. Этот параметр отличается от параметра mem_limit. Параметр mem_limit указывает общее максимальное использование памяти вашего cluster Selena, и значение по умолчанию составляет 90% x 90%.

      Если ёмкость памяти машины, на которой находится BE или CN, равна M, максимальный объём памяти, который может быть использован для заданий загрузки, рассчитывается следующим образом: M x 90% x 90% x 30%.

Конфигурации системных переменных

Вы можете настроить следующую системную переменную:

  • insert_timeout

    Длительность тайм-аута INSERT. Единица измерения: секунды. Диапазон значений: от 1 до 259200. Значение по умолчанию: 14400. Эта переменная будет действовать на все операции, связанные с заданиями INSERT (например, UPDATE, DELETE, CTAS, обновление материализованного представления, сбор статистики и PIPE) в текущем соединении.