Interstage Application Server チューニングガイド
目次 索引 前ページ次ページ

第2章 J2EEのチューニング

2.1 サーブレット・コンテナのチューニング

 サーブレット・コンテナのチューニングパラメタには、次のものがあります。

■マルチコンテナ

 Servletサービスでは、複数のサーブレット・コンテナを起動することができます。1つのWebアプリケーションを複数のサーブレット・コンテナで対応することにより、負荷を分散することができます。また、業務ごとに対応するサーブレット・コンテナを分けることもできます。サーブレット・コンテナはそれぞれで異なるJava VM(Java Virtual Machine)上で動作させることもできます。
 マルチコンテナを使用するには、サーブレット・ゲートウェイ環境定義ファイルに設定が必要です。詳細については、“J2EEユーザーズガイド”の“Servletサービスの機能”の“マルチコンテナ”を参照してください。

【設定例】
 複数のWebアプリケーションと複数のサーブレット・コンテナの場合の設定例を次に示します。
 この定義では、Webアプリケーション識別子"/sample"への通信は Server1マシンのポート8009番使用のサーブレット・コンテナへ、Webアプリケーション識別子"/myservlet"への通信はServer2マシンのポート8010番使用のサーブレット・コンテナに振り分けられます。

# サーブレット・ゲートウェイ環境定義ファイル
DefaultHost  localhost
DefaultPort  8009
Timeout    300000
Mount     /sample ID1
Mount     /myservlet ID2
Container   ID1 ajpv12://Server1:8009/
Container   ID2 ajpv12://Server2:8010/
LogFile    /var/opt/FJSVjs2/log/jsgw.log
ErrorPage   404 /opt/FJSVjs2/gateway/404.html
ErrorPage   500 /opt/FJSVjs2/gateway/500.html

■コンテナのスレッド数

 サーブレットコンテナのスレッド数をカストマイズすることにより、1つのコンテナ上で動作するWebアプリケーション数を運用にあわせて、動作させることができます。また、マルチコンテナと合わせ、業務ごとに対応するサーブレットのスレッド数を合わせることにより、きめ細かな業務運用が可能となります。
 コンテナのスレッド数の詳細については、“J2EEユーザーズガイド”の“Servletサービスの環境定義ファイル”の“サーブレット・コンテナ環境定義ファイル”を参照してください。

【設定例】
 スレッド数の設定はサーブレット・コンテナ環境定義ファイルのConnectorタグとParameterタグで定義します。

<Server>
・・・
  <Connector className=
    "com.fujitsu.interstage.jservlet.tomcat.service.PoolTcpConnector ">
   <Parameter name="handler"
     value=
    "com.fujitsu.interstage.jservlet.tomcat.service.connector.Ajp12ConnectionHandler"/>
   <Parameter name="port" value="8009" />
   <Parameter name="ipaddress" value="localhost" />
   <Parameter name="min_spare_threads" value="16" />
   <Parameter name="max_spare_threads" value="32" />
   <Parameter name="max_threads" value="128" />
  </Connector>
・・・
</Server>

■Java VMのヒープ領域サイズ

 サーブレット・コンテナは、JServlet環境定義ファイルに指定されたパラメタで、Java VM上で動作します。この定義により、サーブレット・コンテナは、Java VMに必要なパラメタを変更して動作することができます。変更できるパラメタとしては、Java VMヒープ領域サイズおよび、Java VMの種類を選択できます。
 詳細については、“J2EEユーザーズガイド”の“JServlet環境定義ファイル”を参照してください。

【設定例】
 JDK 1.3の場合の最大ヒープ領域サイズの例を次に示します。
 最大ヒープ領域のサイズの省略値は、Java VMによって異なりますので、JDKのドキュメントを参照してください。java.lang.OutOfMemoryErrorが多発する場合には、本定義項目で、Java VMの最大ヒープ領域を増加させてください。

# JServlet環境定義ファイル
container.checkFrequency=1800
container.checkCount=3
container.restart=true
myserver_001.ipaddress = localhost
myserver_001.port = 8009
myserver_001.containerconf = /etc/opt/FJSVjs2/myserver_001.xml
myserver_001.bin = /opt/FJSVawjbk/jdk13/bin/java
myserver_001.bin.parameters = -Xmx128m
myserver_001.env = CLASSPATH = /opt/FJSVawjbk/jdk13/lib/tools.jar
myserver_001.env = CLASSPATH = /opt/FJSVjs2/classes/js13022.jar
myserver_001.env = CLASSPATH = /opt/FJSVjs2/classes/servlet22.jar
myserver_001.env = CLASSPATH = /opt/FJSVjs2/classes/xml.jar
myserver_001.env = THREADS_FLAG = native
myserver_001.env = LANG = ja

