8.3.7 同時実行数を最適化するためのチューニングパラメタ

ここでは,同時実行数の最適化で使用するチューニングパラメタの設定方法についてまとめて示します。

<この項の構成>
(1) リクエスト処理スレッド数(インプロセスHTTPサーバ使用時)
(2) Webアプリケーションの同時実行数
(3) Enterprise Beanの同時実行数
(4) CTMで制御する同時実行数

(1) リクエスト処理スレッド数(インプロセスHTTPサーバ使用時)

インプロセスHTTPサーバを使用している場合の,リクエスト処理スレッド数のチューニングパラメタの設定方法について説明します。

次の表に示す項目をSmart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。

表8-6 リクエスト処理スレッド数のチューニングパラメタ(インプロセスHTTPサーバ使用時)

設定項目設定対象設定個所(パラメタ名)
J2EEサーバ起動時に生成するリクエスト処理スレッド数論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.init_threads
Webクライアントとの接続数の上限(リクエスト処理スレッド数の上限)論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.max_connections
Webクライアントとの接続数の上限を超えた場合に使用されるTCP/IPのListenキュー(バックログ)の最大値論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.backlog
予備スレッド数の最大数論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.max_spare_threads
予備スレッド数の最小数論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.min_spare_threads

なお,Webサーバ連携でHitachi Web Serverを使用している場合のチューニングパラメタについては,マニュアル「Hitachi Web Server」を参照してください。

(2) Webアプリケーションの同時実行数

URLグループ単位,Webアプリケーション単位,またはWebコンテナ単位に設定します。

(a) URLグループ単位の同時実行数

URLグループ単位の同時実行数のチューニングパラメタの設定方法について説明します。設定項目ごとに設定方法と設定個所が異なります。

次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。

表8-7 URLグループ単位の同時実行数のチューニングパラメタ(Smart Composer機能で設定する項目)

設定項目設定対象設定個所(パラメタ名)
Webコンテナ単位での最大同時実行スレッド数
(Webサーバ連携時)
論理J2EEサーバ(j2ee-server)webserver.connector.ajp13.max_threads
Webコンテナ単位での最大同時実行スレッド数
(インプロセスHTTPサーバ使用時)
論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.max_execute_threads
Webアプリケーション単位で同時実行数を制御するかどうか論理J2EEサーバ(j2ee-server)webserver.container.thread_control.enabled
デフォルトの実行待ちキューサイズ論理J2EEサーバ(j2ee-server)webserver.container.thread_control.queue_size

次の表に示す項目は,サーバ管理コマンド(cjsetappprop)で設定します。パラメタは,WAR属性ファイルに定義します。

表8-8 URLグループ単位の同時実行数のチューニングパラメタ(サーバ管理コマンド(cjsetappprop)で設定する項目)

設定項目設定個所(パラメタ名)
Webアプリケーション単位での最大同時実行スレッド数<thread-control>タグ下の<thread-control-max-threads>
Webアプリケーションの占有スレッド数<thread-control>タグ下の<thread-control-exclusive-threads>
Webアプリケーション単位の実行待ちキューサイズ<thread-control>タグ下の<thread-control-queue-size>
URLグループ単位の同時実行スレッド数制御の定義名<thread-control><urlgroup-thread-control>タグ下の<urlgroup-thread-control-name>
URLグループ単位での最大同時実行スレッド数<thread-control><urlgroup-thread-control>タグ下の<urlgroup-thread-control-max-threads>
URLグループ単位の占有スレッド数<thread-control><urlgroup-thread-control>タグ下の<urlgroup-thread-control-exclusive-threads>
URLグループ単位の実行待ちキューサイズ<thread-control><urlgroup-thread-control>タグ下の<urlgroup-thread-control-queue-size>
URLグループ単位の制御対象となるURLパターン<thread-control><urlgroup-thread-control>タグ下の<urlgroup-thread-control-mapping>
(b) Webアプリケーション単位の同時実行数

Webアプリケーション単位の同時実行数をチューニングするパラメタの設定方法について説明します。設定項目ごとに設定方法と設定個所が異なります。

次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。

表8-9 Webアプリケーション単位の同時実行数のチューニングパラメタ(Smart Composer機能で設定する項目)

設定項目設定対象設定個所(パラメタ名)
Webコンテナ単位での最大同時実行スレッド数
(Webサーバ連携時)
論理J2EEサーバ(j2ee-server)webserver.connector.ajp13.max_threads
Webコンテナ単位での最大同時実行スレッド数
(インプロセスHTTPサーバ使用時)
論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.max_execute_threads
Webアプリケーション単位で同時実行数を制御するかどうか論理J2EEサーバ(j2ee-server)webserver.container.thread_control.enabled
デフォルトの実行待ちキューサイズ論理J2EEサーバ(j2ee-server)webserver.container.thread_control.queue_size

次の表に示す項目は,サーバ管理コマンド(cjsetappprop)で設定します。パラメタは,WAR属性ファイルに定義します。

表8-10 Webアプリケーション単位の同時実行数のチューニングパラメタ(サーバ管理コマンド(cjsetappprop)で設定する項目)

設定項目設定個所(パラメタ名)
Webアプリケーション単位での最大同時実行スレッド数<thread-control-max-threads>
Webアプリケーションの占有スレッド数<thread-control-exclusive-threads>
Webアプリケーション単位の実行待ちキューサイズ<thread-control-queue-size>
(c) Webコンテナ単位の同時実行数

