Skip To Content

Assurer une mise en cache efficace

La génération et le stockage de caches pour les services de carte et d’imagerie sont des opérations qui peuvent mobiliser beaucoup de ressources sur votre serveur. Vous trouverez ci-dessous les stratégies courantes que vous pouvez mettre en œuvre pour assurer une mise en cache plus efficace.

Estimer la taille du cache

Le fait de déterminer la taille du cache pour votre structure de tuilage vous permet d’allouer la quantité de ressources appropriée pour la génération du cache. Pendant la génération du contenu du cache, les besoins en ressources processeur, en mémoire, en espace disque et en temps sont d’autant plus importants que le cache est volumineux.

Dans la fenêtre Sharing (Partage) d’ArcGIS Pro, vous pouvez estimer la taille d’un cache en fonction de la configuration de la mise en cache. Cette estimation peut vous être utile pour comprendre les variations dans la taille du cache qui résultent de la sélection de formats d’image ou de niveaux d’échelle différents.

Pour plus d’informations, reportez-vous à la rubrique Configurer une couche de tuiles Web.

Mise en cache des niveaux détaillés à l’aide d’une zone d’intérêt

Par défaut, le contenu du cache est créé pour la vue générale d’une carte. Si vous créez des tuiles pour une grande entité géographique non rectangulaire, vous pouvez économiser du temps et des ressources en définissant interactivement une zone d’intérêt à mettre en cache.

Les zones d’intérêt sont les régions et les entités que les utilisateurs consultent le plus couramment. Par exemple, les grandes villes, les lieux d’intérêt et les autoroutes sont des zones d’intérêt courantes sur lesquelles les utilisateurs zooment fréquemment. Ces zones peuvent être adjacentes ou dispersées et séparées par des zones sur lesquelles les utilisateurs sont moins susceptibles de zoomer, comme les déserts ou les océans.

La mise en cache par zone d’intérêt ou par classe d’entités vous permet de créer et gérer des tuiles uniquement aux endroits où vous en avez besoin, ce qui réduit les zones vides ou sans intérêt. Ainsi, vous demandez que les outils de serveur créent uniquement des tuiles qui recouvrent ces zones d’intérêt. Le reste des zones peut être mis en cache à la demande si les clients le souhaitent. Cela vous permet de gagner du temps et d’économiser de l’espace disque, qui auraient autrement servi à créer des tuiles inutiles dans des zones où les utilisateurs ne se déplacent pas.

Il peut y avoir des zones d’intérêt multi-parties ou en une partie, et de forme régulière ou irrégulière.

Vous pouvez spécifier la classe d'entités à deux endroits.

  • Lorsque vous publiez un service ou que vous initialisez pour la première fois un cache, définissez le paramètre Area of interest to cache (Zone d’intérêt à mettre en cache) dans l’onglet Caching > Advanced Settings (Mise en cache > Paramètres avancés) de l’Éditeur de services. Dans la liste déroulante, sélectionnez Importer à partir d'une classe d'entités. Cette zone d'intérêt s'applique uniquement si vous avez décidé de créer le cache automatiquement lors de la publication.
  • Ouvrez l'outil Gérer des tuiles de cache de serveur de globe et définissez le paramètre Zone d'intérêt. Ce paramètre remplace d'éventuelles zones d'intérêt que vous avez définies dans l'Editeur de services.
Remarque :

Si vous exécutez l’outil Manage Map Server Cache Tiles (Gérer des tuiles de cache de serveur de carte) dans ArcGIS Pro, vous avez également la possibilité de tracer une zone d’intérêt à l'écran. Cela s’avère utile pour les exécutions uniques de l’outil destinées à appliquer les tuiles manquantes dans une zone connue du cache ou d’assurer la couverture dans une zone donnée. Cependant, pour la plupart des tâches ou des mises à jour de mise en cache structurée, il est recommandé de fournir une classe d’entités.

