ナビゲーションをスキップ

WebLogic Server パフォーマンス チューニング ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

WebLogic Server のチューニングにおける重要推奨事項

WebLogic Server および WebLogic Server アプリケーションのパフォーマンスのチューニングは、複雑で繰り返し実施しなければならない作業です。ここでは、チューニングを始めるにあたり、アプリケーションのパフォーマンスを最適化する上で重要な推奨事項について説明します。ここで説明するチューニング方法は、ほとんどの WebLogic アプリケーションに適用できます。

 


パフォーマンスに関する目標の設定

サーバで実行するアクティビティのレベルに関する情報を収集します。収集すべき情報としては、予期されるユーザ数やリクエスト数、許容できる応答時間、最適なハードウェア コンフィグレーション (CPU の速度、ディスクのサイズと速度のバランス、必要なメモリ容量など) があげられます。

ハードウェア要件を決定するための一定の公式というのはありません。アプリケーションのニーズを十分に満たすために、必要なソフトウェアおよびハードウェア コンフィグレーションを決定するプロセスをキャパシティ プランニングといいます。キャパシティ プランニングでは、システム パフォーマンスの目標を評価し、アプリケーションを理解する必要があります。サーバ ハードウェアのキャパシティ プランニングでは、最大のパフォーマンス要件に焦点を絞って検討します。

 


オペレーティング システムのチューニング

設定されているデフォルトのチューニング パラメータは、オペレーティング システムによって異なります。Windows プラットフォームの場合、通常はデフォルト設定を変更する必要はありません。一方、UNIX および Linux オペレーティングシステムでは、通常は適切なチューニングを行う必要があります。

UNIX チューニング パラメータ

WebLogic Server でサポートされている UNIX オペレーティング システムをチューニングする場合は、以下のガイドラインに従ってください。

Solaris TCP チューニング パラメータ

TCP (transmission control protocol) ソケットのパフォーマンスを向上させるには、tcp_time_wait_interval パラメータを次のように設定します。

ndd -set /dev/tcp tcp_time_wait_interval 60000

このパラメータには、close の呼び出しを発行した後に TCP ソケットを生存させる時間間隔を指定します。Solaris の場合、このパラメータのデフォルト値は 4 分となります。短時間に数多くのクライアントが接続する場合、これらのソケット リソースを保持するとパフォーマンスに大きな悪影響を及ぼします。Solaris でのベンチマーク JSP テストでは、このパラメータの値を 60000 (60 秒) に設定するとスループットがかなり改善するという結果が出ています。オープン途中の接続のキューでサーバがバックアップされている場合は、この値をもっと小さくすることも可能です。

注意 : Solaris 2.7 以前では、tcp_time_wait_interval パラメータを tcp_close_wait_interval と呼んでいました。

その他の Solaris チューニング パラメータの推奨値については以下を参照してください。

Solaris のチューニング オプションの詳細については、以下を参照してください。

HP-UX チューニング パラメータ

HP-UX のチューニング情報については以下を参照してください。

AIX チューニング パラメータ

AIX 5L Version 5.2 Performance Management Guide」を参照してください。

Linux チューニング パラメータ

パケット転送のパフォーマンスを向上させるには、/sbin/ifconfig lo mtu パラメータを次のように設定します。

/sbin/ifconfig lo mtu 1500

mtu (maximum transfer unit) パラメータは、ネットワーク上のパケットに格納できる最大バイト数を表します。設定したパケット サイズが小さすぎると、データのフラグメントが原因でネットワークのパフォーマンスが低下します。

WebLogic Server 用のその他の Linux チューニング パラメータの推奨値については、「Linux チューニング パラメータ」を参照してください。Linux のチューニングの概要については、Linux ベンダのマニュアルを参照してください。また、「Ipsysctl Tutorial 1.0.4」では、Linux で提供されるすべての IP オプションについて説明されています。

Windows チューニング パラメータ

Windows プラットフォームの場合、通常はデフォルト設定を変更する必要はありません。Windows 2000 のチューニング オプションの詳細については、以下を参照してください。

 


データベースの最適化

データベースがエンタープライズ レベルのボトルネックになる可能性もあります。データベースの最適なパフォーマンスを実現するには、この節のチューニング ガイドラインと、使用しているデータベースの製品マニュアルのチューニング ガイドラインに従ってください。

一般的な推奨事項

ここでは、データベースのチューニングに関する一般的な推奨事項を示します。

データベース固有のチューニング

ここでは、Oracle、SQL Server、および Sybase のチューニングに関する基本的な推奨事項を示します。各データベースのベンダが提供するマニュアルのチューニング ガイドラインも確認してください。

Oracle

この節では、Oracle のパフォーマンスのチューニングについて説明します。

Microsoft SQL Server

以下に、Microsoft SQL Server データベースのパフォーマンス チューニング パラメータに関するガイドラインを示します。これらのパラメータの詳細については、Microsoft SQL Server のマニュアルを参照してください。

Sybase

以下に、Sybase データベースのパフォーマンス チューニング パラメータに関するガイドラインを示します。これらのパラメータの詳細については、Sybase のマニュアルを参照してください。

 


最適な JVM 設定の特定

JVM のパフォーマンスを向上させるには、JVM のヒープ ガベージ コレクションおよびヒープ サイズのパラメータをチューニングします。Sun HotSpot および BEA JRockit JVM のパラメータのうち、パフォーマンスにもっとも大きく影響するものを以下に示します。詳細については、JVM ベンダのチューニング マニュアルや、「Java 仮想マシン (JVM) の情報」の JVM 関連の情報を参照してください。

