Хост процессов

Хосты процессов управляют выполнением Lua-процессов с помощью планировщика с захватом работы (work-stealing).

Каждый хост планирует процессы независимо. Нагрузка между хостами автоматически не распределяется.

Тип записи

Тип Описание
process.host Хост выполнения процессов с планировщиком

Настройка

- name: main_host
  kind: process.host
  host:
    workers: 8
    queue_size: 1024
    local_queue_size: 256
  lifecycle:
    auto_start: true
Поле Тип По умолчанию Описание
workers int NumCPU Количество воркеров (горутин)
queue_size int 1024 Размер глобальной очереди
local_queue_size int 256 Размер локальной очереди каждого воркера

Планировщик

Планировщик использует захват работы: у каждого воркера есть локальная очередь (deque), а простаивающие воркеры забирают задачи из глобальной очереди или у других воркеров. Это автоматически балансирует нагрузку.

  • Воркеры выполняют процессы параллельно
  • Глобальная очередь хранит ожидающие процессы, когда все воркеры заняты
  • Локальные очереди уменьшают конкуренцию, держа работу ближе к воркерам

Типы процессов

Хосты выполняют записи следующих типов:

Тип Описание
lua.process Lua-процесс из исходного кода
lua.process.bytecode Предкомпилированный Lua-байткод
Дополнительные типы процессов планируются в будущих версиях.

Процессы работают независимо со своим контекстом, общаются через сообщения и находятся под наблюдением для отказоустойчивости.