L'image suivante montre une grille théorique des tuiles qui seraient créées si la classe d'entités contenait simplement l'état de Californie. La classe d'entités permet d'éviter la création de tuiles inutiles dans l'océan et dans les états voisins. Ces tuiles inutiles auraient été incluses si l'étendue rectangulaire par défaut avait été utilisée.

Illustration de la création de tuiles selon les limites d’entité

Si vous souhaitez créer ou mettre à jour un cache basé sur une classe d'entités points ou polylignes, vous devez d'abord mettre les entités en mémoire tampon par petits lots afin d'obtenir une classe d'entités surfaciques. Il est également recommandé de fusionner et de généraliser les zones tampons avant de les utiliser comme zone d’intérêt.

Étant donné que vous créez relativement peu de tuiles aux échelles mondiale et nationale, la mise en cache par classe d’entités ne fait pas une grande différence.

Eviter les projections à la volée

Il vous est recommandé de projeter vos données source dans le même système de coordonnées que celui de votre carte et de votre structure de tuilage de manière à éviter une projection à la volée.

Si vous choisissez de ne pas changer la projection de votre base de données de travail, il vous est recommandé de préparer un réplica monodirectionnel de votre base de données de production qui servira uniquement à créer le cache et à répondre aux requêtes des utilisateurs.

Optimiser l’étiquetage

L’étiquetage est le processus qui consiste à générer et placer automatiquement un texte descriptif pour les entités de cartes et de scènes. Une étiquette est une partie de texte, sur une carte, qui est placée de façon dynamique et qui est dérivée d’un ou plusieurs attributs d’entités. Le calcul des meilleurs emplacements pour les étiquettes de carte peut être chronophage, et donc ralentir la création de vos tuiles.

Par défaut, un moteur d’étiquetage standard est utilisé pour déterminer l’endroit où placer chaque étiquette. La durée de ce processus augmente proportionnellement au nombre d’étiquettes à générer.

Lors d’une tâche de mise en cache, ArcGIS dessine individuellement des zones de grande taille pour réduire les étiquettes dupliquées. Ces zones de grande taille (super tuiles) sont ensuite divisées en tuiles individuelles de plus petite taille. Une super tuile correspond à 2 048 x 2 048 pixels avec anti-crénelage ou à 4 096 x 4 096 pixels sans.

Vous ne devriez pas voir d’étiquettes dupliquées dans la super tuile, mais ses limites peuvent en contenir. En effet, lorsqu’une super tuile est étiquetée, le moteur de placement d’étiquettes ne prend pas en charge les étiquettes sur les super tuiles adjacentes. En fait, votre moteur d’étiquetage peut tenter d’inclure autant d’étiquettes que possible dans une super tuile, plaçant ainsi certaines étiquettes près du bord. Il peut faire la même chose sur la super tuile adjacente, générant ainsi des doublons près des limites de la super tuile.

Couches d’annotations

Les couches d’annotations sont un moyen d’éviter les étiquettes dupliquées dans un cache. L’annotation est une couche spéciale dans laquelle chaque étiquette est traitée comme une entité avec des attributs. Les attributs incluent un emplacement attribué sur la carte pour chaque étiquette. Vous pouvez mettre à jour une couche d’annotations pour supprimer les étiquettes dupliquées.

L’annotation constitue la méthode la plus rapide pour dessiner des étiquettes lors de la mise en cache puisqu’elle ne nécessite aucune décision relative au placement des étiquettes. Chaque annotation possède des coordonnées prédéfinies qui sont un attribut de l’étiquette. Pour plus d’informations, reportez-vous à la rubrique Annotation.

Création de couches d’annotations pour les caches de carte

Les couches d’annotations peuvent devenir très volumineuses et la création d’annotation pour toutes les échelles de votre carte peut sembler fastidieuse. Deux outils dans le jeu d’outils Annotation, sous Cartography Tools (Outils de cartographie), sont conçus pour vous aider à créer l’annotation pour les caches de carte.

