Перейти к содержимому

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

Хосты процессов управляют выполнением 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
ПолеТипПо умолчаниюОписание
workersintNumCPUКоличество воркеров (горутин)
queue_sizeint1024Размер глобальной очереди
local_queue_sizeint256Размер локальной очереди каждого воркера

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

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

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

ТипОписание
process.luaLua-процесс из исходного кода
process.lua.bcПредкомпилированный Lua-байткод
process.wasmWebAssembly-процесс (экспериментально)

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