Astuces de performances pour les applications Web
Les performances d'une application Web impliquent à la fois la vitesse à laquelle l'application répond aux utilisateurs et le nombre d'utilisateurs qu'une application peut prendre en compte. Lorsque vous envisagez de renforcer les performances de vos applications Web ArcGIS Server, la première chose qui peut vous venir à l'esprit est l'ajout ou la mise à niveau de matériel. Pourtant, en ajustant certains paramètres dans votre application, votre carte ou votre serveur, vous pouvez également améliorer les performances de vos applications Web.
Optimiser les performances d'une carte dès sa conception
La conception de cartes pour le Web a peu de choses à voir avec la conception de cartes papier, ou même des cartes que vous utilisez fréquemment dans des applications bureautiques telles qu'ArcMap. Si vous utilisez souvent une carte dans ArcMap, vous pouvez en enregistrer une copie au lieu de la publier directement sur ArcGIS Server. A l'aide de la copie, vous pouvez apporter des optimisations spécifiques à la visualisation sur le Web.
Quels sont les différences des cartes qui seront visualisées sur le Web ? Pour optimiser les performances de votre carte Web, il est recommandé d'utiliser la barre d'outils Publication de services de carte d'ArcMap pour examiner la carte. Résolvez autant d'erreurs et d'avertissements que possible, puis publiez la carte à l'aide de la barre d'outils. Avec cette opération, votre service repose sur un fichier de définition de carte (.msd ou MSD), ce qui vous permet de le publier en bénéficiant du temps d'affichage le plus rapide possible.
Que votre service de carte soit de type MSD ou non, vous devez envisager sa mise en cache pour optimiser ses performances. La mise en cache d'une carte signifie que vous créez et stockez un ensemble de cartes de type image prérendues qui peuvent être très rapidement utilisées par l'application au lieu d'attendre que la carte s'affiche à chaque fois. Si vous optez pour la mise en cache de la carte, vous devez concevoir la carte pour qu'elle s'affiche correctement à toutes les échelles auxquelles elle sera mise en cache. Reportez-vous à la rubrique Planification d'un cache de carte pour savoir comment procéder.
Mettre en cache vos services de carte
Les services de carte mis en cache distribuent des tuiles de carte pré-dessinées au lieu de dessiner rapidement les cartes de type image. Les services mis en cache non seulement améliorent la vitesse d'affichage de votre carte, mais augmentent également le nombre d'utilisateurs que votre serveur peut prendre en compte. Pour une application Web à destination du public, il est conseillé de toujours mettre en cache le service de fond de plan et d'essayer de mettre en cache tous les services de superposition opérationnels qu'il est possible de mettre en cache.
Evaluer le format d'image avec lequel votre cache de carte est créé
Le format d'image que vous choisissez affecte les performances, l'apparence et la taille sur le disque de votre cache. Le format PNG 8 est idéal pour un grand nombre de services de superposition MXD, tandis que le format PNG 32 est mieux adapté aux services de superposition MSD. Pour les fonds de plan, le format JPEG constitue souvent le meilleur choix, en particulier si la carte comporte de grandes variations de couleurs. Reportez-vous à la rubrique Propriétés de cache de carte disponibles pour en savoir plus sur chaque format d'image.
Eviter de mettre en cache des services de carte au format PNG 24
La capacité d'affichage de la transparence pour les images PNG 24 est limitée dans Internet Explorer 6. L'infrastructure Web ADF comprend du code qui permet de contourner cette limitation, mais les performances risquent dans ce cas d'être ralenties. Evitez ce scénario en effectuant les opérations suivantes :
- Mise en cache de vos services de carte au format PNG 8, PNG 32 ou JPEG si Internet Explorer 6 doit être utilisé.
- Utilisation d'un navigateur autre qu'Internet Explorer 6 pour afficher les services de carte superposés mis en cache au format PNG 24.
Utiliser des connexions Internet ArcGIS Server lorsque cela est possible
Connectez-vous à votre serveur à l'aide des connexions Internet ArcGIS Server pour utiliser plus efficacement les demandes de contexte du serveur. Les connexions locales à ArcGIS Server doivent uniquement être utilisées lorsque l'application doit changer l'état du service, ce qui inclut la mise à jour des données avec Web ADF.
Vérifier que le contrôle Carte globale utilise le mode statique
Si les performances de votre carte globale semblent ralentir en raison des modifications répétées de l'échelle et de l'étendue, ouvrez l'application Web dans Visual Studio et vérifiez que la propriété StaticMode du contrôle OverviewMap est définie sur True. Cette opération empêche l'image OverviewMap de changer lorsque l'étendue de la carte change.
Configurer le contrôle TOC pour optimiser les performances
Le contrôle TOC dispose de plusieurs options permettant de réduire la quantité d'informations demandées auprès du serveur.
- TOCType : le paramètre par défaut de SwatchList génère un contrôle TOC qui répertorie à la fois les noms des couches et la symbologie au sein de chaque couche. En définissant ce paramètre sur LayerList, vous réduisez la quantité d'informations demandées auprès du serveur en affichant uniquement les noms des couches, et pas la symbologie.
- RenderOnDemand : lorsqu'un contrôle TOC est configuré pour afficher la symbologie, définir cette propriété sur True permet de différer la demande d'échantillons d'informations jusqu'à ce qu'une couche soit développée. Cette opération permet d'améliorer le temps de démarrage initial de l'application.
- ExpandDepth : utilise la valeur 0 ou 1 pour réduire le nombre de couches imbriquées visibles lorsque le contrôle TOC est affiché au démarrage initial de l'application.
Il est conseillé de définir la propriété Visible de certains de vos éléments MapResourceItem sur False. Cette opération permet d'accélérer l'ouverture de l'application, mais notez que l'utilisateur de la page Web devra activer manuellement les couches.
Supprimer les contrôles Web inutiles
L'application cartographique Web par défaut que vous voyez dans le gestionnaire ou votre environnement IDE comprend des contrôles Web tels que TableOfContents, OverviewMap et Scalebar. Lorsque vous interagissez avec votre application, ces contrôles demandent de nouvelles images et des informations d'état actualisées. La suppression des contrôles de l'application qui sont rarement utilisés contribue à améliorer les performances de l'application et l'évolutivité du système.
Configurer vos services Web pour éviter l'usurpation d'identité par demande
Lorsque vous préparez votre environnement de déploiement, vous devez apporter des modifications pour éviter de surcharger le service lsass.exe (Local Security Authority Subsystem Service).
Lorsqu'une personne émet une demande à partir de l'un de vos services Web, le serveur Web doit s'authentifier avec le gestionnaire des objets serveur (SOM). Pour cela, le serveur Web usurpe l'identité du compte des services Web ArcGIS, qui a été ajouté au groupe AGSADMIN au cours de la post-installation. Cette usurpation d'identité a peu d'impact avec de faibles charges, mais sous de lourdes charges, cela risque de surcharger le processus lsass.exe et par conséquent, de ralentir les performances de façon notable. On entend par lourdes charges, 25 demandes ou plus par seconde.
Pour éviter cette usurpation d'identité par demande, configurez vos services Web pour qu'ils fonctionnent dans un groupe d'applications qui s'exécute sous l'identité du compte des services Web ArcGIS. Cette opération permet d'alléger la charge qui pèse sur le processus lsass.exe et d'accélérer ainsi l'exécution de vos services.
Les articles suivants de la base de connaissances ESRI fournissent des informations supplémentaires sur le problème et expliquent comment ajuster votre configuration :
Suivre les conseils en matière de codage
Si vous personnalisez l'application cartographique Web dans Microsoft Visual Studio ou créez intégralement votre propre application, suivez les conseils en matière de codage donnés dans la rubrique Optimisation des performances dans les applications Web ADF de l'aide pour les développeurs.
Eviter les demandes inutilement importantes
Par défaut, les services de carte d'ArcGIS Server limitent à 1 000 le nombre d'enregistrements renvoyés par une requête. Conservez cette valeur ou réduisez-la pour optimiser les performances des requêtes. Vous pouvez changer le nombre de résultats autorisés en modifiant la propriété MaxRecordCount dans le fichier de configuration du service de carte.
Soyez prudent si vous augmentez la valeur par défaut. Pour les requêtes qui renvoient plus de 2 000 enregistrements, le logiciel doit créer des espaces de travail temporaires dans le répertoire TEMP du système, afin de gérer les enregistrements obtenus. Ceci peut avoir un impact négatif sur les performances.
Utiliser des chemins d'accès locaux
Utiliser des chemins d'accès locaux aux cartes source et aux données tend à donner de meilleurs résultats en termes de performances qu'utiliser des chemins d'accès réseau ou UNC (Universal Naming Convention). Si vous utilisez des chemins d'accès locaux et que votre déploiement compte plusieurs machines conteneurs d'objets serveur (SOC), vous devez dupliquer les données sur chaque machine à l'aide de chemins d'accès identiques.
Pour savoir si vous devez utiliser un serveur ArcSDE central ou des géodatabases fichier locales, reportez-vous à la rubrique Observations relatives au stockage des données pour ArcGIS Server.