Conseils relatifs aux performances des services de géotraitement

Les clients souhaitent et attendent un service rapide. En conséquence, vos services de géotraitement doivent être rapides et efficaces. Comme ArcGIS for Server peut prendre en charge plusieurs clients à la fois, des services inefficaces risquent de surcharger votre serveur. À ressources informatiques équivalentes, plus vos services sont efficaces, plus nombreux sont les clients pouvant être pris en charge.

Vous trouverez ci-dessous des conseils et des techniques pour optimiser les performances de vos services. Ces techniques sont généralement classées : celles qui assurent des améliorations de performances conséquentes sont présentées en premier. Les derniers conseils peuvent vous faire gagner quelques dixièmes de seconde sur votre temps d'exécution, ce qui peut être utile pour certaines tâches.

Utilisation de couches pour les données de projet

Lorsque vous exécutez un outil de géotraitement pour créer un résultat à publier, vous devez utiliser des couches comme données en entrée plutôt que des chemins vers des jeux de données situés sur le disque. Une couche référence un jeu de données sur le disque et certaines couches mettent en cache des propriétés relatives au jeu de données. Cela est particulièrement vrai pour les couches de jeu de données réseau et les couches raster. L'utilisation d'une couche à la place du chemin vers le jeu de données présente un avantage en termes de performances car lorsque le service est lancé, il crée la couche à partir du jeu de données, met en cache les propriétés de base du jeu de données et garde le jeu de données ouvert. Quand le service s'exécute, les propriétés du jeu de données sont immédiatement disponibles, le jeu de données est ouvert et prêt à être manipulé, ce qui constitue un réel gain de performance.

Par exemple, le service Champ de vision hébergé sur Esri SampleServer et l'Extension ArcGIS Network Analyst, qui créent des polygones de temps de conduite, utilisent tous deux des couches. En fonction de la taille du jeu de données, vous pouvez gagner plus de 1 à 2 secondes par exécution de service.

Utilisation de données stockées en local sur ArcGIS for Server

Les données de projet nécessaires aux services de géotraitement doivent être stockées en local sur ArcGIS for Server. Les données qui sont partagées et auxquelles vous accédez via un partage réseau (UNC) sont plus lentes que si elles étaient situées sur une même machine. Les chiffres des performances varient beaucoup, mais il n'est pas rare de constater que la lecture et l'écriture de données sur un réseau LAN prend deux fois plus de temps que sur un disque local.

Ecriture de données intermédiaires en mémoire

Vous pouvez écrire des données intermédiaires (temporaires) en mémoire. L'écriture de données en mémoire est plus rapide que leur écriture sur disque.

RemarqueRemarque :

Vous pouvez également écrire des données en sortie en mémoire, tant que vous n'utilisez pas de service de carte obtenu.

Avec la version 10.1, vous pouvez maintenant écrire des rasters en mémoire.

Pour en savoir plus sur l'écriture de données dans la mémoire

Prétraitez les données utilisées par vos tâches

La plupart des services de géotraitement sont censés être des applications spécialisées offrant des réponses aux requêtes spatiales spécifiques posées par les clients Web. Les tâches ayant tendance à être des opérations spécifiques sur des données connues, vous pouvez presque toujours prétraiter les données en vue d'optimiser l'opération. Par exemple, l'ajout d'un attribut ou d'un index spatial est un prétraitement simple d'optimisation des opérations de sélection spatiale et attributaire. Autres exemples :

Ajout d'un index attributaire

Si votre tâche sélectionne des données à l'aide de requêtes attributaires, créez un index attributaire pour chaque attribut utilisé dans les requêtes. Vous pouvez utiliser l'outil Ajouter un index attributaire. Vous n'avez à créer l'index qu'une seule fois. Vous devez effectuer cette opération en dehors de votre modèle ou de votre script.

Ajout d'index spatiaux

Si votre modèle ou votre script formule des requêtes spatiales sur des fichiers de formes, créez un index spatial pour le fichier de formes à l'aide de l'outil Ajouter un index spatial. Si vous utilisez des classes d'entités de géodatabase, les index spatiaux sont créés automatiquement et mis à jour pour vous. Dans certains cas, recalculer un index spatial permet d'améliorer les performances, comme indiqué dans la rubrique Définition des index spatiaux

Utilisation de tâches synchrones plutôt qu'asynchrones

Vous pouvez indiquer au service de géotraitement de s'exécuter en mode synchrone ou asynchrone. En mode asynchrone, le temps système d'exécution du serveur est légèrement plus long. En conséquence, les tâches asynchrones s'exécutent rarement en moins d'une seconde. L'exécution de la même tâche en mode synchrone est un dixième de seconde plus rapide que son exécution en mode asynchrone.

Evitez des transformations de coordonnées inutiles

Si la tâche utilise des jeux de données géographiques exprimés dans des systèmes de coordonnées différents, les outils de géotraitement de la tâche devront peut-être les convertir en un seul et même système de coordonnées au cours de l'exécution. En fonction de la taille des jeux de données, la conversion des coordonnées d'un système de coordonnées en un autre peut ralentir la tâche. Vous devez donc connaître les systèmes de coordonnées de vos jeux de données et identifier le besoins éventuels en termes de conversion de ces systèmes par les outils de la tâche. Vous pouvez choisir de convertir tous les jeux de données utilisés par la tâche en un seul et même système de coordonnées. Pour plus d'informations sur les systèmes de coordonnées et sur leur impact sur les outils de géotraitement, reportez-vous aux rubriques suivantes :

Réduisez la taille de données

Tous les logiciels de traitement de données fonctionnent plus rapidement quand le jeu de données est petit. Il existe plusieurs manières de réduire la taille de vos données géographiques :

Différences ente les versions 10.0 et 10.1

Si vous avez créé des services de géotraitement dans la version 10.0, vous avez utilisé les techniques d'optimisation de la performance indiquées ci-dessous. Vous n'avez plus besoin d'utiliser ces techniques dans la version 10.1.

LegacyLegacy :

Avant la version 10.1, si votre configuration ArcGis for Server comportait plusieurs machines (appelés maintenantclusters) ou que vous utilisiez des chemins UNC vers le répertoire arcgisjobs, il était recommandé de paramétrer un répertoire de tâches local. Ce répertoire de tâches local améliorait sensiblement le temps d'exécution car le traitement de chaque tâche se faisait sur le serveur local, puis le résultat final était transmis au client. Dans la version 10.1, la configuration de répertoires de tâches locaux est une tâche d'administrateur du serveur SIG. Ainsi, en tant que créateur de tâches, vous n'avez plus besoin de spécifier que votre tâche utilise le répertoire de tâches local puisqu'il est automatiquement utilisé si le serveur fait partie d'un cluster de plus d'une machine ou que les répertoires sont référencés à l'aide d'un chemin UNC.

LegacyLegacy :

Avant la version 10.1, si le service de géotraitement s'exécutait sur des rasters, il était préférable de les mettre au format GRID. Certains outils étant optimisés pour ce format, l'exécution était généralement plus rapide. Dans la version 10.1, tous les outils raster peuvent désormais lire et écrire le format source sans aucune perte de performance.

Thèmes connexes

9/12/2013