Secure Sockets Layer
不正確な結果の要因となる 1 つのデータに対する注意 つのデータに対する注意 つのデータに対する注意 つのデータに対する注意
不正確な結果の要因となる 不正確な結果の要因となる
不正確な結果の要因となる 1 つのデータに対する注意 つのデータに対する注意 つのデータに対する注意 つのデータに対する注意
データに外れ値があると、状態を正確に反映していない結果を得る場合があります。外れ値 は、起動時に発生することがよくあります。簡単な例をシミュレートするため、PL/SQLの
"Hello, World"アプリケーションを約30秒間実行したとします。結果を調べてみると、処理
はすべてmod_plsql.c内で次のように行われていました。
/ohs_server/ohs_module/mod_plsql.c handle.maxTime: 859330 handle.minTime: 17099 handle.avg: 19531 handle.active: 0 handle.time: 24023499 handle.completed: 1230
ここで、handle.maxTimeの値がhandle.avgよりもはるかに大きい点に注意してくださ い。これは、おそらく最初のリクエストに関する値で、データベースとの接続をオープンす る必要があったためです。それ以降のリクエストは、すでに確立した接続を利用できます。
PL/SQLモジュールのサービス時間の平均値を、より正確な推定値にするには、次のように
平均値を再計算します。
(time - maxTime)/(completed -1) 値は次のようになります。
(24023499 - 859330)/(1230 -1) = 18847.98
6
OC4J での での での での J2EE アプリケーションの最適化 アプリケーションの最適化 アプリケーションの最適化 アプリケーションの最適化
この章では、Oracle9i Application ServerでOracle9iAS Containers for J2EE(OC4J)アプリ ケーションのパフォーマンスを向上させるためのガイドラインを示します。
この章には、次の項目が含まれています。
■ OC4J J2EEアプリケーション・パフォーマンスのクイック・スタート
■ OC4Jインスタンスの設定によるJ2EEアプリケーションのパフォーマンスの向上
■ Oracle9iASでのサーブレット・パフォーマンスの向上
■ Oracle9iASでのJSPパフォーマンスの向上
■ Oracle9iASでのEJBパフォーマンスの向上
■ 複数のOC4Jの使用および接続の制限
■ データベースの監視およびチューニング
■ Oracle9iASでのBC4Jパフォーマンスの向上
注意 注意 注意
注意: この章では、OC4Jおよびアプリケーション構成オプションを設定 するためのOracle Enterprise Managerの使用方法について説明します。ま
た、DCM(Distributed Configuration Management)ユーティリティであ
るdcmctlを使用しても構成オプションを設定できます。このユーティリ ティでは、Oracle Enterprise Managerのかわりにコマンドラインを使用し
て、Oracle9iASの構成および管理タスクを実行できます。
OC4J J2EEアプリケーション・パフォーマンスのクイック・スタート
OC4J J2EE アプリケーション・パフォーマンスのクイック・ アプリケーション・パフォーマンスのクイック・ アプリケーション・パフォーマンスのクイック・ アプリケーション・パフォーマンスのクイック・
スタート スタート スタート スタート
この項では、OC4Jで動作するJ2EEアプリケーションのチューニング方法を簡単に説明し、
重要なパフォーマンス情報へのリンクを提供します。
表6-1は、J2EEアプリケーションのパフォーマンスに関するクイック・ガイドです。
表 表 表
表 6-1 J2EEアプリケーションの考慮すべきパフォーマンス分野アプリケーションの考慮すべきパフォーマンス分野アプリケーションの考慮すべきパフォーマンス分野アプリケーションの考慮すべきパフォーマンス分野 パフォーマンス分野
パフォーマンス分野 パフォーマンス分野
パフォーマンス分野 説明およびリファレンス説明およびリファレンス説明およびリファレンス説明およびリファレンス 十分なメモリー・リソースの
準備 J2EEアプリケーションの性能を向上させるためには、十分なメモリー・リソースを 用意します。 J2EEアプリケーションを実行するOC4Jに十分なメモリーがない場合、
限られたメモリーの管理に必要なオーバーヘッドによりパフォーマンスが低下しま す。
6-3ページの「OC4JプロセスのJVMヒープ・サイズの設定」を参照してください。
データベース接続のキャッ シュおよび再利用
データベース接続プーリングを適切に設定すると、多くの場合、データベースにアク セスするJ2EEアプリケーションのパフォーマンスに非常に良い影響を与えます。
データ・ソースでは、プールされたデータベース接続の使用および設定を可能にする 構成オプションを使用できます。
6-9ページの「データ・ソースの設定 – パフォーマンス問題」を参照してください。
同時実行性の管理および接続
の制限 6-36ページの「HTTP接続の制限」を参照してください。
ロード・バランシング 6-37ページの「複数のOC4Jプロセスの構成」を参照してください。
アプリケーションの均衡化 6-38ページの「OC4Jインスタンスでのアプリケーション均衡化」を参照してくださ い。
データベースの監視および
チューニング 6-39ページの「データベースの監視およびチューニング」を参照してください。
OC4Jインスタンスの設定によるJ2EEアプリケーションのパフォーマンスの向上
OC4J インスタンスの設定による インスタンスの設定による インスタンスの設定による インスタンスの設定による J2EE アプリケーションの アプリケーションの アプリケーションの アプリケーションの パフォーマンスの向上
パフォーマンスの向上 パフォーマンスの向上 パフォーマンスの向上
OC4Jの構成オプションをチューニングすると、OC4Jインスタンスで動作するJ2EEアプリ ケーションのパフォーマンスを向上させることができます。構成を変更するには、アプリ ケーションのパフォーマンス要件に従ってシステムのリソースを調整する必要があります。
この項では、J2EEアプリケーションのパフォーマンスに影響を与える構成の変更について説 明します。次の項目が含まれます。
■ OC4JプロセスのJavaオプションの設定
■ データ・ソースの設定 – パフォーマンス問題
OC4J プロセスの プロセスの プロセスの プロセスの Java オプションの設定 オプションの設定 オプションの設定 オプションの設定
Oracle9iASを実行する際、mod_oc4jモジュールは、Oracle HTTP Serverと1つまたは複
数のOC4Jインスタンスをつなぐためのコネクタの役割を果たします。 OC4Jインスタンス内 の各OC4Jプロセスは、それぞれのJVM(Java Virtual Machine)で実行され、J2EEリクエ ストの解析とレスポンスの生成を行います。リクエストがOracle HTTP Serverに到達する と、mod_oc4jはOC4Jプロセスを取得し、リクエストを選択したOC4Jプロセスにルー ティングします。各OC4Jインスタンス内では、すべてのOC4J JVMプロセスが同じ構成を 使用し、同じJavaオプションで開始します。同様に、プロセスが終了するかその他の問題が 発生しないかぎり、OC4Jインスタンスの一部である各OC4Jプロセスは、プロセスにデプ ロイされている同じJ2EEアプリケーションを使用します。
J2EEアプリケーションによっては、アプリケーションがデプロイされたOC4Jを実行してい るJVMのJavaオプションを設定することにより、アプリケーションのパフォーマンスが向 上する場合があります。
OC4J プロセスの プロセスの プロセスの プロセスの JVM ヒープ・サイズの設定 ヒープ・サイズの設定 ヒープ・サイズの設定 ヒープ・サイズの設定
システムに十分なメモリーがあり、アプリケーションがメモリーを集中的に使用する場合、
JVMヒープ・サイズのデフォルト値を大きくすることによってアプリケーションのパフォー マンスを向上させることができます。ヒープ・サイズに必要な量は、アプリケーションおよ び使用可能なメモリーの量によって異なりますが、通常のOC4Jサーバー・アプリケーショ ンでは、最低でも128MBのヒープ・サイズを設定することをお薦めします。十分なメモリー がある場合、256MB以上のヒープ・サイズの使用をお薦めします。
関連項目 関連項目 関連項目 関連項目:
第3章「Oracle HTTP Serverの監視」
第4章「OC4Jの監視」
OC4Jインスタンスの設定によるJ2EEアプリケーションのパフォーマンスの向上
OC4JインスタンスのOC4Jプロセスに割り当てられているヒープ・サイズを変更するには、
6-7ページの「Oracle Enterprise Managerを使用したOC4J JVMコマンドライン・オプショ ンの変更」で説明されている手順に従って、次のJavaオプションを指定します。
-Xmssizem -Xmxsizem
sizeには、Javaヒープ・サイズをMBで指定します。
アプリケーションが常に大容量のヒープ・サイズを必要とする場合、JVMの-Xmsサイズを -Xmxサイズと同じに設定し、最小のヒープ・サイズを最大のヒープ・サイズと等しくする ことにより、パフォーマンスを向上させることができます。
たとえば、ヒープ・サイズを128MBに設定するには、次のように指定します。
-Xms128m -Xmx128m
システム上で動作するすべてのJVMが消費する全メモリー量が、システムのメモリー容量 を超えないように最大のJavaヒープ・サイズを設定します。ハードウェア構成に対して大き すぎるJavaヒープ・サイズの値を設定すると、OC4Jインスタンス内の1つまたは複数の OC4Jプロセスが起動せず、Oracle Enterprise Managerがエラーをレポートする場合があり ます。エラー・レポートを確認するには、$ORACLE_HOME/opmn/logsディレクトリ内の OC4Jインスタントのログ・ファイルを開きます。
Could not reserve enough space for object heap Error occurred during initialization of VM
JVMヒープ・サイズに小さすぎる値を設定すると、OC4Jプロセスをまったく開始できず、
Oracle Enterprise Managerはエラーをレポートします。$ORACLE_HOME/opmn/logsディ
レクトリ内のOC4Jインスタンスのログ・ファイルを確認すると、次のようなエラーが表示 されます。
java.lang.OutOfMemoryError
システム・メモリーが不足していると、OC4Jは停止します。これは、オブジェクトへのリ ファレンスがリリースされていないために起こります。たとえば、ハッシュ表またはベクト ルにオブジェクトが保存されていて、削除されていない場合です。
これは、プロセスが大量のメモリーを必要とする原因になり得ます。この場合、頻繁なガ ベージ・コレクションを避けるために、プロセスの最大ヒープ・サイズを大きくします。
注意注意
注意注意: 別の理由により、java.lang.OutOfMemoryErrorエラーが起こる場 合もあります。たとえば、アプリケーションにメモリー・リークがある場 合です。