■サーブレット・コンテナへの最大接続数

 サーブレット・コンテナへの最大接続数(MaxConnection)は、サーブレット・ゲートウェイからサーブレット・コンテナへの最大接続数を制限することで、サーブレット・コンテナで同時に処理するアプリケーションの数を抑えることができる機能です。

 高負荷状態におけるレスポンス時間やメモリ使用量をあらかじめ計測し、運用時に安定稼動するシステムを構築することができます。瞬間的な高負荷状態に陥った場合に発生するDBアクセスの集中やメモリ不足などのトラブルを防ぐこともできます。
 また、本機能を使用した場合には、サーブレット・ゲートウェイとサーブレット・コンテナ間のコネクションを再利用する機能が動作します。これにより、性能の向上が期待できますので本機能を使用することを推奨します。

 本機能は、以下のWWWサーバで使用できます。

 サーブレット・ゲートウェイで、サーブレット・コンテナへの要求が最大接続数を超えた場合には、HTTPステータスコード503のHTMLファイル(任意)をWWWブラウザへ返却することで、システムが高負荷状態で利用できないことをユーザに通知できます。特にWWWサーバにInfoProvider Proを使用している場合には、同時接続数(concurrency)とサーブレット・コンテナへの最大接続数を同じ値(ただし1コンテナの場合)にして同時処理数を制限し、WWWサーバのリクエストキュー(pool-max)で多くのWWWブラウザからの同時接続を保障することができます。

 同時に処理するアプリケーションの数を増やす場合にはマルチコンテナを利用します。マルチコンテナで運用する場合には最大接続数は1コンテナ当たりの数となるため、同時に処理するアプリケーションの数を80として、1コンテナ当りの最大接続数を40にした場合にはコンテナを2つにします。1コンテナ当りで同時に動作するアプリケーションの数を抑えることがポイントとなります。以下の計算式を参照してください。

  コンテナ数 = 同時に処理するアプリケーションの数 ÷ 1コンテナ当りの最大接続数(MaxConnection)

 サーブレット・コンテナへの最大接続数を使用するには、サーブレット・ゲートウェイ環境定義ファイルに設定が必要です。詳細については、“J2EEユーザーズガイド”の“Servletサービスの環境定義ファイル”の“サーブレット・ゲートウェイ環境定義ファイル(WWWサーバがInterstage HTTP Server以外の場合)”を参照してください。

【設定例1】
 1コンテナ当たりの最大接続数(MaxConnection)を40に制限する場合の設定例を示します。

# サーブレット・ゲートウェイ環境定義ファイル
DefaultHost  localhost
DefaultPort  8009
Timeout    300000
MaxConneciton 40
Mount     /sample ID1
Container   ID1 ajpv12://Server1:8009/
LogFile    C:\INTERSTAGE\F3FMjs2\log\jsgw.log
ErrorPage   404 C:\INTERSTAGE\F3FMjs2\gateway\404.html
ErrorPage   500 C:\INTERSTAGE\F3FMjs2\gateway\500.html
ErrorPage   503 C:\INTERSTAGE\F3FMjs2\gateway\503.html

【設定例2】
 1コンテナ当たりの最大接続数(MaxConnection)を40に制限し、同時に処理するアプリケーションの数を2倍の80にして、マルチコンテナを2つにする場合の設定例を示します。

# サーブレット・ゲートウェイ環境定義ファイル
DefaultHost  localhost
DefaultPort  8009
Timeout    300000
MaxConneciton 40
Mount     /sample ID1
Mount     /sample ID2
Container   ID1 ajpv12://Server1:8009/
Container   ID2 ajpv12://Server1:8010/
LogFile    C:\INTERSTAGE\F3FMjs2\log\jsgw.log
ErrorPage   404 C:\INTERSTAGE\F3FMjs2\gateway\404.html
ErrorPage   500 C:\INTERSTAGE\F3FMjs2\gateway\500.html
ErrorPage   503 C:\INTERSTAGE\F3FMjs2\gateway\503.html


目次 索引 前ページ次ページ

Copyright 2004 FUJITSU LIMITED