16.4. 高度な Undertow 設定
16.4.1. IO 設定 リンクのコピーリンクがクリップボードにコピーされました!
PAXWEB-1255 以降、リスナーによって使用される XNIO ワーカーおよびバッファープールの設定を変更できます。undertow.xml テンプレートには、一部の IO 関連のパラメーターのデフォルト値を指定するセクションがあります。
以下の buffer-pool
パラメーターを指定できます。
buffer-size
- IO 操作に使用されるバッファーのサイズを指定します。指定のない場合は、利用可能なメモリーに応じてサイズが計算されます。
direct-buffers
- java.nio.ByteBuffer#allocateDirect または java.nio.ByteBuffer#allocate を使用するかどうかを決定します。
以下の worker
パラメーターを指定できます。
io-threads
- ワーカーに作成する I/O スレッドの数。指定のない場合は、スレッドの数が CPU の数の 2 倍に設定されます。
task-core-threads
- コアタスクスレッドプールのスレッド数。
task-max-threads
- ワーカータスクスレッドプールの最大スレッド数。指定のない場合は、最大スレッドの数が CPU の数の 16 倍に設定されます。
16.4.2. ワーカー IO 設定 リンクのコピーリンクがクリップボードにコピーされました!
Undertow スレッドプールおよびその名前はサービスごとまたはバンドルベースで設定できるので、Hawtio コンソールからの監視やデバッグの効率が向上します。
バンドル Blueprint 設定ファイル (通常は Maven プロジェクトの src/main/resources/OSGI-INF/blueprint
ディレクトリーに保存される) では、以下の例のように workerIOName および ThreadPool を設定できます。
例16.1 workerIOName および ThreadPool 設定の httpu:engine-factory 要素
<httpu:engine-factory> <httpu:engine port="9001"> <httpu:threadingParameters minThreads="99" maxThreads="777" workerIOThreads="8" workerIOName="WorkerIOTest"/> </httpu:engine> </httpu:engine-factory>
<httpu:engine-factory>
<httpu:engine port="9001">
<httpu:threadingParameters minThreads="99" maxThreads="777" workerIOThreads="8" workerIOName="WorkerIOTest"/>
</httpu:engine>
</httpu:engine-factory>
以下の threadingParameters
を指定できます。
minThreads
- ワーカータスクスレッドプールのコアスレッドの数を指定します。通常、これは CPU コアごとに少なくとも 10 個必要です。
maxThreads
- ワーカータスクスレッドプールの最大スレッド数を指定します。
以下の worker
パラメーターを指定できます。
workerIOThreads
- ワーカーに作成する I/O スレッドの数を指定します。指定されていない場合は、デフォルト値が選択されます。デフォルトとして妥当な設定は、CPU コアごとに 1 つの IO スレッドです。
workerIOName
- ワーカーの名前を指定します。指定されていない場合には、デフォルトの "XNIO-1" が選択されます。