Хост процессов
Хосты процессов управляют выполнением 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-байткод |
Процессы работают независимо со своим контекстом, общаются через сообщения и находятся под наблюдением для отказоустойчивости.