ArcGIS Enterpriseのベンチマークに適した機能の選択
GISの基盤ソフトウェアシステムとして、ArcGIS Enterpriseはマッピングや可視化、分析など多くの役割を果たします。この幅広い機能と性能から、すべての能力を代表する単一のテストは存在しません。
しかし、もしArcGIS Enterpriseの展開をテストするためのベンチマークとして一つの機能を使うとすれば、マップサービスのエクスポート機能が強力な候補となります。エクスポートマップはApache JMeterのテストプランで簡単かつプログラム的に呼び出せ、CSVデータファイルから複数の地図スケールにわたる空間範囲を変化させてリクエストできます。これは各地図スケール取引ごとに1つのリクエストとなり、テストが複雑化し維持困難になることを防ぎます。さらに、このエクスポート機能はバージョン9.3以降で利用可能であり、実証済みで信頼性の高い操作としてベンチマークに適しています。
マップサービスのベンチマークとは?
GISのテスターや管理者は、多くの場合、2つのシステム間または環境変更後の同一システム間でスループットの違いを理解する任務があります。 このような状況では、ベンチマークとは複数のものを比較するための標準として負荷テストを実施するプロセスです。
GISに関して言えば、この負荷テストはApache JMeterテストプランによる段階的負荷テストであり、ArcGIS Enterpriseマップサービスに対して実行され、特定の状態や構成下で展開から達成可能な最高スループット率(トランザクション/秒またはリクエスト/秒)を理解します。この率はピークスループットとも呼ばれます。ピークスループット時にはパフォーマンス(トランザクションまたはリクエスト応答時間)の理解も重要な測定項目です。
ベンチマークデータセット
特徴クラスの追加、更新、削除やバージョン変更などが行われない限り、任意のデータセットをベンチマークに使用できます。この一貫性が動かないターゲットとして信頼できる「標準」を作り出します。テストデータはプライベート(例:独自)でもパブリックドメインベースでも構いません。

パブリックドメインデータとは?
一般的にパブリックドメインデータとは、無料でダウンロードおよび使用できるラスタまたはベクターデータセットを指します。多くのパブリックドメインデータセットが存在し(そしてそれらを定義する異なるライセンスもあります)、この記事で使用されているデータはNatural Earth製であり、クリエイティブ・コモンズ(CC0)ライセンスで提供されています。

なぜパブリックドメインデータを使うのか?
良いベンチマークを作る特徴の一つは、他者があなたと同じテストを繰り返せるようにテストを構築することです。この点でパブリックドメインデータは優れた選択肢であり、テスト標準とパフォーマンスおよびスケーラビリティの信頼できる尺度を促進します。
SampleWorldCities と Natural Earth の比較
ArcGIS ServerにSampleWorldCitiesが含まれていることで、このデータセットは普及しておりテスト例やウォークスルーに適していますが、その非常に小さいサイズゆえにマップサービスのベンチマークには理想的ではありません。
一方でNatural Earthデータセットは、小さいスケールながら世界全体をカバーする適度な地図詳細を提供します。さらに、このデータセットはディスクサイズも扱いやすく、共有やダウンロードおよび使用がより実用的です。
ベンチマーク用Natural Earthデータセット

