これについて多くの情報を見つけることができないので、私はここで尋ねています...
IOサブシステムワーカー構成)の「Ioスレッド」と「タスク最大スレッド」の設定の主な用途は何ですか?
私が読んだどこでも、「Ioスレッド」はサーバーが処理できる同時リクエストの数を指定し、「タスク最大スレッド」はサーバーが処理できる同時リクエストの最大数であると言っています。
これは、「Ioスレッド」を50に設定すると、JBossが50のブラウザ要求を同時に処理できることを意味しますか?
15秒の時間枠内で1500人の同時ユーザーにサービスを提供できるようにする必要があるサイトがあります。また、各リクエストの完了には3秒以上かかることはありません。これには、ブラウザーが必要とするhtml、js、css、およびすべてのjpgファイルのダウンロードが含まれます。
これは、「Ioスレッド」を100などのより大きな数に設定し、「タスク最大スレッド」を150に設定する必要があることを意味しますか?
「タスクの最大スレッド数」を150、さらには250に設定してみましたが、サイトの速度が低下しているようです。
誰でもこれら2つの設定がどのように機能するか説明できますか?
通常、ユーザー接続ごとに個別のIOスレッドを用意する必要はありません。ただし、速度低下を防ぐために、同時に複数のユーザーと同じ数のタスクスレッドが必要になる場合があります。デフォルトとアプリケーションでどのように機能するかを確認してください。次のサポート記事を参照してください。
EAP 7.2には、効率を上げるために追加のコアスレッド構成があることに注意してください。
更新:より包括的な説明が必要な場合は、完全な Red Hat Enterprise Application Platformパフォーマンスチューニングガイド を確認してください。
更新2:EAP 7はUndertowを使用しているため、IOおよびワーカースレッドの機能を理解するには、 ndertow docs がいくつかの手掛かりを与えるはずです:
IOおよびワーカースレッドの管理
XNIOワーカーは、IOスレッドと、タスクのブロックに使用できるスレッドプールの両方を管理します。通常、非ブロックハンドラーはIO =スレッド。サーブレットの呼び出しなどのブロックタスクはワーカースレッドプールにディスパッチされます。
@akostadinovがドキュメントを参照したときの@IWantSimpleLifeは、設計と、「ブロッキングIO」の動作がハンドラーの動作とどのように分離されているかを説明しています。 「IOスレッド」と「タスク最大スレッド」は直接の関連はありません。 2つの別々のスレッドグループを参照しているためです。 1つ目は「Worker IO threads」で、nioチャネルとイベントをリッスンするIO関連、「読み取り」、「書き込み」ハンドラの最初のグループを記述しています。 。理想的には、IOプール内の1スレッドのみであり、neverブロッキング(ネットワークまたはファイル)処理を実行する必要があります。otherグループは一般に「Worker Task Threads」グループと呼ばれ、ブロッキング作業の実行専用です。この2番目のグループのsettingsの1つは、「Task max threads」サイズになります。