![]() ![]() ![]() ![]() |
ここに示す例は、Open Applications Group (OAG) 標準に従って定義した以下のビジネス オブジェクト ドキュメント (BOD) を処理する単純な注文アプリケーションです。
注意 : | このガイドで説明するテストは、適切に管理された環境で実行したものです。個別環境でテストを実行した場合に得られる数値は、ここに示されているテスト結果の数値と異なる場合があります。これらの数値は、キャパシティ プランニング プロセスを分かりやすく説明するためのものです。 |
次の図に、このアプリケーションのコンフィグレーションを示します。
この例では、プロセスが自動化されており (ユーザによる対話はない)、目標が 1 秒あたりに処理されるトランザクションで示されているため、作業負荷は思考時間をゼロとして設計されています。
たとえば、50% の PO WS Driver JPD ユーザと 50% の PO JMS Driver JPD ユーザが混在する場合について検討します。Mercury LoadRunner ベースの Java プログラムを、テストの負荷生成クライアントとして使用します。クライアントは、SOAP/HTTP を使用して Driver JPD をトリガし、コールバックを待機してから、次の要求を送信します。
注文を処理するオペレーションのフロー全体 (ドライバ JPD の呼び出し、注文ドキュメントの送信、および確認ドキュメントの受信) を、1 つの作業単位とみなします。
この例の目標 SLA は、平均 CPU 使用率最大 50% で、1 秒あたり 50 の注文を処理することです。
以降の節では、スケーラビリティ テストを実行するための、ハードウェアおよびソフトウェアのコンフィグレーションについて説明します。
-Xms 1536m -Xmx 1536m -Xgc:parallel
wli.internal.instance.info.buffer
には非永続キューを使用)
垂直スケーラビリティ テストのソフトウェア コンフィグレーションは、水平スケーラビリティ テストと同じです。
/3 GB
スイッチを使用して起動します。Init.ora
パラメータ : *.aq_tm_processes=1
*.background_dump_dest='D:\oracle\admin\PERFDB2\bdump'
*.compatible='9.2.0.0.0'
*.control_files='D:\oracle\oradata\PERFDB2\CONTROL01.CTL','D:\oracle\oradata\PERFDB2\CONTROL02.CTL','D:\oracle\oradata\PERFDB2\CONTROL03.CTL'
*.core_dump_dest='D:\oracle\admin\PERFDB2\cdump'
*.db_block_size=8192
*.db_cache_size=25165824
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='PERFDB2'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=PERFDB2XDB)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
*.instance_name='PERFDB2'
*.java_pool_size=33554432
*.job_queue_processes=10
*.large_pool_size=8388608
*.open_cursors=300
*.pga_aggregate_target=55165824
*.processes=1000
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=90331648
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='D:\oracle\admin\PERFDB2\udump'
以降の節では、スケーラビリティ テストの結果について説明します。
次の図は、垂直スケーラビリティ テストの結果を示しています。
テストは、WLI で 1、2、および 4 つの CPU を使用して実行されました。CPU 使用率が 50% に達するまで、徐々に負荷を増やしました。グラフからは、平均 CPU 使用率最大 50% で 1 秒あたりに 50 の注文を処理するという SLA は、4 つの CPU では達成できないことが分かります。
「キャパシティの推定」の説明に従って、テストから得た結果に曲線を適合させてその曲線の方程式を導出したら、その式を使用して必要な追加ハードウェア リソースを推定します。
次の図は、水平スケーラビリティ テストの結果を示しています。
テストは、1、2、および 4 台のマシン (各マシンに 1 つの管理対象サーバ) を使用して実行されました。グラフには、50% の CPU 使用率での平均 TPS が示されています。このグラフから、4 ノードの WLI クラスタ (1 ノードあたり 1 台のマシン) であれば、50% の CPU 使用率で 51.048 の注文を処理できることが分かります。
ここで説明した例では、水平スケーラビリティを強化することで、利用可能なハードウェア リソースで要求される SLA を達成できました。一方、垂直スケーラビリティの強化では SLA を達成することはできませんでした。
要求される SLA を達成できない場合は、テストから得た結果に曲線を適合させてその曲線の方程式を導出し、その式を使用して必要な追加ハードウェア リソースを推定できます。
次の図に、垂直スケーラビリティの場合のキャパシティ推定を示します。
たとえば、平均 TPS を y、CPU 数を x とすると、式は y = 7.9958x - 0.4705 となります。この曲線は、WLI アプリケーションのスケーラビリティがほぼ直線的に強化されることを示しています。
注意 : | この方程式は、ここで説明されているテストの設定に基づいています。キャパシティを推定するために必要な方程式は、テストの設定、アプリケーションの特性、および SLA によって異なります。また、このドキュメントで説明されているテストは、データベース (およびデータベース I/O) 関連のボトルネックが存在しないことを前提としています。 |
次の図に、水平スケーラビリティの場合のキャパシティ推定を示します。
平均 TPS を y、クラスタ内のノード数を x とすると、式は y = 11.625x + 5.6125 となります。
注意 : | この方程式は、ここで説明されているテストの設定に基づいています。キャパシティを推定するために必要な方程式は、テストの設定、アプリケーションの特性、および SLA によって異なります。また、このドキュメントで説明されているテストは、データベース (およびデータベース I/O) 関連のボトルネックが存在しないことを前提としています。 |
![]() ![]() ![]() |