Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

Grizzly の設定

Grizzly は Java の NIO テクノロジを利用した HTTP リスナーであり、そのすべてが Java で実装されています。この再利用可能な NIO ベースのフレームワークを使えば、任意の HTTP 関連操作 (HTTP リスナー/コネクタ) だけでなく非 HTTP 操作も行えるため、スケーラビリティーの高い任意のタイプのマルチスレッドサーバーを作成できます。Grizzly HTTP リスナーは Java プラットフォームの NIO Selector クラス群に基づくキープアライブシステムを使用しますが、このクラス群は接続の監視をサポートしており、サービス拒否攻撃を防ぐのに役立ちます。サービス拒否システムは、リソースの枯渇または「氾濫」攻撃を予測できるよう、IP 検証、IP ごとの完了トランザクション数の追跡、アクティブでない接続の検出などに対する基本的なサポートを追加します。これらすべてのサービスが、キープアライブシステムと組み合わせて実行されます。Grizzly コネクタは静的リソース要求と動的リソース要求の両方をサーブレットコンテナに転送し、サーブレットコンテナはコンテナによって提供される専用のサーブレット (org.apache.catalina.servlets.DefaultServlet) を使って静的リソース要求を処理します。

Grizzly の詳細については、http://weblogs.java.net/blog/jfarcand/archive/2005/06/grizzly_an_http.html の Weblog を参照してください。

Grizzly は、Application Server Enterprise Edition 8.2 に含まれる NSAPI/WebCore の代替として利用可能になっています。Application Server には、Grizzly の設定をサポートするための特殊なプロパティーがいくつか用意されています。Grizzly を有効にするには、次のプロパティーを追加します。

Dcom.sun.enterprise.web.httpservice.ee=false

Grizzly の実装は現在のところ、Application Server Enterprise Edition の、動的設定以外のすべての機能をサポートしています。

Grizzly の設定を制御するプロパティーは、次のとおりです。


注 –

Grizzly も、Sun Java System Application Server 8.2 のその他のすべての設定と同じく、非同期起動メカニズムを無効にするとパフォーマンスが向上します。これを無効にするには次のプロパティーを使用します。-Dcom.sun.enterprise.server.ss.ASQuickStartup=false


次の表に、Grizzly プロパティーと production web container (PWC) プロパティーとの対応関係を示します。

表 3–3 Grizzly プロパティーと PWC プロパティーとの対応関係

Grizzly のプロパティー名 

デフォルト値 

説明 

本番 Web コンテナの対応する設定 

maxAcceptWorkerThread 

OP_ACCEPT (socket.accept()) の処理に使用されるスレッドの数。 

HTTP リスナーのアクセプタスレッドの数 

selector.timeout 

60000 

Selector.select() でタイムアウトが発生するまでの、ミリ秒単位の時間。 

要求処理タイムアウト 

minWorkerThreads 

すべてのスレッドプールが作成時に使用する最小スレッド数。 

要求処理の初期スレッド数 

fileCache.isEnabled 

false 

ファイルキャッシュが有効かどうかを示します。 

ファイルキャッシュが有効 

fileCache.minEntrySize 

 

小ファイルで可能な最小サイズ。 

小ファイルのサイズ制限 

fileCache.maxEntrySize 

1024 

中ファイルで可能な最大サイズ。 

中ファイルのサイズ制限 

fileCache.maxLargeFileCacheSize 

10485760 

中ファイル用のキャッシュ領域。 

ファイルサイズ (中) 

fileCache.maxSmallFileCacheSize 

 

小ファイル用のキャッシュ領域。 

ファイルサイズ (小) 

fileCache.maxCacheEntries 

 

キャッシュエントリの最大数。 

最大ファイル数 

keepAliveTimeoutInSeconds 

30 

 

キープアライブのタイムアウト 

maxKeepAliveRequests 

250 

 

キープアライブの最大接続数 

InitialRuleCount 

128 

Keep-Alive サブシステムによって作成される KeepAliveRule の初期数。 

 

useNioNonBlocking 

true 

NIO ブロックモードを使用するかどうかを示します。 

 

displayConfiguration 

false 

Grizzly の内部設定を表示するかどうかを示します。 

 

useDirectByteBuffer 

true 

Grizzly バッファーの作成時に ByteBuffer.allocateDirect() を使用するかどうかを示します。 

 

pipelineClass 

com.sun.enterprise.web.connector.grizzly.LinkedListPipeline 

Grizzly がデフォルトで使用するパイプライン (スレッドプールラッパー)。 

 

maxSelectorReadThread 

OP_READ 操作を処理するためのセレクタスレッドの数。 

 

useByteBufferView 

false 

1 つの大きな ByteBuffer を使用し、それを Grizzly バッファー間で分割するかどうかを指定します。 

 

algorithmClassName 

com.sun.enterprise.web.connector.grizzly.algorithms.NoParsingAlgorithm 

ByteBuffer からのバイトの読み取りに使用される、要求バイト解析アルゴリズム。 

 

buffersize 

4096 

Grizzly によって作成される ByteBuffer のサイズ。 

 

factoryTimeout 

30 

ソケット上での読み書き操作が失敗するまでの時間。 

 

maxReadWorkerThread 

ソケットからの要求バイトの読み取りに使用されるスレッドの数。