マップのキャッシュやイメージ サービス キャッシュの生成と保存は、サーバーのリソースを消費します。 以下に、より効率的にキャッシュするための一般的な方法を説明します。
キャッシュ サイズの推定
タイル スキームのキャッシュ サイズを決定すると、キャッシュ生成に適切な量のリソースを割り当てることができます。 キャッシュ サイズが大きくなるほど、キャッシュ コンテンツを生成する際に使用される CPU、メモリ、時間、ディスク容量も増えます。
ArcGIS Pro [共有] ウィンドウでは、キャッシュ構成に基づき、キャッシュのサイズを推定することができます。 この推定を使用して、異なる画像形式や縮尺レベルを選択した場合に生じる、キャッシュ サイズのばらつきを把握できます。
詳細については、「Web タイル レイヤーの構成」をご参照ください。
対象地域を使用した詳細レベルのキャッシュ
デフォルトでは、キャッシュ コンテンツはマップの範囲全体で作成されます。 矩形ではない大きい地理エンティティのタイルを作成する場合、キャッシュの対象エリアを対話的に定義することによって、時間とリソースを節約できます。
対象地域は、ユーザーが最も多く閲覧する地域およびフィーチャです。 たとえば、主要都市、ランドマーク、高速道路は、ユーザーが頻繁にズームする一般的な対象地域です。 これらの地域は隣接している場合もあれば、砂漠や海などのユーザーがズームインする可能性が低い地域で分断されて広がっている場合もあります。
対象地域またはフィーチャクラスに基づくキャッシュにより、タイルを必要な場所のみで作成、維持できるため、空のエリアまたは不要なエリアのキャッシュを回避できます。 そうすることで、それらの対象地域をカバーするタイルだけをサーバー ツールに作成するよう要求できます。 残りのエリアは、クライアントによってリクエストされたときにオンデマンドでキャッシュすることができます。 これにより、ユーザーがアクセスしないエリアの不要なタイルの作成に費やす時間とディスク容量を節約することができます。
対象地域は、単一または複数のパーツで構成され、規則的または不規則な形状を指定できます。
次の 2 つの場所にフィーチャクラスを指定できます。
- サービスを公開するとき、または初めてキャッシュを初期化するときに、サービス エディターの [キャッシュ] → [高度な設定] タブで、[キャッシュの対象地域] パラメーターを設定します。 ドロップダウン リストから [フィーチャクラスからインポート] を選択します。 この対象地域は、公開時に自動的にキャッシュを作成する場合にのみ適用されます。
- [マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを開き、[対象地域] パラメーターを設定します。 この設定は、[サービス エディター] で設定した対象地域よりも優先されます。
注意:
マップ サービス キャッシュのタイルを管理ツール ArcGIS Pro で実行している場合は、画面上で対象地域をスケッチすることも使用できます。 これは、キャッシュの既知のエリアで欠けているタイルを補修したい場合、または所定のエリアの範囲を確認したい場合に、ツールを 1 回だけ実行するときに便利です。 ただし、ほとんどの体系化されたキャッシュ ジョブまたは更新では、フィーチャクラスを指定することが推奨されます。
以下の図は、フィーチャクラスにカリフォルニア州のみが含まれている場合に作成されるタイルの理論的なグリッドを示しています。 このフィーチャクラスにより、海や隣接する州内の不要なタイルを作成せずに済みます。 デフォルトの長方形の範囲が使用された場合は、そうした不要なタイルが含まれることになります。
ポイント フィーチャクラスまたはポリライン フィーチャクラスに基づくキャッシュを構築または更新する場合は、最初に少量のフィーチャをバッファーして、ポリゴン フィーチャクラスを取得する必要があります。 また、バッファーは、対象地域として使用する前にディゾルブおよびジェネラライズすることをお勧めします。
世界および国レベルの縮尺では、相対的に少数のタイルが作成されるため、フィーチャクラスに基づいてキャッシュする場合との違いはあまりありません。
リアルタイム投影の回避
ソース データをマップおよびタイル スキーマと同じ座標系に投影し、リアルタイム投影を回避することをお勧めします。
操作中のデータベースの投影法を変更しない場合は、キャッシュの作成とユーザー クエリの実行だけを目的とした、本番データベースの一方向レプリカを準備することをお勧めします。
ラベリングの最適化
ラベリングは、特にマップとシーン内のフィーチャに関する説明テキストを自動的に生成して配置するプロセスです。 ラベルはマップに動的に配置されたテキストであり、1 つ以上のフィーチャの属性から作成されます。 マップ ラベルの最適な位置を計算する処理は時間がかかるため、タイル作成にも時間がかかることがあります。
デフォルトでは、標準のラベル エンジンを使用して、各ラベルを配置する場所を決定します。 生成されるラベルの数が増えるほど、この処理にかかる時間も長くなります。
キャッシュ ジョブの最中に、ArcGIS は重複ラベルを減らす目的で、一度に大きな領域を描画します。 このような大きな領域 (スーパータイル) は、小さい個別のタイルに分割されます。 スーパータイルの大きさは 2048 x 2048 ピクセル (アンチエイリアスを使用する場合) または 4096 x 4096 ピクセル (アンチエイリアスを使用しない場合) です。
スーパータイル内にはラベルの重複は見られないはずですが、スーパータイルの境界で重複が発生することがあります。 これは、スーパータイルがラベル付けされたときに、ラベル配置エンジンは隣接するスーパータイルのラベルを認識しないためです。 実際、ラベリング エンジンはスーパータイル内にできるだけ多くのラベルを含めようとするため、一部のラベルがエッジ周辺に配置されることになります。 隣接するスーパータイルでも同じことが起こることがあり、スーパータイル境界周辺に重複が見られる原因になります。
アノテーション レイヤー
アノテーション レイヤーを使用すると、キャッシュ内のラベルの重複を避けることができます。 アノテーションとは、各ラベルを属性を持つフィーチャとして扱う特別なレイヤーです。 属性には、各ラベルに割り当てられたマップ上の場所が含まれます。 アノテーション レイヤーを編集し、重複ラベルを削除できます。
アノテーションではラベル配置を決定する必要がないため、アノテーションはキャッシュ作成時にラベルを最も迅速に描画できる方法です。 各アノテーションには、ラベルの属性である所定の座標があります。 詳細については、「アノテーション」をご参照ください。
マップ キャッシュ向けのアノテーション レイヤーを作成する
アノテーション レイヤーは非常に大きくなることがあり、マップのさまざまな縮尺に対してアノテーションを作成するのは大変な作業に見えるかもしれません。 [カートグラフィ ツール] にある、アノテーション ツールセットの 2 つのツールは、マップ キャッシュのアノテーションを作成するよう設計されています。
1 つ目のツールは [マップ サービス キャッシュ タイル スキーマ → ポリゴン (Map Server Cache Tiling Scheme To Polygons)] です。 このツールは、マップ キャッシュ タイル スキーマを読み込み、タイル スキーマの各縮尺でのスーパータイルの境界を表すグリッドを作成します。 これらのグリッドは、アノテーション作成ジョブを作業しやすいように分割する際に役立ちます。
2 つ目のツールは [ラベル → タイル分割されたアノテーション (Tiled Labels To Annotation)] です。 作成したスーパータイル グリッド、マップ ドキュメント、出力ワークスペースを指定すると、ツールがキャッシュ内のすべての縮尺に対してアノテーションを作成します。 マップ ドキュメント内でラベリングが有効になっているすべてのレイヤーに対し、アノテーションが作成されます。
このツールで作成されるアノテーションで、キャッシュを作成する場合と同じラベル配置を得ることができます。 その後、レイヤーで重複ラベルの調査または検索を行い、キャッシュを構築する前に削除できます。 あるいは、競合が発生した場合、キャッシュ更新の間にアノテーション レイヤーを手動でクリーン アップできます。
上記のツールを大規模な領域で実行する前に、小規模の範囲を使用してシンプルなマップで練習することをお勧めします。 スーパータイル グリッドの作成とアノテーションの描画は時間のかかる作業なので、大規模なマップでツールを使用する場合には正しいパラメーターを指定していることを確認してください。 また、練習することにより、ツールの所要時間やアノテーションの作成数を推定することもできます。
Maplex ラベル
Maplex は、標準のラベリング エンジンよりも多くのオプションを提供し、より高度な計算機能を備え、より多くのラベルを配置します。 Maplex は優れた結果を提供しますが、大量のメモリを消費し、マップ キャッシュに時間がかかります。
注意:
Maplex を使用して完全キャッシュを構築する前に、テスト キャッシュを作成し、タイルの作成中にシステムのメモリ使用量を確認することをお勧めします。 このプロセスでメモリ使用量がコンピューターの上限に近い場合は、Maplex を無効にすることをご検討ください。 Maplex を無効にしない場合、タイルの作成時にシステムが不安定になり、クラッシュの原因になることもあります。
優れたラベル配置とパフォーマンスの最適なバランスを実現するには、マップ ドキュメントで Maplex ラベリング エンジンを使用してラベルを描画し、これらのラベルをアノテーションに変換してから、そのアノテーションをマップ サービスで使用することをお勧めします。
別のキャッシュでのラベルの保持
ベクター フィーチャと関連ラベルは、通常、同じキャッシュに含まれます。 ユーザーにラベルをオフにすることを許可する必要がある場合はほとんどありません。ただし、必要に応じて、ラベルとフィーチャを別々のキャッシュに分離することもできます。
通常、ラベルは画像のキャッシュには含まれてはなりません。 画像を別々に管理することで、画像を単独で使用したり、他のアプリケーションで再利用したりすることができます。 異なるラベル セットがタイルに焼き付けられた複数のイメージ キャッシュは、複数のラベル オーバーレイ キャッシュを持つ 1 つのイメージ キャッシュよりも、ディスク上のスペースを累積的に多く消費します。
シンボル、フォント、アンチエイリアスの最適化
場合によっては、マップ コンテンツにカスタム テキスト シンボルやフォントを追加することもできます。 詳細については、「テキスト シンボル」をご参照ください。
Web レイヤーでフォントを使用するには、フォントがサーバー サイトに参加しているコンピューターに存在しているか、サーバーにフォントが存在しない場合は、GIS リソースに埋め込むことができる必要があります。 フォントを埋め込むことができるかどうかを確認するには、Microsoft Windows でフォントのプロパティを表示します。
注意:
Type 1 フォントを埋め込んで、Web レイヤーで使用することはできません。 Type 1 フォントはサーバーにインストールするか、TrueType フォントまたは OpenType フォントと入れ替えることができます。 サーバー コンピューター上にフォントが存在しない場合、シンボルを決定するためのフォント置換で不要な検索が発生し、キャッシュ生成のパフォーマンスが低下することがあります。 キャッシュ生成プロセスで新たにインストールされたフォントを確実に取得できるようにするには、サーバー サイトに参加しているすべてのコンピューターを再起動します。
アンチエイリアスは、ピクセルが目立たないように、ラインやラベルのエッジをスムージングするプロセスです。 テキストのアンチエイリアスはパフォーマンスにほとんど影響しませんが、フィーチャのアンチエイリアスは、計算負荷が非常に高いプロセスであり、キャッシュ速度が低下する可能性があります。
フィーチャに一定のアンチエイリアスを適用すると、ベクター マップの表示が改善されることがあります。 ただし、アンチエイリアスの品質を向上させるたびに、キャッシュの作成にかかる時間が大幅に長くなる可能性があることを考慮することが重要です。 ほとんどのキャッシュには、[最速] または [高速] の設定が適しています。 テスト キャッシュでより高い品質レベルが必要であることが確認されていない限り、品質の高い設定を避けることをお勧めします。
キャッシュ中のシステム リソースの監視
最高速でタイルを作成するには、タイル作成プロセス中に CPU の使用率がほぼ 100 パーセントになるようにします。ただし、100 パーセントには達しないようにします。 マップはそれぞれ異なるため、このレベルの CPU 使用率を達成するには、キャッシュ設定で何度か試行錯誤が必要です。 詳細については、「キャッシュ ツールとキャッシュ用のサーバー リソース」をご参照ください。
キャッシュ生成のパフォーマンスを左右するもう 1 つの要因は、システムのメモリです。 キャッシュ生成プロセスに参加するサーバー コンピューターのメモリ リソースが 60% になるようにしてください。 キャッシュ生成のメモリ使用量への影響度は、シンボル、ラベル、マップまたはイメージ サービス内のフィーチャとラスターの数によって異なります。 メモリ使用量がコンピューターの上限に近づくと、ランダムなクラッシュが発生し、サーバーが応答しなくなる可能性があります。
ソース データと arcgiscache ディレクトリへのネットワーク帯域幅も、監視する必要がある指標です。 キャッシュ プロセスは、大量の要求を行ってソース データを読み込みます。 キャッシュされるマップ ドキュメントのソース データの読み取りに十分な帯域幅を確保することで、キャッシュの作成を高速化できます。
キャッシュの作成時に、各キャッシュ インスタンスは、マップまたはイメージ サービスに定義されたキャッシュ ディレクトリにバンドルを書き込みます。 arcgisjobs または arcgisoutput ディレクトリをホストするファイル システムで arcgiscache ディレクトリを保持すると、帯域幅を超過して処理速度が低下する可能性があります。
GIS サーバー サイト キャッシュの場合、SAN (ストレージ エリア ネットワーク) または高可用性 NAS (ネットワーク接続ストレージ) を使用する可用性の高いファイル サーバー上にディレクトリを指定できます。 これを情報技術スタッフと協力して構成することで、読み取り/書き込みの時間を短縮することができます。
複数のコンピューターで構成されるサイトでのキャッシュの生成
スタンドアロン サーバー、ホスティング サーバー、またはフェデレーション サーバーを複数のコンピューターで構成されるサイトとして構成し、サーバー サイトに参加しているすべてのコンピューターのリソースを使用することで、キャッシュの生成を高速化できます。
ローカル キャッシュ ディレクトリ
ArcGIS Server サイトに複数のコンピューターが含まれる場合に、これらのコンピューターが、同時に共有キャッシュ ディレクトリにタイルを書き込もうとすると、スケーラビリティが低下します。 この理由により、サーバーはローカル キャッシュ ディレクトリを使用して、タイルを各 ArcGIS Server コンピューター上に一時的に書き込みます。
ArcGIS Server は、キャッシュがネットワーク共有またはクラウド オブジェクト ストアにある場合、デフォルトでローカル キャッシュ ディレクトリを使用します。 各キャッシュ サービス インスタンスは、1 つのバンドル ファイル (1,634 個のタイルの集合) をローカル キャッシュ ディレクトリに書き込みます。 完了すると、バンドルはファイル システムまたはクラウド オブジェクト ストア上の共有キャッシュ ディレクトリに移動します。 すべてのコンピューターが共有キャッシュ ディレクトリに直接バンドルを書き込むよりも、バンドルをローカルに書き込んで共有キャッシュ ディレクトリに移動するほうが、よりスケーラブルです。
ファイル ジオデータベースのローカル コピーの使用
キャッシュ プロセスでは、ソース コンテンツを複数回読み取る必要があります。 入力ソース データをネットワーク ロケーションに保持すると、複数のコンピューターが同時にソース データにアクセスした場合に、処理速度が低下する可能性があります。 これらの要求をコンピューター内で処理できる場合、タイルはより高速に描画されます。 そのため、ソース GIS データセットのコピーをサーバー上に配置すると、キャッシュ作成中の速度と安定性が向上します。
シーン サービス キャッシュとローカル キャッシュ ディレクトリ
ローカル キャッシュ ディレクトリは、シーン サービス用のシーン タイル コンテンツを構築する際にも使用されます。 シーン キャッシュは、最終的なキャッシュ タイル ストレージのためにタイル キャッシュ データ ストアに移動する前に、ローカル キャッシュ ディレクトリに作成されます。 これらの一時ファイルは、最終的なキャッシュ サイズの 3 ~ 5 倍になることもあり、キャッシュの構築が完了すると削除されます。
ローカル キャッシュ ディレクトリの場所の設定
デフォルトのローカル キャッシュ ディレクトリは、ArcGIS Server アカウントの temp フォルダーです。 このフォルダーは、ArcGIS Server Administrator Directory を使用して変更できます。
CachingTools ジオプロセシング サービスの実行インスタンスごとに、少なくとも 0.5 GB に ArcGIS Server サイト内のコンピューターの数を掛けた分の利用可能な領域をこの場所に確保することをお勧めします。 高い圧縮品質を使用する JPEG または混合形式のキャッシュ、またはビット深度の高い PNG の詳細なキャッシュを使用する際には、さらに多くの領域が必要になります。
前のセクションで説明したように、シーン サービスを公開する場合、ローカル キャッシュ ディレクトリには、シーン サービス キャッシュの作成時に生成される一時ファイルに対応できる十分な空き容量が必要です。
- ArcGIS Server サイト内の各コンピューターで、同一のパスを使用してディレクトリを作成します。 ArcGIS Server アカウントに、これらのディレクトリに対する書き込みのアクセス権限があることを確認します。
- Web ブラウザーを開いて、ArcGIS Server Administrator Directory に移動します。 URL の形式は、http://gisserver.domain.com:6080/arcgis/admin です。
- 必要な場合は、ArcGIS Server の管理アクセス権限を持つユーザー名とパスワードを使用してログインします。
- [system] > [properties] > [update] の順にクリックします。
- テキスト ボックスに、使用するフォルダーをポイントする localTempFolder プロパティを追加します。 例: {"localTempFolder":"E:\\arcgistemp"}
- [Update] ボタンをクリックします。
- ArcGIS Server Manager または [カタログ] ウィンドウを使用して、[System] という名前の ArcGIS Server フォルダーに移動し、次のサービスを停止してから開始します。
- マップおよびイメージ サービスの [CachingTools] ジオプロセシング サービス
- シーン サービスの [SceneCachingTools] ジオプロセシング サービス