Web アプリケーションのパフォーマンスのヒント
Web アプリケーションのパフォーマンスには、アプリケーションがユーザに応答する速さと、アプリケーションが対応できるユーザの数という 2 つの要因があります。ArcGIS Server Web アプリケーションのパフォーマンスの向上について考えると、ハードウェアを増設またはアップグレードすることが最初に思い浮かぶかもしれません。しかし、アプリケーションやマップ、サーバの設定において、Web アプリケーションのパフォーマンスを向上させるために調整できることが他にもある場合があります。
パフォーマンスを考慮したマップの設計
Web で使用するマップを設計することと、紙の地図や ArcMap などのデスクトップ アプリケーションで一般に操作するマップを設計することは、大きく異なります。ArcMap でよく使用するマップ ドキュメントがある場合は、マップを ArcGIS Server に直接公開するよりも、コピーを保存するほうが効率的です。このコピーを使用して、Web で表示するための最適化を行うことができます。
Web 上で表示するマップは、大幅に異なります。Web 上でのマップのパフォーマンスを最適化するには、ArcMap の [マップ サービス公開] ツールバーを使用して、マップ ドキュメントを検証します。すべてのエラーと可能な限り多くの警告を解決してから、このツールバーを使用してマップを公開します。これにより、サービスはマップ サービス定義(*.msd または MSD)ベースになります。これは、最速の描画速度でサービスを公開する方法です。
マップ サービスが MSD ベースであるかどうかに関係なく、パフォーマンス上の理由から、それをキャッシュすることを検討してください。マップをキャッシュするということは、その都度マップが描画されるのを待つのでなく、アプリケーションですぐに使用できるレンダリング済みのマップ イメージを作成し、格納することを意味します。マップをキャッシュする場合は、キャッシュされるすべての縮尺でマップが適切に表示されるように設計する必要があります。その方法については、「マップ キャッシュの計画」をご参照ください。
マップ サービスのキャッシュ
キャッシュされたマップ サービスは、マップ イメージをリアルタイムで描画する代わりに、事前に描画されたマップ タイルを配布します。キャッシュ サービスにより、マップの表示速度が速くなるだけではなく、サーバが対応できるユーザの数が大幅に増えます。一般に公開される Web アプリケーションの場合は、常にベースマップ サービスをキャッシュする必要があり、また、キャッシュ可能なすべての操作オーバーレイ サービスもキャッシュするようにします。
マップ キャッシュの構築に使用されているイメージ形式の評価
選択する画像形式によって、キャッシュのパフォーマンス、外観、およびディスク上のサイズが影響を受けます。PNG 8 は多くの MXD ベースのオーバーレイ サービスで効果的に機能します。一方、MSD ベースのオーバーレイ サービスには PNG 32 のほうが適しています。通常、ベースマップには JPEG が最適です。マップに多くのカラー バリエーションがある場合は特に JPEG が適しています。各画像形式の詳細については、「使用可能なマップ キャッシュ プロパティ」をご参照ください。
PNG 24 でのマップ サービスのキャッシュの回避
Internet Explorer 6 では、PNG 24 イメージの透過表示が制限されます。Web ADF にはこの制限に対処するコードが含まれていますが、この状況が発生した場合、パフォーマンスの低下は避けられません。この状況が発生しないようにするには、次の操作を行います。
- Internet Explorer 6 を使用する必要がある場合は、マップ サービスを PNG 8、PNG 32、または JPEG 形式でキャッシュします。
- Internet Explorer 6 以外のブラウザを使用して、オーバーレイされた PNG 24 形式のキャッシュ マップ サービスを表示します。
ArcGIS Server Internet 接続の使用(可能な場合)
ArcGIS Server Internet 接続を使ってサーバに接続すると、サーバ コンテキスト リクエストがより効率よく使用されるようになります。ArcGIS Server Local 接続は、アプリケーションで、Web ADF を使用してデータが編集されたりして、サービスの状態の変更が必要とされるときにのみ使用するようにしてください。
OverviewMap コントロールの静的モードの使用
縮尺や範囲が絶えず変更されるために概観図のパフォーマンスが低下しているように思える場合は、Visual Studio で Web アプリケーションを開き、OverviewMap コントロールの StaticMode プロパティが True に設定されていることを確認してください。これにより、Map の範囲が変更されても OverviewMap のイメージは変更されなくなります。
パフォーマンスを最適化するための TOC コントロールの設定
TOC コントロールには、サーバからリクエストされる情報の量を減らすためのオプションがいくつかあります。
- TocType:デフォルト設定である SwatchList では、レイヤ名と各レイヤ内のシンボルの両方を表示する TOC が生成されます。この設定を LayerList に変更すると、レイヤ名だけが表示され、シンボルは表示されなくなるので、サーバからリクエストされる情報の量が少なくなります。
- RenderOnDemand:TOC がシンボルを表示するように構成されている場合、このプロパティを True に設定すると、レイヤが拡大されるまでスウォッチ情報のリクエストが先送りされます。これは、アプリケーションの起動時間を短縮するのに役立ちます。
- ExpandDepth: 値を 0 または 1 に設定すると、アプリケーションが最初に起動したときに TOC に表示されるネストしたレイヤの数が最小限に抑えられます。
MapResourceItems の一部で Visible プロパティを False に設定することを検討してください。これにより、アプリケーションはより速く開くようになりますが、Web ページのユーザはレイヤを手動でオンにする必要があります。
不要な Web コントロールの削除
Manager または使用している IDE に表示されるデフォルトの Web マッピング アプリケーションには、TableOfContents、OverviewMap、Scalebar などの Web コントロールが含まれています。アプリケーションを操作すると、これらのコントロールが新しいイメージと更新された状態情報をリクエストします。めったに使用しないコントロールをアプリケーションから削除すると、アプリケーションのパフォーマンスとシステムのスケーラビリティが向上します。
リクエストごとの偽装を回避するための Web サービスの設定
配置環境を準備しているとき、Local Security Authority Subsystem Service(lsass.exe)の過度の使用を回避するために変更を加える必要があります。
Web サービスの 1 つからリクエストがあったとき、Web サーバは SOM(Server Object Manager)を使用して自身を認証する必要があります。Web サーバは、ポスト インストールを実行したときに AGSADMIN グループに追加された ArcGIS Web Services アカウントを偽装することで、これを行います。負荷が軽い場合は、この偽装によるコストはあまりかかりませんが、負荷が重い場合は、lsass.exe のプロセスが過度に使用され、パフォーマンスの著しい低下が発生します。1 秒間に 25 以上のリクエストがあると、負荷は重いものと見なされます。
このリクエストごとの偽装は、ArcGIS Web Services アカウントのアイデンティティで実行されるアプリケーション プールで Web サービスが実行されるように設定することで回避できます。これにより、lsass.exe プロセスに対する負荷が軽くなり、結果としてサービスがより早く実行されるようになります。
以下の Esri Knowledge Base 記事では、問題に関する補足的な背景情報が提供されており、また、コンフィグレーションを調整する方法が説明されています。
コーディングのベスト プラクティス
Visual Studio で Web マッピング アプリケーションをカスタマイズしている、またはカスタム アプリケーションを一から作成している場合は、開発者ヘルプの「Web ADF アプリケーションでのパフォーマンスの最適化」で説明するベスト プラクティスを参考にしてください。
不要な大規模クエリの回避
デフォルトでは、ArcGIS Server のマップ サービスでクエリが返すことのできるレコードの数は 1,000 個に制限されています。クエリのパフォーマンスを最適化するには、この値を維持するか、それより低い値を設定します。許可されるレコードの数は、マップ サービスの構成ファイルで MaxRecordCount プロパティを編集することで変更できます。
デフォルト値をより高い値に設定する場合は、注意が必要です。2,000 レコード以上を返すクエリには、レコードを管理するためシステムの TEMP ディレクトリにスクラッチ ワークスペースを作成するソフトウェアが必要です。これにより、パフォーマンスが低下することがあります。
ローカル パスの使用
ソース マップおよびデータへのローカル パスを使用すると、ネットワークまたは UNC(Universal Naming Convention)パスを使用する場合よりも良好なパフォーマンスが得られる傾向があります。ローカル パスを使用し、複数の SOC(Server Object Container)コンピュータを配置している場合は、同一のパスを使用してコンピュータごとにデータを複製する必要があります。
ArcSDE の中央サーバかローカルのファイル ジオデータベースのどちらを使用するかを決定する方法については、「ArcGIS Server でのデータ格納に関する検討事項」をご参照ください。