展開アーキテクチャ
アーキテクチャはベンチマークにおける重要な詳細です。以下はいずれもテストに影響する重要なベンチマークアーキテクチャ要素です:
- Web Adaptorは存在しますか?
- 認証が関与しましたか、それともサービスは全員に公開されましたか?
- Portal for ArcGIS認証
- ArcGIS Serverトークン認証
- 全員に公開
- ArcGISサイトには何台のマシンが参加しましたか?
- プロセッサ詳細
- プロセッサモデルとアーキテクチャ
- 各サーバー(テストクライアントワークステーションも含む)あたりのCPUコア数
- 物理、仮想またはクラウド環境かどうか
- 物理メモリ詳細
- ネットワーク速度
- ArcGIS Enterpriseバージョン
- オペレーティングシステムバージョン
注意:展開アーキテクチャ詳細を記録することを推奨します。この情報をテスト結果と共に保存すると分析や結論付けに適切な文脈と意味付けが可能になります。
このベンチマークテスト結果は以下の環境アーキテクチャで実行されました:
- ArcGIS Server (10.9 Final)
- Dell PowerEdge R640
- Windows Server 2019
- 10Gネットワーク
- ArcGIS Web Adaptor (10.9 Final)
- Windows Server 2019
- 10Gネットワーク
-
Test Client
-
Apache JMeter 5.4.1
- Dell PowerEdge R640
SPECint_rate_base2006
-
6仮想CPU
16GB RAM
Windows Server 2019
10Gネットワーク
データソースタイプと場所
ベンチマークテスト用データ格納にはファイルジオデータベースまたはエンタープライズジオデータベースどちらでも問題ありません。どちらを使用しても、データソース詳細は環境の重要な属性として記録すべきです。
注意: データソースタイプを記録することが推奨されます。この情報をテスト結果と共に保存すると分析や結論付けに適切な文脈と意味付けが可能になります。
場所については、ローカルファイルジオデータベースではなく リモートファイルジオデータベースを使用する必要がある場合があります ArcGIS Enterprise Siteを構成する複数のサーバーがある場合。いずれの場合も、リモートまたはローカルにかかわらず、データソースの場所はテスト環境の重要な詳細であり、記録しておくべきです。<\/SPAN><\/P>注意: データソースの場所を記録することを推奨します。この情報をテスト結果と一緒に保存することで、分析や結論に適切な文脈と意味を与えるのに役立ちます。<\/STRONG><\/FONT><\/P>サービスの種類とインスタンス数<\/FONT><\/H2>Site内で最も広く使用されているArcGISマップサービスについては、リソースをSharedではなくDedicatedインスタンスとして公開することを推奨します。両方のタイプは利用可能なハードウェアを最大限に活用できるようにスケールできますが、Dedicatedサービスインスタンスには専用のリソースが裏で割り当てられており、ベンチマークテストに理想的な選択肢となります。<\/FONT><\/P>予測可能なパフォーマンスのために、Dedicatedインスタンスタイプの最小および最大インスタンス数をArcGIS ServerマシンのCPUコア数と同じに設定することを推奨します。<\/FONT><\/P>注意: サービスの種類とインスタンス数を記録することを推奨します。この情報をテスト結果と一緒に保存することで、分析や結論に適切な文脈と意味を与えるのに役立ちます。<\/STRONG><\/FONT><\/P>ベンチマークテストでリクエストオプションは重要ですか?<\/H2>もちろんです!共通のデータセットとexport map機能を使用するだけでは信頼できるベンチマークを確立するには不十分です。export操作は非常に多用途ですが、この柔軟性によってさまざまな入力オプションから画像が生成される可能性があります。<\/P>マップサービスへのリクエストを継続的に送信する負荷テストは信頼できるベンチマークを確立するために重要です。テストでPNGではなくBMP画像形式を要求したり、デフォルトの4326以外の空間参照でデータを要求したりできますか?はい、可能ですが、そのようなオプションの変更はテストのパフォーマンスとスケーラビリティに影響を与える可能性があるため、このTest Plan設定はそのままにしておくことを推奨します。<\/P>Map Service Benchmark Test Plan <\/H1>この記事で使用されているApache JMeter Test Planのダウンロードはこちら: <\/SPAN>naturalearth1.zip<\/A> <\/STRONG>- このTest Planは主に以前の記事からのSampleWorldCitiesテストプロジェクトに基づいています
こちらの記事<\/A><\/LI><\/UL><\/LI><\/UL>- Apache JMeterでTest Planをダウンロードして開くと以下のようになります:
Thread Group Configuration<\/H2>Thread Groupはテストのステップ負荷特性を定義し、重要な役割を果たします。export mapの場合、テストの最大Number of ThreadsはArcGIS Server CPUコア数(および同様にサービスインスタンス数)と密接な関係があります。コア数を超えるスレッド数に設定することで、サーバーCPUリソースが完全に活用されるよう十分な負荷がかかることが保証されます。そこからピークスループットが観察されるべきであり、これはベンチマークテストの主要な目標です。<\/P>注意: すべてのテストされたデータセットがArcGIS Server層のCPUを完全に活用しているとは限りません。その場合は、ボトルネックがどこにあるか理解するため追加のトラブルシューティングが必要です。<\/STRONG><\/FONT><\/P>一般的な目安として、最大ステップ負荷はサーバーCPUコア数より25%~60%高く設定してください以下のようにTest Planは1時間実行し最大40並列スレッドまで到達するよう設定されていますベンチマークは1つのテストスレッドから開始し90秒ごとにスレッドが1つ追加されます<\/LI>このベンチマークは24物理CPUコア上で動作するArcGIS Server展開向けに設計されています <\/LI>すべてのArcGIS Serverが24物理コアで動作するわけではないため、最大ステップ値は展開環境に応じて調整してください<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
注意: ステップ負荷構成詳細を記録することを推奨します。この情報をテスト結果と一緒に保存すると分析や結論への適切な文脈と意味付けが可能になります。
Benchmark Test Execution
ベンチマークは通常のJMeter Test Planと同様に実行してください。
naturalearth1.zipプロジェクトに含まれるrunMe.batスクリプトはApache JMeterチーム推奨のテスト実行例です。
注意: 負荷テスト開始時間と期間について適切な担当者と調整することが常に推奨されます。これによりユーザーや他のArcGIS Enterprise Site利用者への影響が最小限になり、また他活動によるシステムノイズによってテスト結果が「汚染」されることも防げます。
Results and Analysis
負荷テスト完了後、runME.batはApache JMeterに自動的にレポート生成を指示し結果分析支援します。
負荷テスト結果分析専用の記事やネット資源も多数ありますので簡潔化のため、本稿ではレポートからrequest throughput (requests/sec)およびrequest performance (seconds)メトリクスを見ることに焦点を当てます。
以下図はこれら2項目が時間経過で理想的にはどんな傾向になるか示しています。
The Ideal Throughput Curve

