プロセスホスト

プロセスホストはワークスティーリングスケジューラを使用してLuaプロセスの実行を管理します。

各ホストは独立してプロセスをスケジュールします。ホスト間で自動的に負荷が分散されることはありません。

エントリ種別

種別 説明
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 ワーカーgoroutine
queue_size int 1024 グローバルキュー容量
local_queue_size int 256 ワーカーごとのローカルdequeサイズ

スケジューラ

スケジューラはワークスティーリングを使用します:各ワーカーはローカルdequeを持ち、アイドル状態のワーカーはグローバルキューまたは他のワーカーからスティールします。これにより自動的に負荷が分散されます。

  • ワーカーはプロセスを同時に実行
  • グローバルキューはすべてのワーカーがビジー状態のとき保留中のプロセスを保持
  • ローカルキューはワーカーの近くに作業を保持することで競合を削減

プロセスタイプ

プロセスホストは以下の種別のエントリを実行します:

種別 説明
lua.process ソースベースのLuaプロセス
lua.process.bytecode プリコンパイル済みLuaバイトコード
追加のプロセス種別は将来のリリースで計画されています。

プロセスは独自のコンテキストを持って独立して実行され、メッセージを介して通信し、フォールトトレランスのために監視されます。