Le premier s’appelle Structure de tuilage du cache de serveur de carte en polygones. Cet outil lit une structure de tuilage pour le cache de carte et crée des carroyages représentant les limites de la super tuile à chaque échelle de la structure de tuilage. Ces carroyages permettent de décomposer la tâche de création d’annotation en morceaux gérables.

L’outil suivant est Étiquettes tuilées en annotations. Vous fournissez les carroyages de super tuile que vous avez créés, une carte et un espace de travail en sortie, afin que cet outil crée l’annotation pour chaque échelle de votre cache. L’annotation est créée pour toutes les couches de la carte pour lesquelles l’étiquetage est activé.

L’annotation générée par cet outil vous fournit le même placement d’étiquettes que celui obtenu en cas de création d’un cache. Vous pouvez ensuite examiner ou interroger la couche à la recherche des étiquettes dupliquées et les supprimer avant de créer le cache. Vous pouvez également nettoyer manuellement la couche d’annotations entre les mises à jour du cache si des conflits sont détectés.

Avant d’exécuter les outils ci-dessus sur une zone de grande taille, il est préférable de vous entraîner avec une carte simple en utilisant une petite étendue. La création de carroyages de super tuile et le dessin d’annotation étant chronophages, assurez-vous d’avoir indiqué les paramètres corrects lorsque vous utilisez les outils avec une carte étendue. Votre session d’entraînement vous aidera également à estimer le temps nécessaire à l’exécution des outils et le nombre d’annotations qu’ils créeront.

Étiquettes Maplex

Le moteur d’étiquetage Maplex propose davantage d’options, dispose de capacités de calcul plus évoluées et place un plus grand nombre d’étiquettes que le moteur d’étiquetage standard. Bien que Maplex produise de bons résultats, il consomme énormément de mémoire et peut ralentir la mise en cache des cartes.

Attention :

Avant d’utiliser Maplex pour créer un cache complet, il vous est recommandé de créer un cache de test et d’observer l’utilisation de la mémoire de votre système lors de la création des tuiles. Si, au cours de ce processus, l’utilisation de la mémoire est proche de la limite de votre machine, envisagez de désactiver Maplex. Si vous choisissez de ne pas désactiver Maplex, il est possible que votre système montre des signes d’instabilité et que des pannes se produisent lors de la création des tuiles.

Pour parvenir au juste équilibre entre le placement correct des étiquettes et les performances, il vous est recommandé d’utiliser le moteur d’étiquetage Maplex pour dessiner des étiquettes dans votre carte et convertir ces étiquettes en annotation, puis d’utiliser ces annotations dans votre service de carte.

Conservation des étiquettes dans un cache distinct

Les entités vectorielles et leurs étiquettes associées sont généralement incluses dans le même cache. Vous aurez rarement l’utilité d’autoriser les utilisateurs à désactiver les étiquettes. Toutefois, si cela est nécessaire, vous avez la possibilité de placer les étiquettes dans un cache distinct pour les isoler des entités.

En général, les étiquettes ne doivent pas être incluses dans les caches d’imagerie. En les conservant séparément, il est possible d’utiliser l’imagerie seule ou de la réutiliser dans d’autres applications. Plusieurs caches d’imagerie avec différents jeux d’étiquettes gravés dans les tuiles prendront de manière cumulative davantage d’espace sur le disque qu’un cache d’imagerie avec plusieurs caches de superposition d’étiquettes.

Optimiser la symbologie, les polices et l’anticrénelage

Dans certains cas, vous pouvez choisir d’ajouter des symboles textuels personnalisés ou des polices au contenu de votre carte. Pour plus d’informations, reportez-vous à la rubrique Symboles textuels.

Pour utiliser des polices dans une couche Web, elles doivent résider sur la machine qui fait partie du site de serveur ou, si les polices ne sont pas présentes sur le serveur, il doit être possible de les intégrer dans les ressources SIG. Pour vérifier si l’intégration d’une police est possible, consultez ses propriétés dans Microsoft Windows.

