この節に記載したチューニング案は、次のチューニングスクリプトを基にしています。これらのスクリプトは、Sun Java System Application Server の domain.xml ファイル (ドメイン設定ディレクトリにあり、通常は domain-dir/config です。) に追加されました。
PrintGCStats – データマイニングのシェルスクリプト。verbose:gc ログからデータを収集し、ユーザーが指定した間隔でデータのサンプルを抽出して、ガーベジコレクションの中断時間、パラメータの算出、アプリケーションの実行時に渡るタイムラインの解析などの情報を表示します。
このスクリプトとガベージコレクション統計を使用して JVM チューニングを最適なものにする方法については、次の Web サイトを参照してください。
http://java.sun.com/developer/technicalArticles/Programming/turbo/#PrintGCStats
PrintGCDetails – より詳細なガベージコレクション統計が得られるシェルスクリプト。
PrintGCTimeStamps – PrintGCDetails スクリプトを使用して収集したガベージコレクション統計にタイムスタンプ情報を追加するシェルスクリプト。
最良の JVM パフォーマンスを得られるようにするには、次の点を確認してください。
『Sun Identity Manager 8.1 リリースノート』の「サポートされているソフトウェアと環境」節に記載されている必須の Java バージョンを使用し、最新の機能、バグの修正、およびパフォーマンス拡張機能を使用していること。
ガベージコレクションの最新バージョンを使用していること。
アプリケーションサーバーをインストールしたときのデフォルトのガベージコレクションスキームである旧バージョンを削除していないことがよくあります。Identity Manager で旧バージョンのガベージコレクタを実行すると、多数のオブジェクトが生成されるため、JVM が絶え間なくガベージを収集することになります。
Identity Manager を Sun Java System Application Server に配備している場合は、配備した Identity Manager インスタンスの server.xml ファイルにガベージコレクションの要素を追加すれば、スループットを高めることができます。
最大負荷に 300 人以上のユーザーが見込まれる場合は、次の設定を修正してパフォーマンスを高めます。
配備した Identity Manager インスタンスに HTTP リスナーを設定している場合は、server.xml ファイル内のリスナー定義要素を編集し、「ホスト上のアクティブ CPU 数」を「ホスト上のアクティブ HTTP リスナー数」で割った数をアクセプタスレッド数に設定します。
たとえば、次のようにします。
<HTTP リスナー ID=”HTTP リスナー-1” \アドレス=”0.0.0.0” ポート=”80” \アクセプタスレッド=”アクセプタスレッドの算出結果” ...>
大部分の Identity Manager 配備の静的コンテンツは頻繁に変更されるように設計されていないため、(「ファイルキャッシュ設定」ページにある) 静的コンテンツのファイルキャッシュ設定を編集しても構いません。コンテンツが再読み込みされる前のファイルキャッシュ内のコンテンツ最大有効期間に、大きな数値を指定します (24 時間単位の秒数など)。
「ファイルキャッシュ設定」ページにアクセスするには、HTTP サーバーノード用の Web ベース管理者コンソールから「ファイルキャッシュ」タブをクリックします。(詳細な手順については、最新の『Sun Java System Web Server Administrator’s Guide』を参照してください。)
Sun Application Server では、チューニング可能なものを公開しています。これによって、HTTP コンテナで確保される各種スレッドプールと接続キューのサイズが変わります。
デフォルトでは、チューニング可能なものの大半は同時接続ユーザー数 300 人以下の負荷とされています。