Sun JDK

HotSpot VM オプション (-server または -client) を使用する場合は、以下のガベージ コレクション パラメータを調整します。

HotSpot JVM のチューニングの詳細については、「JVM のヒープ サイズとガベージ コレクション」を参照してください。

BEA JRockit JDK

BEA の JRockit の JVM を使用する場合は、以下のガベージ コレクション パラメータを調整します。

JRockit JVM チューニング ガイド』も参照してください。

 


WebLogic Server パフォーマンス パラメータのチューニング

WebLogic Server では、実際の環境やアプリケーションに合わせて細かくチューニングできるパフォーマンス関連の多数の OOTB (out-of-the-box) パラメータを使用しています。これらのパラメータをシステム要件に基づいてチューニングすることで、デフォルト設定のまま実行する場合に比べ、単一ノードのパフォーマンスおよびアプリケーションのスケーラビリティ特性を大きく向上させることができます。

使用しているシステムに最適なパフォーマンスを特定するには、以下の WebLogic Server コンフィグレーション チューニング パラメータを調整します。

 


ディスクおよび CPU の使用状況のモニタ

上記のパラメータを調整したら、高い負荷をかけた状態でアプリケーションを実行して以下をモニタします。

Solaris および Linux でディスク使用率を確認するには、iostat -D <interval> コマンドを使用します。interval には、モニタ サイクルの間隔を秒単位で指定します。CPU 使用率を確認するには、単純に -D フラグをオフにします (iostat <interval>)。

Windows の場合は、パフォーマンス モニタ ツール (perfmon) を使用してディスクと CPU の使用率をモニタします。

アプリケーション サーバの使用率を 100% にすることを目標とします。アプリケーション サーバの CPU 使用率が 100% に満たない場合は、データベースにボトルネックがないかどうかを確認します。データベースサーバの CPU 使用率が 100% に達する場合は、アプリケーションの SQL 呼び出しクエリのプランを見直します。たとえば、SQL 呼び出しで、インデックスを使用したりリニア検索を実行したりしていないかを確認します。また、データベース サーバの CPU に負荷がかかる ORDER BY 句を、アプリケーションで使用しすぎていないかどうかも確認します。

データベース サーバのディスクがボトルネックになっている (ディスクの使用率が 100% に達している) ことが判明したら、アプリケーションで必要とされるだけの書き込みが実行できていないとみなし、より高速なディスクに交換するか、RAID (redundant array of independent disks) コンフィグレーションに変更します。

データベース サーバがボトルネックではないと判明したら、アプリケーション サーバのディスクがボトルネックになっていないかどうかを確認します。アプリケーション サーバのディスクがボトルネックになる原因としては以下が考えられます。

アプリケーション サーバでのディスク I/O を最適化する方法としては、より高速なディスクや RAID の使用、JMS の同時書き込みの無効化、tlog への JTA 直接書き込みの使用、HTTP ログ バッファの増設などがあります。

 


ネットワーク上のデータ転送のモニタ

アプリケーションとアプリケーション サーバの間、およびアプリケーション サーバとデータベース サーバの間のデータ転送の量を確認します。このデータ量がネットワークの帯域幅を超えないようにします。帯域幅を超える場合、ネットワークがボトルネックとなります。これを確認するには、パケットの再転送や重複に関するネットワーク統計値をモニタします。次のコマンドを使用します。

netstat -s -P tcp

netstat -s -P コマンドを使用してその他の TCP パラメータを表示する手順については、「ndd コマンドを使用した TCP パラメータの設定」を参照してください。

 


頻繁に発生する標準 I/O およびログの確認

アプリケーションにおいて、標準 I/O やログの発生が多すぎないかどうかを確認します。システムのパフォーマンスは、これらのどちらが多すぎる場合でも大幅に低下します。プロダクション環境では、コード内のすべての system.out.println 文を削除します。これらの文は、デバッグを目的として開発環境でのみ使用します。

 


アプリケーションのボトルネックの特定

ネットワークおよびデータベース サーバがボトルネックになっていないことが判明したら、WebLogic Server アプリケーションを調べます。もっとも重要なのは、クライアントの負荷が高い状態で、WebLogic Server を実行するマシンの CPU 使用率が 100% に達するかどうかです。100% に達しない場合は、アプリケーション内でロックが発生していないかどうかを確認します。ボトルネックを特定してアプリケーションのパフォーマンスを向上するには、市販されているツール (JProbe、OptimizeIt など) を使用してアプリケーションをプロファイリングします。

ヒント : CPU 使用率が 100% に達している場合でも、アプリケーションをプロファイリングしてパフォーマンスを向上させることをお勧めします。

 


アプリケーションのチューニング

この節では、アプリケーション固有のチューニングによってパフォーマンスを向上させるための推奨事項を示します。

EJB

WebLogic Server EJB のチューニング」を参照してください。

JSP とサーブレット

JMS

『WebLogic JMS のコンフィグレーションと管理』の「WebLogic JMS のチューニング」を参照してください。

JDBC

JDBC アプリケーションのパフォーマンス チューニングのヒント」および『WebLogic JDBC プログラマーズ ガイド』の「JDBC アプリケーションのパフォーマンス チューニング」を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次