ArcGIS Server は、CachingTools というジオプロセシング サービスを用いてキャッシュ タイルを作成します。このサービスは、ArcGIS Server サイトを作成するときに自動的にシステム フォルダーに構成されます。CachingTools サービスに使用できるインスタンスの数により、コンピューターがどれだけの能力をキャッシュ ジョブに割り当てられるかが決まります。
また、キャッシュ作成を実行しているマップまたはイメージ サービスのインスタンスは少なくとも 1 つ実行しておく必要があります。マップまたはイメージ サービスのインスタンス数を増やしても、タイルの作成速度には影響しません。
レガシー:
10.0 以前のバージョンでは、キャッシュ ジョブに割り当てられるオペレーティング システムのプロセス数を増やすために、キャッシュされるマップ サービスのインスタンス数を増やしていました。10.1 以降のリリースでは、CachingTools のジオプロセシング サービスのインスタンス数を増やします。
CachingTools サービスに対して許可するインスタンス数の選択
ArcGIS Server Manager で、キャッシュ ジョブに割り当てられる CachingTools のジオプロセシング サービスの最大インスタンス数を調整できます。最小値と最大値は、個々の GIS サーバーに適用されます。そのため、最大値を 3 に設定し、CachingTools サービスを実行する GIS サーバーが 4 つある場合、最大 12 の CachingTools のインスタンスを実行できるようになります。
この設定により、サイトから GIS サーバーを追加または削除することで、キャッシュに割り当てるリソース数を増減することができます。GIS サーバーは、キャッシュ ジョブの実行中や、作成するタイルのジョブを割り当て状態であっても追加することができます。
CachingTools サービスに対して許可するインスタンスの数が多すぎると、コンピューターの負荷が大きくなり効率が低下する可能性があります。インスタンスの数が少なすぎると、コンピューターの使用率が低下する場合があります。最適な値を見つけるには試行錯誤が必要です。この場合、許可するインスタンスの最大数に対して n + 1 の初期値を使用すると最適です。n は、クラスター内の 1 台のコンピューターが搭載する CPU コアの数を表します。サイトをアマゾン ウェブ サービスに配置する場合は 2n + 1 を使用します。n は、サイト内の単一の EC2 インスタンスが備える仮想コアの数です。
CachingTools サービスは、[非同期] の実行モードで実行する必要があります。これがデフォルト値です。
キャッシュ ジョブに割り当てるインスタンス数の選択
[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] などのツールを使用すると、ジョブで動作する CachingTools のインスタンスの数を選択できます。利用可能な CachingTools のインスタンスを実行中のいくつかのジョブの間で分割することができます。それらのインスタンスが他のジョブで使用されている場合、あるジョブでは、CachingTools の最大インスタンス数まで利用できない可能性があります。キャッシュ ジョブが CachingTools のすべてのインスタンスを使用している場合、リクエストされた他のジョブは最初のジョブが完了するまでキューに配置されます。
シナリオ
キャッシュを作成しようとしていて、サイトに 4 つの GIS サーバーがあるとします。各サーバーは、最大で 5 つの CachingTools インスタンスを許可するように構成しています。キャッシュ ジョブに割り当てることができるインスタンスの最大数は 20 です。
このサイトで同時に 2 つのキャッシュ ジョブを実行し、負荷を均等に分散する場合は、各ジョブに対して 10 のインスタンスを割り当てることができます。
柔軟な設定が可能
必要に応じて GIS サーバーを自動的に追加できるクラウド環境でサイトを構成している場合があります。そのようなケースでは、ジョブの実行が、固定された最大インスタンス数によって制限を受けるのは望ましくありません。そうした場合には、値に -1 を入力することで、ジョブで実行できるインスタンス数の制限をなくすことができます。サイトに追加される GIS サーバーの数に関係なく、利用可能な CachingTools のすべてのインスタンスがそのジョブに使用されます。
同時に実行可能なジョブ数の設定
多数の公開者がキャッシュを構築する要求を同時に開始すると、各ジョブに割り当てるインスタンス数を少なくしている場合でも、サーバーに負荷がかかりすぎる場合があります。システム フォルダーにある CachingControllers サービスは、同時に実行できるジョブの数を決定します。
デフォルトでは、CachingControllers サービスに対するインスタンスの最大数は 3 です。これは、キャッシュ ジョブを一度に 3 つしか実行できないことを意味します。4 つ目のキャッシュ ジョブの要求をサーバーが受信した場合、この要求は他のジョブが完了するまでキューに格納されます。一度に 4 つのジョブの実行を許可する場合は、CachingControllers の最大インスタンス数を 4 に設定します。