• 検索結果がありません。

同時実行スレッド数の制御の概要

JSP 2.0,2.1 JSP ページ ISO-8859-1

2.15  同時実行スレッド数の制御の概要

Web コンテナでは,マルチスレッドでサーブレットのリクエストを処理します。このとき,同時に実行で きるスレッド数に上限を設定できます。これによって,スラッシングなどによるパフォーマンスの低下を防 止できます。また,適切なスレッド数を設定することで,アクセス状況に従ったパフォーマンスのチューニ ングができます。

この節では,同時に実行するスレッド数を制御するための設定について説明します。

この節の構成を次の表に示します。

表 2‒50 この節の構成(同時実行スレッド数の制御)

分類 タイトル 参照先

解説 スレッド数を制御する単位 2.15.1

同時実行スレッド数制御のパラメタ 2.15.2

静的コンテンツやリクエストのエラー処理に使用されるスレッド数 2.15.3 注 「実装」,「設定」,「運用」および「注意事項」について,この機能固有の説明はありません。

2.15.1 スレッド数を制御する単位

同時に実行するスレッド数を制御するには,Web コンテナ単位で制御する方法,Web アプリケーション 単位で制御する方法,および URL グループ単位で制御する方法の 3 種類あります。

• Web コンテナ単位での同時実行スレッド数制御

Web コンテナ上の Web アプリケーション全体で,同時にリクエストを処理するスレッド数を設定し ます。詳細については「2.16 Web コンテナ単位での同時実行スレッド数の制御」を参照してくださ い。

• Web アプリケーション単位での同時実行スレッド数制御

Web コンテナ上の Web アプリケーションごとに,同時にリクエストを処理するスレッド数を設定し ます。Web コンテナ単位での同時実行スレッド数制御より細かい単位でスレッド数を制御できます。

詳細については,「2.17 Web アプリケーション単位での同時実行スレッド数の制御」を参照してくだ さい。

• URL グループ単位での同時実行スレッド数制御

Web アプリケーション内のサーブレットや JavaBeans などの業務ロジックに対応する URL ごとに,

同時にリクエストを処理するスレッド数を設定します。特定の URL へのリクエストを処理する業務ロ ジックを URL グループといいます。URL グループ単位で,同時実行スレッド数を制御するので,Web アプリケーション単位の制御より細かい単位でスレッド数を制御できます。詳細については,「2.18  URL グループ単位での同時実行スレッド数の制御」を参照してください。

それぞれの制御単位の関係について次の図に示します。

図 2‒16 同時実行スレッド数制御の単位の関係

図に示すように,同時実行スレッド数制御のいちばん大きな単位は,Web コンテナ単位となります。Web コンテナ内の Web アプリケーションごとにスレッド数を制御する場合は Web アプリケーション単位で 設定します。さらに,Web アプリケーション内の URL グループごとにスレッド数を制御する場合は URL グループ単位で設定します。スレッド数制御の最小単位は URL グループ単位となります。

スレッド数の制御には包含関係があるので,Web アプリケーション単位でスレッド数を制御する場合は Web コンテナ単位での設定も必要になります。また,URL グループ単位でスレッド数を制御する場合は,

Web コンテナ単位および Web アプリケーション単位での設定も必要になります。

2.15.2 同時実行スレッド数制御のパラメタ

同時実行スレッド数制御をする場合,最大同時実行スレッド数,占有スレッド数,実行待ちキューサイズな どのパラメタでスレッド数を制御します。

ここでは,スレッド数を制御するための主なパラメタについて説明します。

(1) 最大同時実行スレッド数

最大同時実行スレッド数とは,利用できる全体のスレッド数のうち,同時実行スレッド数制御の対象となる リクエストを最大で同時に実行できるスレッド数です。

最大同時実行スレッド数は,Web コンテナ単位,Web アプリケーション単位,および URL グループ単位 で設定します。

(2) 占有スレッド数

占有スレッド数とは,利用できる全体のスレッドのうち,同時実行スレッド数制御の対象となるリクエスト を確実に実行できるスレッド数です。Web アプリケーション単位,および URL グループ単位で設定する ことで,Web アプリケーションごと,または URL グループごとにスレッド数を最低限確保できます。

(3) 実行待ちキューサイズ

同時実行スレッド数制御の対象となるリクエストが,同時実行スレッド数の上限に達した場合に,リクエス トが入るキューサイズを指定できます。キューサイズには,キューに格納するリクエストの個数を指定しま す。

