テストは、設計が期待した性能を発揮し、ワークフロー、ユーザー、および意図した負荷をサポートすることを検証するために実施されました。 システム テストによって、下位環境でのシステム デプロイ中、理想的には本番環境で問題が発生する前に、問題を発見して修正する機会が得られます。 このテスト調査のテスト方法では、システムがワークフローをサポートするかどうかの検証、負荷がシステムやそのコンポーネント、エンドユーザー エクスペリエンスに与える影響を理解することに焦点を当てました。
各コンポーネントについて、それぞれ異なる負荷シナリオに対してワークフローを実行し、監視が行われました。 テストが完了すると、結果が集約され、分析され、システム内のボトルネックとリソース過剰のコンポーネントの両方を特定しました。 この情報を使用して、スケール アップ、スケール ダウン、またはスケール アウトが必要なシステム コンポーネントを特定してから、さらにテストを繰り返しました。
ワークフロー テスターの画面記録を取得して手動のユーザー エクスペリエンス テストを行い、システムのユーザーがワークフローを生産的に完了できることを確認するために実施されました。
詳細については、効果的なテスト戦略の設計の方法をご参照ください。
このテスト調査では、テストされたワークフローにペーシング モデルを適用しました。 ペーシング モデルは、パーセル管理組織での作業ペースをテストでシミュレートする方法を示しており、ワークフローはスタッフ リソースのチーム全体で 1 時間あたりの一定数の操作として実行されます。 この手法は Esri のお客様からの情報に基づいており、使用データは中規模のパーセル管理の顧客シナリオに準拠しています。
ワークフローは、1 時間のテスト期間にわたって分散され、同時に開始されないようにずらしつつ、実際の環境でのタスク展開を模してオーバーラップするようにも設定されました。 以下のペーシング モデルでは、各ワークフローのペーシングと 1 時間あたりの操作数をどのように指定したかを確認できます。これがシステムの設計負荷を定義します。
たとえば、ペーシング モデルでわかるように、設計負荷は 1 時間あたり 120 件の「パーセルの集計」ワークフローを想定しています。 お客様と協力して調査した結果、これは中規模組織が 1 時間にこのワークフローを実行できる典型的な回数であることが判明しました。 しかし、このワークフロー数は、実際のユーザー数にかかわらず遂行されることもあります。組織によっては、少人数のスタッフが 1 時間に複数回にわたってワークフローを行うこともありますが、多くのユーザー グループが存在する組織では、それぞれが少ない頻度でワークフローをこなすこともあるからです。 ただし、ユーザー間の分布にかかわらず、システムが 1 時間あたりにサポートする総操作数は変わりません。
その後で、システムが許容範囲で応答できなくなる、またはワークフローを正しくサポートできなくなるまで、ワークフローの数を徐々に増やすことで、負荷を高めていきました。今回のケースでは、対象となる組織タイプに対してシステムが適切に機能することを検証できる十分な規模に達するまで、負荷を増加させました。 このテスト調査で適用されたワークフロー ペーシング モデルは、組織での一般的な日常使用と一致しない場合があることに注意してください。

ArcGIS は多層システムなので、パフォーマンス テストは、クライアント層、サービス層、データ ストレージ層、および基盤となるインフラストラクチャー自体にわたって行われました。 このテスト調査では、JMeter を使用してユーザーのワークフローをシミュレートし、さまざまな負荷のもとでシステム パフォーマンスを測定しました。 ArcGIS Pro の記録されたリクエストを再生することで負荷をシミュレートしました。また、手動のワークフローを実行することで、エンドユーザー エクスペリエンスも評価されました。 各コンポーネントのリソース使用率を監視するため、Windows パフォーマンス モニターと ArcGIS Monitor も使用されました。
詳細については、パフォーマンス テスト ツールをご参照ください。
このアーキテクチャーは、自動負荷テストと手動操作によるテストを通じて、3 つのシナリオで検証されました。各シナリオの結果を以下に示します。 大まかに言うと、テストの結果は、実装時点でシステムには設計負荷からその 8 倍までの負荷をサポートするのに十分なリソースがあったことを示しています。 また、テスト結果からは、アプリケーションとシステムの構成が適切であることがパフォーマンスのため重要だということも明らかになりました。

Observations:

Observations:

Observations:
サービスが適切に調整されているかどうかを把握するため、仮想マシンのリソース使用率に加え、各テスト実行の ArcSOC 使用率も監視しました。 設計負荷の 8 倍までのすべての実行で、ビジー状態の ArcSOC は最大 (16 個) を大きく下回りました。つまり、その負荷に対して必要以上に多くのマップ インスタンスを構成していたことになりまます。 これが、設計負荷の 8 倍未満の負荷で稼働する本番環境であれば、ホスティング サーバーと GIS サーバー コンピューターのサイズを縮小してコスト削減を図るという選択肢も考えられます。 これは、需要に応じたスケーリングが必要かどうかを判断するため、サーバーの CPU やメモリーと並行して ArcSOC の使用率を監視することを前提としています。 さらに、各 ArcSOC は一定のメモリーを消費し、ビジー状態の ArcSOC は仮想 CPU を使用するため、これらのコンピューターに過負荷がかからないよう注意する必要があります。
以下の図では、設計負荷の 8 倍の条件下では、ホスティング サーバー サイトでは 16 個すべての ArcSOC が特定の時間帯にビジー状態であることがわかります。 すべての ArcSOC がビジー状態である場合、サービスの待機時間が長くなることが予想されます (実際に観察されたとおり)。 しかし、パーセル サーバー (右) では ArcSOC 使用率は低く、構成された 16 個のうち最大で 9 個の利用に留まっています。
ホスティング サーバー (左) での最初の急増は、テスト開始時にダッシュボードが起動したことが原因でした。 今後のテスト実行に向けてワークフローのペーシングを修正し、実際のシナリオをより正確に反映できるよう、ダッシュボードの起動を数分間にわたって分散させるようにしました。

自動化されたワークフローに加え、ワークフロー テスターの画面記録を取得し、その録画からワークフローの所要時間 (ユーザーがワークフローのすべてのステップを実行するのにかかった時間) を抽出することで、ユーザー エクスペリエンスも観察しました。 これは、システムのユーザーがワークフローを生産的に完了できることを確認するために行われます。
以下のグラフに示すように、実施されたワークフローの所要時間はすべてのテスト シナリオを通してほぼ一貫しており、ごくわずかな変動しか見られません。 これは、エンドユーザーが認識するシステムの応答性に悪影響を与えることなく、システムが負荷の増加に対応できることを示しています。
ワークフロー自体に加え、すべてのワークフローにおける主要なステップのワークフロー実行時間も記録しました。 これは、システムに負荷がかけられている状態で、各ワークフローの特定のステップを完了するのにかかった平均時間を表しています。 以下のチャートはパーセルのマージ ワークフローの例ですが、どの負荷シナリオにおいても、各ステップの完了にかかる時間は非常に安定していることがわかります。 このパターンは、わずかな変動はあるものの、すべてのワークフローで一貫して見られます。
これらのテストは、本番システムではなくテスト環境で実施されました。 ワークフローや構成、設計は、システムによって異なる可能性があります。 たとえば、Azure では、通常は Web Adaptor は使われず (SAML を利用する場合)、AppGateway が直接サーバーに負荷を分散させます。 しかし、これらのテスト手法や結果から、目的に合わせて参考にすることはできます: