Web Server では、接続はまず、HTTP リスナーに関連付けられたアクセプタスレッドによって受け付けられます。アクセプタスレッドが接続を受け付け、それを接続キューに入れます。次に、要求処理スレッドが接続キュー内の接続を取り出し、その要求を処理します。詳細については、「接続処理の概要」を参照してください。
接続キュー情報には、接続キュー内のセッション数と、接続が要求処理スレッドによって受け付けられるまでの平均遅延が表示されます。
次に、perfdump でのそれらの統計の表示例を示します。
ConnectionQueue: ----------------------------------------- Current/Peak/Limit Queue Length 0/1853/160032 Total Connections Queued 11222922 Average Queue Length (1, 5, 15 minutes) 90.35, 89.64, 54.02 Average Queueing Delay 4.80 milliseconds
管理コンソールまたはコマンド行インタフェースではこれと同じ情報が異なる形式で表示されます。ただし、若干の相違はあります。次の表に、管理コンソールでサーバーインスタンスの監視情報にアクセスした際に表示される情報を示します。
表 2–2 接続キューの統計
現在の待機接続の数 |
0 |
待機接続の合計数 |
11222922 |
最近 1 分の平均接続数 |
90.35 |
最近 5 分の平均接続数 |
89.64 |
最近 15 分の平均接続数 |
54.02 |
最大キューサイズ |
160032 |
最大キューサイズ |
1853 |
オーバーフロー接続の数 |
0 |
消費したティック |
5389284274 |
追加した接続の合計数 |
425723 |
Current/Peak/Limit queue length には、次の情報が順に表示されます。
キュー内に現在存在している接続の数。
キュー内に同時に存在していた接続の最大数。
接続キューの最大サイズ。この数値は次のようになります。
最大キューサイズ = スレッドプールキューサイズ + 最大スレッド数 + キープアライブキューサイズ
接続キューがいっぱいになると、新しい接続が無視されます。
ピークキュー長 (最大キューサイズ) が制限に近くなった場合には、最大接続キューサイズを増やすことで、高負荷時に接続が無視されるのを回避できます。
管理コンソールで最大接続キューサイズを増やすには、構成の「パフォーマンス」タブ ⇒「HTTP」サブタブにある、スレッドプールの「キューサイズ」フィールドの値を変更します。デフォルトは 1024 です。
コマンド行インタフェースを使ってキューサイズを変更するには、wadm set-thread-pool-prop コマンドの queue-size プロパティーを使用します。
Total Connections Queued は、これまで接続がキューに入れられた回数の合計値です。この数値には、新しく受け付けられた接続と、キープアライブシステムからの接続が含まれます。
この設定はチューニング不可能です。
Average Queue Length には、直前の 1 分間、5 分間、および 15 分間におけるキュー内の平均接続数が表示されます。
この設定はチューニング不可能です。
Average Queueing Delay は、接続が接続キュー内で費やす時間の平均値です。これは、ある要求の接続がサーバーによって受け付けられてから、要求処理スレッドがその要求の処理を開始するまでの遅延を表します。これは、「消費したティック」を「待機接続の合計数」で割った結果をミリ秒に変換したものになります。
この設定はチューニング不可能です。
ティックはシステムに依存する値であり、stats.xml 内の server 要素の tickPerSecond 属性によって提供されます。消費したティックの値は、接続が接続キュー内で費やした時間の合計であり、平均キュー遅延を計算するために使用されます。
この設定はチューニング不可能です。
接続キューに追加された新しい接続の数。この設定はチューニング不可能です。