Webコンテナ単位の同時実行数をチューニングするパラメタの設定方法について説明します。

次の表に示す項目をSmart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。

表8-11 Webコンテナ単位の同時実行数のチューニングパラメタ

設定項目設定対象設定個所(パラメタ名)
Webコンテナ単位での最大同時実行スレッド数
(Webサーバ連携時)
論理J2EEサーバ(j2ee-server)webserver.connector.ajp13.max_threads
Webコンテナ単位での最大同時実行スレッド数
(インプロセスHTTPサーバ使用時)
論理J2EEサーバ(j2ee-server)webserver.connector.inprocess_http.max_execute_threads
参考
このほか,Webコンテナでは,リダイレクタからのTCP接続要求の最大待ち行列数も指定できます(論理J2EEサーバ(j2ee-server)のwebserver.connector.ajp13.backlog)。ただし,これはソケットのListenキューの大きさを指定するキーであり,リクエストの実行待ちキューと直接の関係はありません。

(3) Enterprise Beanの同時実行数

Enterprise Beanの同時実行数は,Enterprise Bean単位に設定します。Enterprise Beanの種類ごとに説明します。

(a) Stateless Session Beanの同時実行数

Stateless Session Beanの同時実行数をチューニングするパラメタの設定方法について説明します。

次の表に示す項目を,サーバ管理コマンド(cjsetappprop)で設定します。パラメタは,Session Bean属性ファイルに定義します。

表8-12 Stateless Session Beanの同時実行数のチューニングパラメタ

設定項目設定個所(パラメタ名)
プールで管理するインスタンスの最大値<stateless><pooled-instance>タグ下の<maximum>
プールで管理するインスタンスの最小値<stateless><pooled-instance>タグ下の<minimum>

注※ 運用時にCTMの同時実行数を動的に変更する場合は,最大値は無制限(「0」)に設定する必要があります。


(b) Stateful Session Beanの同時実行数

Stateful Session Beanの同時実行数をチューニングするパラメタの設定方法について説明します。

次の表に示す項目を,サーバ管理コマンド(cjsetappprop)で設定します。パラメタは,Session Bean属性ファイルに定義します。

表8-13 Stateful Session Beanの同時実行数のチューニングパラメタ

設定項目設定個所(パラメタ名)
クライアントから作成可能なセッションの上限<stateful>タグ下の<maximum-active-sessions>
使われていないインスタンスが削除されるまでの時間(分)<stateful>タグ下の<removal-timeout>
(c) Entity Beanの同時実行数

Entity Beanの同時実行数をチューニングするパラメタの設定方法について説明します。

次の表に示す項目を,サーバ管理コマンド(cjsetappprop)で設定します。パラメタは,Entity Bean属性ファイルに定義します。

表8-14 Entity Beanの同時実行数のチューニングパラメタ

設定項目設定個所(パラメタ名)
クライアントから作成可能なEntity Beanの最大値<maximum-instances>
使われていないEntity BeanのEJBObjectが削除されるまでの時間(分)<entity-timeout>
(d) Message-driven Beanの同時実行数

Message-driven Beanの同時実行数をチューニングするパラメタの設定方法について説明します。

次の表に示す項目を,サーバ管理コマンド(cjsetappprop)で設定します。パラメタは,Message-driven Bean属性ファイルに定義します。

表8-15 Message-driven Beanの同時実行数のチューニングパラメタ

設定項目設定個所(パラメタ名)
プールで管理するインスタンスの数の最大値<pooled-instance><maximum>
プールで管理するインスタンスの数の最小値<pooled-instance><minimum>

(4) CTMで制御する同時実行数

CTMで制御する同時実行数をチューニングするパラメタの設定方法について説明します。CTMデーモン,アプリケーション,およびStateless Session Beanに設定する項目があります。

●CTMデーモンに設定する項目

次の表に示す項目は,Smart Composer機能で設定します。パラメタは,簡易構築定義ファイルに定義します。

表8-16 CTMで制御する同時実行数のチューニングパラメタ(Smart Composer機能で設定する項目)

設定項目設定対象設定個所(パラメタ名)
CTMが制御するスレッドの最大値およびキューごとのリクエストの登録数論理CTM(component-transaction-monitor)ctm.DispatchParallelCount
●アプリケーションまたはStateless Session Beanに設定する項目

次の表に示す項目は,サーバ管理コマンドで設定します。パラメタは,アプリケーション属性ファイルまたはSession Bean属性ファイルに定義します。

表8-17 CTMで制御する同時実行数のチューニングパラメタ(サーバ管理コマンドで設定する項目)

設定項目定義ファイル設定対象設定個所(パラメタ名)
アプリケーションをCTMによる同時実行数制御の対象にするかどうかアプリケーション属性ファイルアプリケーション<managed-by-ctm>
アプリケーションの同時実行スレッド数アプリケーション属性ファイルアプリケーション<scheduling>タグ下の<parallel-count>
Stateless Session BeanをCTMによる同時実行数制御の対象にするかどうかSession Bean属性ファイルStateless Session Bean<enable-scheduling>
Bean単位のキューについての設定Session Bean属性ファイルStateless Session Bean<scheduling>タグ下の<parallel-count>

注※ スケジュールキューをBean単位に配置する場合に必要です。スケジュールキューの配置方法は,アプリケーション属性ファイルの<scheduling-unit>タブに設定します。