理想的にはスループット曲線は上図オレンジ線の形状になります。曲線がピークし平坦化し始める点はシステムが最高スループット(ハードウェアまたはソフトウェアボトルネックによる)に達したこと示しています。この曲線が折れ曲がる部分はkneeと呼ばれ、この点で最大スループット値となります。
青線は増加中のステップ負荷を表しています。
The Ideal Performance Curve

理想的には応答時間曲線は上図緑線形状になります。同じく最大スループット時点で取得されます。
青線は増加中のステップ負荷を表しています。
JMeter Report
naturalearth1.zipプロジェクトにはreportsフォルダ内にnaturalearth1_run1というApache JMeterレポートが含まれています。
- index.htmlファイルを開くと分析支援用複数チャートや表を見ることができます

Actual Throughput Curve
- レポートより:
- Charts→Throughput内にはHits Per Secondチャートがありここでテストから得られたリクエストスループットがプロットされています
- 各トランザクションには単一リクエストのみ含まれているため、「hits 毎秒"は、transactions/sec と requests/sec の両方に相当します。<\/SPAN><\/LI>
- システムは最大スループット約80 transactions/sec(または80 requests/sec)を達成しました。<\/SPAN><\/STRONG><\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span> <\/P>実際のパフォーマンス曲線<\/H2>レポートから:<\/SPAN>Charts-->Response Times の下に、テストからのリクエストパフォーマンスがプロットされた Time Vs Threads チャートがあります。<\/SPAN>凡例内でクリックして "\/pvtserver\/rest\/services\/NaturalEarth\/MapServer\/export" を除くすべての項目がフィルタリングされています。<\/SPAN><\/SPAN><\/LI>テストは各トランザクションが1つのリクエストのみを含むように構成されているため、「export request」も平均トランザクションパフォーマンスを表しています。<\/SPAN><\/LI>最大スループット時点で、システムは約314msまたは0.3秒のトランザクションパフォーマンスを提供します。<\/SPAN><\/STRONG><\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P> <\/P> 注意: 複数のリクエストを含むトランザクションを持つ負荷テストの場合は、異なる分析アプローチが必要です。<\/STRONG><\/FONT><\/P>結果の比較<\/H1>提供されたデータと Test Plan を使用してシステムのテストを完了した後、この記事に記載されている結果と比較できます。これにより、2つのシステムをおおよそ比較する尺度を提供します。<\/P>この記事で使用された Apache JMeter Test Plan をダウンロードするには、こちらをご覧ください: naturalearth1.zip<\/A> <\/LI>この記事で使用された Natural Earth のサブセットデータをダウンロードするには、こちらをご覧ください: Natural_Earth_Test_Data<\/A><\/LI><\/UL> <\/P>
<\/P>
<\/P>
Apache JMeter<\/A> は <\/SPAN><A href="https:\/\/apache.org\/