問題

ArcSOC インスタンスの数が ArcGIS for Server のパフォーマンスの問題を引き起こす

Last Published: March 8, 2023

説明

複数の ArcSOC.exe インスタンスが、メモリ (RAM) リソースを大量に消費する場合があり、それによって ArcGIS for Server のパフォーマンスの問題を引き起こします。

image of Task Manager - Performance tab

原因

この問題は、複数のインスタンスが 1 台のホスト コンピューター上で実行されているときに発生し、それによって、使用可能なメモリ制限を超え、過剰にリソースを消費し、不安定なサービス環境につながります。 ArcGIS for Server は、追加の構成なしで最適な性能を発揮するように調整されています。 システムがアイドル状態である場合でも、ArcGIS for Server は大量のリクエスト用に設定されています。 システムに負荷がかけられた場合、処理されている高性能な機能に対応するために、メモリ使用量が増加します。 1 つの ArcSOC.exe プロセスおよびすべての実行インスタンスは、2 つの ArcSOC.exe プロセスを作成します。 たとえば、3 つの実行インスタンスがある 1 つのジオプロセシング サービスは、7 つの ArcSOC.exe プロセスを生成します。

解決策または対処法

この挙動を解決するには、2 つの方法があります。

  • 1 つ目は、ArcGIS Server 10.7 以降向けの方法です。
  • 2 つ目は、ArcGIS Server のすべてのバージョン向けの方法です。


オプション 1: 共有インスタンス プールを使用するようサービスを設定する (ArcGIS Server 10.7 以降で利用可能)

ArcGIS Server 10.7 以降には共有インスタンス プールが含まれています。この共有インスタンス プールには、デフォルトでは 4 つの ArcSOC.exe プロセスがあります。 共有インスタンス プールを使用すると、各サービスが個々の ArcSOC.exe プロセスを実行しなくても、共有インスタンス プールで使用可能な ArcSOC.exe プロセス を使用します。 リクエストの処理が完了すると、その ArcSOC.exe プロセスは共有プール内の他のサービスでも自由に使用できるようになります。 これにより、ArcGIS Server コンピューターで実行される ArcSOC.exe プロセスの数を削減できるため、個々の ArcSOC.exe プロセスを必要としないサービスにとっては最適です。

共有インスタンス プール オプションは、ArcGIS Pro から公開されたマップ サービスで使用できます。 次の制約によって、共有インスタンス プールを使用できるサービスが決まります。

  • マップ サービスに限り、共有インスタンス プールを使用するように構成できます。 それ以外のタイプのサービス (ジオプロセシング サービスなど) はサポートされていません。
  • マップ サービスの特定の機能のみ (フィーチャ アクセス、WFS、WMS、および KML)、有効にすることができます。 それ以外の機能はすべて、処理を進める前に無効にしておきます。
  • カスタムのサーバー オブジェクト エクステンション (SOE) またはサーバー オブジェクト インターセプター (SOI) が設定されたサービスは共有インスタンスを使用できません。
  • ArcMap から公開されたサービスは共有インスタンスを使用できません。
  • ArcGIS Pro から公開されたキャッシュ マップ サービスのうち、上記の要件を満たしているものは共有インスタンスを使用できます。

次に、共有インスタンス プールを使用するようサービスを設定する方法について説明します。

  1. 管理アカウントを使用して ArcGIS Server Manager にログインします。
  2. [サイト (ルート)] → [システム] の下で、変更対象のサービスをクリックします。
  3. [プール] をクリックし、[共有されたインスタンス プール] ラジオ ボタンを選択します。
User-added image
  1. [保存して再起動] をクリックします。


オプション2: インスタンスの最小数を「0」に設定する. (ArcGIS Server の全バージョンで利用可能)

ArcGIS Server の共有インスタンス プール機能を使用できない場合は、ほとんど使用されないサービスの最小インスタンス数を 'MinInstances = 0’ に設定する方法があります。 これによって、他のアクティブなマップおよびジオプロセシング サービスのためのメモリ空間および空き容量を確保します。 インスタンスの最小数をゼロに設定すると、リクエストされた後に ArcSOC の起動に時間がかかるため、パフォーマンスが低下することがあります。 ユーザーによって頻繁に利用されるサービスの場合は、インスタンスの最大数を「最大インスタンス数 = n+1」に設定します (「n」はホスト コンピューターのコアの数)。 ArcGIS for Server のパフォーマンス最適化の詳細については、ArcGIS ヘルプ ドキュメント「サービスのチューニングと構成」をご参照ください。

次の手順では、ArcGIS Server Manager で ArcSOC.exe プロセスのインスタンスの数を指定する方法について説明します。

  1. 管理アカウントを使用して ArcGIS Server Manager にログインします。
  2. [サイト (ルート)] → [システム] の下で、変更対象のサービスをクリックします。
    [O-Image]
  3. [プール] をクリックし、コンピューターごとの [インスタンスの最小数] を 0 に変更します。
    [O-Image]
  4. [保存して再起動] をクリックします。
注意:
最小インスタンス数プロパティは、最大インスタンス数プロパティよりも小さい必要があります。

サービス インスタンス設定の構成の詳細については、ArcGIS ヘルプ ドキュメントをご参照ください。

記事 ID:000012639

ArcGIS の専門家からヘルプを受ける

テクニカル サポートへのお問い合わせ

Esri Support アプリのダウンロード

ダウンロード オプションに移動

関連情報

このトピックについてさらに調べる