Remarque :

Les polices Type 1 ne pourront pas être intégrées en vue de leur utilisation dans les couches Web. Il est possible d’installer les polices Type 1 sur le serveur ou de les remplacer par des polices TrueType ou OpenType. L’absence de polices sur les machines serveur peut occasionner des recherches inutiles de substitution de polices pour déterminer la symbologie et ainsi ralentir les performances en matière de génération de cache. Pour vous assurer que le processus de génération du cache tient compte des polices récemment installées, redémarrez toutes les machines qui font partie du site de serveur.

L’anticrénelage est le processus qui consiste à lisser les tronçons des lignes et des étiquettes pour éviter qu’elles n’apparaissent pixélisées. Alors que l’anticrénelage du texte a peu d’impact sur les performances, l’anticrénelage des entités est un processus beaucoup exigeant en puissance de calcul qui ralentit la mise en cache.

L’application d’un certain niveau d’anticrénelage aux entités peut améliorer l’apparence de vos cartes vectorielles. Il est toutefois important de noter que chaque augmentation de la qualité d’anticrénelage peut augmenter considérablement le temps nécessaire à la création d’un cache. Les paramètres Fastest (Le plus rapide) et Fast (Rapide) conviennent à la plupart des caches. Il est préférable d’éviter les paramètres de qualité supérieure à moins que les caches de test témoignent de la nécessité d’utiliser le niveau de qualité supérieur.

Surveiller les ressources système pendant la mise en cache

Si vous souhaitez créer des tuiles le plus rapidement possible, votre processeur doit fonctionner presque à 100 % de sa capacité, mais pas à pleine capacité, pendant la création des tuiles. Puisque chaque carte est différente, vous devrez certainement expérimenter plusieurs paramètres de cache pour atteindre ce niveau d’utilisation du processeur. Pour plus d’informations, reportez-vous à la rubrique Outils de mise en cache et ressources serveur pour la mise en cache.

La mémoire de votre système est l’autre facteur qui détermine les performances de génération de cache. Les ressources mémoire sur les machines serveur participant au processus de génération du cache doivent être de 60 %. Le niveau d’utilisation de la mémoire par le processus de génération du cache dépend de la symbologie, de l’étiquetage et du nombre d’entités et de rasters que comptent vos services de carte ou d’imagerie. Si l’utilisation de la mémoire est proche de la limite de votre machine, des plantages aléatoires se produiront, et votre serveur pourrait cesser de répondre.

La bande passante réseau pour les données source et le répertoire arcgiscache est une autre métrique qu’il convient de surveiller. Le processus de mise en cache génère des milliers de demandes de lecture des données source. Le fait de disposer d’une bande passante de lecture suffisante pour les données source de la carte à mettre en cache va permettre de créer le cache plus rapidement.

Pendant la création du cache, chaque instance de mise en cache écrit des paquets dans le répertoire de cache défini pour le service de carte ou d’imagerie. Le fait de conserver le répertoire arcgiscache sur un système de fichiers qui héberge le répertoire arcgisjobs ou le répertoire arcgisoutput peut occasionner des ralentissements en raison du dépassement de la bande passante.

Pour votre cache de site de serveur SIG, vous pouvez désigner un répertoire sur un serveur de fichiers haute disponibilité qui utilise un réseau de stockage (SAN) ou un stockage en réseau (NAS) haute disponibilité. Votre service informatique peut vous aider dans cette configuration afin d’obtenir des meilleurs temps de lecture et d’écriture.

Génération de caches dans des sites multi-machines

Vous pouvez configurer votre serveur autonome, serveur d’hébergement ou serveur fédéré en tant que site multi-machine et utiliser les ressources de toutes les machines actives sur le site de serveur pour générer des caches plus rapidement.

Répertoire de cache local