実行待ちキューにリクエストが格納される条件を次に示します。

• 同時実行スレッド数<最大同時実行スレッド数で,かつ同時実行スレッド数≧占有スレッド数の場合 に,使用できる共有スレッド数がないとき

• 同時実行スレッド数≧最大同時実行スレッド数の場合

なお,実行待ちキューに空きがない場合は,リクエストは処理されないで,クライアントにはエラーが返り ます。

実行待ちキューサイズは,Web アプリケーション単位,および URL グループ単位で設定できます。

(4) 共有スレッド数

共有スレッド数とは,利用できるスレッドのうち,占有されないスレッド数です。共有スレッド数には,

Web コンテナの共有スレッド数と,Web アプリケーションの共有スレッド数があります。

• Web コンテナの共有スレッド数

Web コンテナの共有スレッド数とは,Web コンテナ上にデプロイされているすべての Web アプリ ケーションで共有するスレッド数です。

• Web アプリケーションの共有スレッド数

Web アプリケーションの共有スレッド数とは,Web アプリケーションに含まれるすべての処理で共有 するスレッド数です。

なお,共有スレッド数は,最大同時実行スレッド数と占有スレッド数から導き出します。

共有スレッド数の算出のしかたについては,「(5) 共有スレッド数の算出のしかた」を参照してください。

(5) 共有スレッド数の算出のしかた

ここでは,Web コンテナの共有スレッド数と,Web アプリケーションの共有スレッド数の算出のしかた について説明します。なお,Web アプリケーション単位での同時実行スレッド数制御の設定をしている場 合の,Web アプリケーションの共有スレッド数は,URL グループ単位の同時実行スレッド数制御を設定し ているかどうかで異なります。

また,URL グループには共有スレッド数はありません。Web アプリケーション内に URL グループ単位の 同時実行スレッド数制御を設定している場合は,Web アプリケーション単位の共有スレッド数を使用しま す。

• Web コンテナの共有スレッド数

Web コンテナ上に,占有スレッド数を設定した Web アプリケーションがある場合の共有スレッド数 は,次のとおりです。

Web コンテナの共有スレッドの総数=

Web コンテナの最大同時実行スレッド数−Web アプリケーション単位の占有スレッド数の合計 注※ Web コンテナにデプロイされているすべての Web アプリケーションに設定されている,占 有スレッド数の合計となります。

各 Web アプリケーションに設定した占有スレッド数は,Web アプリケーションで最低限確保するた めのスレッド数です。このスレッド数は,ほかの Web アプリケーションのリクエスト処理には使用さ れません。

• Web アプリケーションの共有スレッド数(URL グループ単位の同時実行スレッド数制御を設定してい る場合)

Web アプリケーションの共有スレッド数=

Web アプリケーション単位の最大同時実行スレッド数−URL グループ単位の占有スレッド数の合 計

注※ Web アプリケーション内に設定されているすべての URL グループの占有スレッド数の合計 です。

• Web アプリケーションの共有スレッド数(URL グループ単位の同時実行スレッド数制御を設定してい ない場合)

Web アプリケーションの共有スレッド数=

Web アプリケーション単位の最大同時実行スレッド数

同時実行スレッド数が,次の図に示すとおり設定されている場合の,Web コンテナおよび Web アプリケー ションの共有スレッド数の算出例を説明します。

図 2‒17 共有スレッド数の算出例

• Web コンテナの共有スレッド数= A−(B の合計)

この図の場合,Web コンテナの共有スレッド数は 7−(2 + 0)で,5 になります。

• Web アプリケーション 1 の共有スレッド数= C−(D の合計)

Web アプリケーション 1 には,URL グループ単位の占有スレッド数が指定されています。この図で は,共有スレッド数は 3−(2 + 0)で,1 になります。

• Web アプリケーション 2 の共有スレッド数= Web コンテナの共有スレッド数

Web アプリケーション 2 には,同時実行スレッド数制御の設定はありません。このため,Web アプリ ケーション 2 の共有スレッド数は,Web コンテナの共有スレッド数が適用されます。この図では,共 有スレッド数は 5 になります。

• Web アプリケーション 3 の共有スレッド数=最大同時実行スレッド数

Web アプリケーション 3 には,URL グループ単位の占有スレッド数が指定されていません。このた め,Web アプリケーション 3 の共有スレッド数は Web アプリケーション 3 の最大同時実行スレッド 数が適用されます。この図では,共有スレッド数は 2 になります。

Outline

関連したドキュメント