プロセスホスト
プロセスホストはワークスティーリングスケジューラを使用して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バイトコード |
プロセスは独自のコンテキストを持って独立して実行され、メッセージを介して通信し、フォールトトレランスのために監視されます。