Lorsque votre site ArcGIS Server contient plusieurs machines et que ces machines tentent d’écrire simultanément des tuiles dans un répertoire de cache partagé, l’évolutivité se dégrade. Pour cette raison, le serveur utilise un répertoire de cache local pour écrire temporairement des tuiles sur chaque machine ArcGIS Server.

ArcGIS Server utilise des répertoires de cache local par défaut lorsqu’un cache se trouve sur un partage réseau ou dans un object store Cloud. Chaque instance de service de mise en cache écrit un fichier de paquet (collection de 16 384 tuiles) dans le répertoire de cache local. Une fois complet, le paquet est déplacé dans le répertoire de cache partagé du système de fichiers ou de l’object store Cloud. Le fait d’écrire localement les paquets puis de les déplacer vers un répertoire de cache partagé est une technique plus modulable que d’obliger chaque machine à écrire directement les paquets dans le répertoire de cache partagé.

Utiliser une copie locale d’une géodatabase fichier

Le processus de mise en cache nécessite plusieurs lectures du contenu source. Le fait de conserver les données source en entrée dans une localisation de réseau peut donner lieu à un ralentissement si plusieurs machines ont accès simultanément aux données source. Si ces demandes peuvent rester sur leur machine respective, vos tuiles seront dessinées plus rapidement. Dès lors, le fait de placer un exemplaire des jeux de données SIG source sur vos serveurs vous permettra d’observer une amélioration des vitesses et de la stabilité pendant la création du cache.

Répertoires de cache de service de scène et de cache local

Le répertoire de cache local est également utilisé lors de la création du contenu des tuiles de scène pour les services de scène. Le cache de scène est généré dans le répertoire de cache local avant son transfert vers le data store de cache tuilé pour le stockage des tuiles des caches finalisés. Ces fichiers temporaires, qui peuvent représenter jusqu’à trois à cinq fois la taille des caches finalisés, seront supprimés à la fin de la création du cache.

Définir l'emplacement du répertoire de cache local

Le répertoire de cache local par défaut est le dossier temporaire du compte ArcGIS Server. Vous pouvez le modifier à l'aide du répertoire d'administrateur d'ArcGIS Server.

Vous devez disposer de 0,5 Go d’espace au minimum à cet emplacement pour chaque instance exécutée du service de géotraitement CachingTools, multiplié par le nombre de machines sur votre site ArcGIS Server. Il est possible que davantage d'espace soit requis pour les caches JPEG ou de format mixte dont la qualité de compression est élevée, ou les caches PNG détaillés avec une haute profondeur de couleur.

Comme indiqué dans la section précédente, si vous publiez des services de scène, le répertoire de cache local doit comporter un espace suffisant pour accueillir les fichiers temporaires générés lors de la création des caches des services de scène.

  1. Créez un répertoire sur chaque machine du site ArcGIS Server à l’aide d’un chemin d’accès identique. Assurez-vous que le compte ArcGIS Server possède des droits d’accès en écriture sur ces répertoires.
  2. Ouvrez un navigateur Web sur le répertoire administrateur d'ArcGIS Server. L’URL est au format http://gisserver.domain.com:6080/arcgis/admin.
  3. Au besoin, connectez-vous à l’aide d’un nom d’utilisateur et d’un mot de passe autorisant un accès administratif à ArcGIS Server.
  4. Cliquez sur système > propriétés > mettre à jour.
  5. Dans la zone de texte, ajoutez une propriété localTempFolder pointant vers votre dossier. Par exemple : {"localTempFolder":"/data/temp"}
  6. Cliquez sur le bouton Update (Mettre à jour).
  7. Utilisez ArcGIS Server Manager ou la fenêtre Catalog (Catalogue) pour accéder au dossier System d’ArcGIS Server, puis arrêtez et redémarrez les services suivants :
    • Le service de géotraitement CachingTools pour les services de carte et d'imagerie
    • Le service de géotraitement SceneCachingTools pour les services de scène