Une configuration d’Adobe Experience Manager Assets contient un certain nombre de composants matériels, logiciels et réseau. Selon votre scénario de déploiement, vous pouvez avoir besoin d’apporter des modifications spécifiques à la configuration des composants matériels, logiciels et réseau pour supprimer les goulots d’étranglement en termes de performances.
En outre, l’identification et le respect de certaines instructions relatives à l’optimisation du matériel et des logiciels vous aident à créer une base solide qui permet à vos Experience Manager Déploiement de ressources pour répondre aux attentes en matière de performances, d’évolutivité et de fiabilité.
Mauvaise performance dans Experience Manager Les ressources peuvent avoir un impact sur l’expérience utilisateur en ce qui concerne les performances interactives, le traitement des ressources, la vitesse de téléchargement et d’autres aspects.
En fait, l’optimisation des performances est une tâche essentielle que vous effectuez avant d’établir des mesures cibles pour chacun de vos projets.
Voici quelques éléments principaux essentiels pour lesquels vous devez identifier et corriger les problèmes de performances avant que ceux-ci aient un impact sur les utilisateurs.
while Experience Manager est pris en charge sur un certain nombre de plateformes. Adobe a trouvé la meilleure prise en charge des outils natifs sous Linux et Windows, ce qui contribue à des performances optimales et à une facilité d’implémentation. Idéalement, vous devez déployer un système d’exploitation 64 bits pour répondre aux exigences de mémoire élevée d’un Experience Manager Déploiement des ressources. Comme avec tout Experience Manager déploiement, vous devez implémenter TarMK chaque fois que possible. Bien que TarMK ne puisse pas mesurer au-delà d’une instance d’auteur simple, il semble offrir de meilleurs résultats que MongoMK. Vous pouvez ajouter des instances de déchargement TarMK pour augmenter la puissance de traitement du workflow de votre Experience Manager Déploiement des ressources.
Afin de réduire les délais de chargement des ressources, utilisez un stockage haute performance pour le répertoire temporaire Java. Sous Linux et Windows, un disque SSD ou RAM peut être utilisé. Dans des environnements cloud, un type de stockage à grande vitesse équivalent peut être utilisé. Par exemple, dans Amazon EC2, une disque éphémère Le lecteur peut être utilisé pour le dossier temporaire.
En supposant que le serveur dispose de suffisamment de mémoire, configurez un disque RAM. Sous Linux, exécutez les commandes suivantes pour créer un disque RAM de 8 Go :
mkfs -q /dev/ram1 800000
mkdir -p /mnt/aem-tmp
mount /dev/ram1 /mnt/aem-tmp
df -H | grep aem-tmp
Sous le système d’exploitation Windows, vous devez utiliser un pilote tiers pour créer un disque RAM ou pour simplement utiliser le stockage haute performance tel qu’un SSD.
Une fois que le volume temporaire haute performance est prêt, définissez le paramètre JVM -Djava.io.tmpdir. Par exemple, vous pouvez ajouter le paramètre JVM ci-dessous à la variable CQ_JVM_OPTS dans le script bin/start d’AEM :
-Djava.io.tmpdir=/mnt/aem-tmp
Comme Oracle a cessé de publier les mises à jour de Java 7 depuis avril 2015, Adobe recommande de déployer Experience Manager Ressources sur Java 8. Dans certains cas, une amélioration des performances a été constatée.
Vous devez définir les paramètres JVM suivants :
-XX:+UseConcMarkSweepGC
-Doak.queryLimitInMemory
=500000-Doak.queryLimitReads
=100000-Dupdate.limit
=250000-Doak.fastQuerySize
=trueIl est recommandé de séparer l’entrepôt de données de l’entrepôt de segments pour tous les Experience Manager Utilisateurs des ressources. En outre, la configuration des paramètres maxCachedBinarySize
et cacheSizeInMB
peut vous aider à optimiser les performances. Définissez le paramètre maxCachedBinarySize
selon la plus petite taille de fichier pouvant être contenue dans le cache. Spécifiez la taille du cache en mémoire à utiliser pour l’entrepôt de données dans cacheSizeInMB
. Adobe vous recommande de définir cette valeur entre 2 et 10 % de la taille totale du tas. Toutefois, le chargement ou le test des performances peuvent vous aider à déterminer le paramètre idéal.
Lors du chargement d’un grand nombre de ressources vers Adobe Experience Manager, réduisez la taille maximale configurée du cache d’images mis en mémoire tampon. De cette façon, vous tiendrez compte des pics inattendus de consommation de la mémoire et éviterez l’échec de JVM avec des erreurs de mémoire insuffisante. Prenez l’exemple d’un système présentant un tas maximal (paramètre -Xmx
) de 5 Go, un BlobCache Oak défini sur 1 Go et un cache de documents défini sur 2 Go. Dans ce cas, le cache mis en mémoire tampon prendrait au maximum 1,25 Go, ce qui laisserait seulement 0,75 Go pour les pics inattendus.
Configurez la taille du cache mis en mémoire tampon dans la console web OSGi. À l’emplacement https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache
, définissez la propriété cq.dam.image.cache.max.memory
en octets. Par exemple, 1073741824 représente 1 Go (1 024 x 1 024 x 1 024 = 1 Go).
De Experience Manager 6.1 SP1, si vous utilisez une sling:osgiConfig
pour configurer cette propriété, veillez à définir le type de données sur Long. Pour plus de détails, voir CQBufferedImageCache utilise le tas pendant le téléchargement des ressources.
La mise en œuvre d’un entrepôt de données basé sur les fichiers, partagé ou S3, peut vous aider à économiser de l’espace disque et à augmenter le débit réseau dans des implémentations à grande échelle. Pour plus d’informations sur les avantages et inconvénients de l’utilisation d’une banque de données partagée, voir Guide de dimensionnement des ressources.
La configuration de l’entrepôt de données S3 suivante (org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg
) a permis à Adobe d’extraire 12,8 To d’objets BLOB (Binary Large Objects) d’un entrepôt de données basé sur les fichiers existant dans un entrepôt de données S3 vers un site client :
accessKey=<snip>
secretKey=<snip>
s3Bucket=<snip>
s3Region=us-standard
s3EndPoint=<a href="https://s3.amazonaws.com/">s3.amazonaws.com</a>
connectionTimeout=120000
socketTimeout=120000
maxConnections=80
writeThreads=60
concurrentUploadsThreads=30
asyncUploadLimit=30
maxErrorRetry=1000
path=/opt/author/crx-quickstart/repository/datastore
s3RenameKeys=false
s3Encryption=SSE_S3
proactiveCaching=true
uploadRetries=1000
migrateFailuresCount=400
Adobe recommande d’activer HTTPS, car de nombreuses entreprises qui possèdent des pare-feu analysent le trafic HTTP, ce qui a une incidence sur les chargements et endommage les fichiers. Pour les chargements de fichiers volumineux, assurez-vous que les utilisateurs disposent d’une connexion filaire au réseau, car les réseaux Wi-Fi saturent rapidement. Pour obtenir des instructions sur l’identification des goulets d’étranglement réseau, voir Guide de dimensionnement des ressources. Pour évaluer les performances du réseau en analysant sa topologie, consultez les Remarques sur le réseau des ressources.
Votre stratégie d’optimisation du réseau dépend principalement de la quantité de bande passante disponible et de la charge associée à votre Experience Manager instance. Les options de configuration courantes, notamment les pare-feu ou les proxys, peuvent améliorer les performances du réseau. Voici quelques points essentiels à prendre en compte :
Dans la mesure du possible, définissez le workflow Ressource de mise à jour de gestion des ressources numériques sur l’option Transitoire. Le paramètre réduit considérablement les surcharges nécessaires pour traiter les workflows car, dans ce cas, ils n’ont pas besoin de faire l’objet d’un suivi et de processus d’archivage classiques.
Par défaut, le workflow Ressources de mise à jour de gestion des actifs numériques est défini sur Transitoire dans Experience Manager 6.3. Dans ce cas, vous pouvez ignorer la procédure suivante.
Ouvrir http://localhost:4502/miscadmin
sur le Experience Manager instance que vous souhaitez configurer.
Dans l’arborescence de navigation, développez Outils > Workflow > Modèles > dam.
Double-cliquez sur Ressources de mise à jour de gestion des actifs numériques (DAM).
Depuis le panneau d’outils flottant, basculez vers l’onglet Page, puis cliquez sur Propriétés de la page.
Sélectionnez Processus transitoire, puis cliquez sur OK.
Certaines fonctions ne prennent pas en charge les workflows transitoires. Si votre Experience Manager Le déploiement des ressources requiert ces fonctionnalités, mais ne configurez pas de workflows transitoires.
Dans les cas où les workflows transitoires ne peuvent pas être utilisés, exécutez la purge des workflows régulièrement pour supprimer les workflows Ressource de mise à jour de gestion des actifs numériques afin de garantir que les performances système ne se dégraderont pas.
En règle générale, vous devez exécuter la purge des workflows sur une base hebdomadaire. Toutefois, dans les scénarios qui requièrent un important nombre de ressources, comme l’assimilation de ressources à grande échelle, vous pouvez l’exécuter plus fréquemment.
Pour configurer la purge des workflows, ajoutez une nouvelle configuration de purge de workflow d’Adobe Granite via la console OSGi. Configurez et planifiez ensuite le workflow dans le cadre de la période de maintenance hebdomadaire.
Si la purge s’exécute trop longtemps, elle s’arrête. Par conséquent, vous devez vous assurer que vos tâches de purge se terminent pour éviter les cas où l’exécution de la purge des workflows échoue en raison du nombre élevé de workflows.
Par exemple, après l’exécution d’un grand nombre de workflows transitoires (ce qui crée des nœuds d’instance de workflow), vous pouvez exécuter l’outil de suppression de workflow ACS AEM Commons sur une base ponctuelle. Il supprime les instances de workflow terminées et redondantes immédiatement sans attendre l’exécution du planificateur de purge de workflow d’Adobe Granite.
Par défaut, Experience Manager exécute un nombre maximal de tâches parallèles égal au nombre de processeurs sur le serveur. Le problème avec ce paramètre est que, pendant les périodes de charge importante, tous les processeurs sont occupés par des workflows Ressources de mise à jour de gestion des actifs numériques, ce qui ralentit la réactivité de l’interface utilisateur et empêche les Experience Manager d’exécuter d’autres processus qui assurent la stabilité et les performances du serveur. En tant que bonne pratique, définissez cette valeur sur la moitié des processeurs disponibles sur le serveur en procédant comme suit :
Configurer une file d’attente à la moitié des processeurs disponibles est une solution exploitable pour commencer. Cependant, vous pouvez être amené à augmenter ou à réduire ce nombre pour atteindre un débit maximal et l’ajuster selon l’environnement. Il existe des files d’attente distinctes pour les workflows transitoires et non transitoires, ainsi que d’autres processus, tels que les workflows externes. Si plusieurs files d’attente configurées à 50 % des processeurs sont activées simultanément, le système peut devenir rapidement surchargé. Les files d’attente utilisées varient considérablement selon les différentes implémentations de l’utilisateur. Par conséquent, vous devrez peut-être les configurer de manière réfléchie pour un maximum d’efficacité sans sacrifier la stabilité des serveurs.
Pour les workflows de volume élevé ou les workflows gourmands en ressources, tels que le transcodage vidéo, vous pouvez décharger les workflows Ressources de mise à jour de gestion des actifs numériques vers une deuxième instance d’auteur. Un problème récurrent avec le déchargement est que tout chargement enregistré via le déchargement du traitement des workflows est compensé par le coût de la réplication du contenu dans les deux sens entre les instances.
À partir de Experience Manager 6.2 et avec un Feature Pack pour Experience Manager 6.1, vous pouvez effectuer le déchargement avec une réplication sans fichier binaire. Dans ce modèle, les instances d’auteur partagent un entrepôt de données commun et envoient uniquement les métadonnées dans les deux sens via une réplication différée. Bien que cette technique fonctionne bien avec un entrepôt de données basé sur les fichiers partagé, certains problèmes peuvent survenir avec un entrepôt de données S3. Étant donné que les threads d’écriture en arrière-plan peuvent provoquer une certaine latence, il est possible qu’une ressource ne puisse avoir été écrite dans l’entrepôt de données avant le lancement de la tâche.
Le workflow Ressource de mise à jour de gestion des actifs numériques contient une suite complète d’étapes configurées pour les tâches, telles que la génération PTIFF Dynamic Media Classic et l’intégration des InDesigns Server. Cependant, plusieurs de ces étapes peuvent être inutiles à la plupart des utilisateurs. Adobe vous recommande de créer une copie personnalisée du modèle de workflow Ressource de mise à jour de gestion des actifs numériques, et de supprimer toutes les étapes inutiles. Dans ce cas, mettez à jour les lanceurs pour que les ressources de mise à jour de gestion des ressources numériques pointent vers le nouveau modèle.
L’exécution intensive du workflow Ressources de mise à jour de gestion des actifs numériques peut augmenter de manière importante la taille de votre entrepôt de données basé sur les fichiers. Les résultats d’un test effectué par Adobe ont montré que la taille de l’entrepôt de données peut augmenter d’environ 400 Go si environ 5 500 workflows sont exécutés pendant une période de 8 heures.
Il s’agit d’une augmentation temporaire ; l’entrepôt de données est restauré à sa taille d’origine après avoir exécuté la tâche Nettoyage de la mémoire d’entrepôt de données.
En règle générale, la tâche Nettoyage de la mémoire d’entrepôt de données s’exécute chaque semaine avec d’autres tâches de maintenance planifiées.
Si vous disposez d’un espace disque limité et exécutez de façon intensive le workflow Ressources de mise à jour de gestion des actifs numériques, pensez à planifier la tâche de nettoyage plus fréquemment.
Les clients utilisent des images de tailles et de formats différents sur leur site web ou pour les distribuer à leurs partenaires professionnels. Étant donné que chaque rendu s’ajoute à l’encombrement d’une ressource dans le référentiel, Adobe recommande d’utiliser cette fonction judicieusement. Pour limiter le nombre de ressources nécessaires pour traiter et stocker des images, vous pouvez générer ces images au moment de l’exécution plutôt que comme rendus pendant l’assimilation.
De nombreux clients de sites mettent en œuvre un servlet d’image qui redimensionne ou recadre les images lorsque cela est nécessaire, ce qui a pour effet d’appliquer une charge supplémentaire à l’instance de publication. Toutefois, tant que ces images peuvent être mises en cache, le défi peut être plus facilement relevé.
Une autre approche consiste à utiliser la technologie Dynamic Media Classic pour abandonner entièrement la manipulation d’images. En outre, vous pouvez déployer Brand Portal qui prend en charge les responsabilités de génération de rendu de la Experience Manager mais également l’ensemble du niveau de publication.
Si vous personnalisez le workflow Ressource de mise à jour de gestion des actifs numériques pour générer des rendus à l’aide d’ImageMagick, Adobe vous recommande de modifier le fichier policy.xml à l’adresse /etc/ImageMagick/. Par défaut, ImageMagick utilise l’espace disque disponible entier pour le volume du système d’exploitation et la quantité de mémoire disponible. Apportez les modifications de configuration suivantes dans le policymap
de policy.xml pour limiter ces ressources.
<policymap>
<!-- <policy domain="system" name="precision" value="6"/> -->
<policy domain="resource" name="temporary-path" value="/ephemeral0/imagemagick_tmp"/>
<policy domain="resource" name="memory" value="1000MiB"/>
<policy domain="resource" name="map" value="1000MiB"/>
<!-- <policy domain="resource" name="area" value="1gb"/> -->
<policy domain="resource" name="disk" value="10000MiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<policy domain="resource" name="thread" value="1"/>
<policy domain="resource" name="throttle" value="50"/>
<!-- <policy domain="resource" name="time" value="3600"/> -->
</policymap>
En outre, définissez le chemin du dossier temporaire d’ImageMagick dans le fichier configure.xml (ou en définissant la variable d’environnement MAGIC_TEMPORARY_PATH
) sur une partition de disque disposant d’un espace et d’IOPS appropriés.
Une configuration incorrecte peut rendre votre serveur instable si ImageMagick utilise tout l’espace disque disponible. Les modifications de stratégie requises pour traiter des fichiers volumineux à l’aide d’ImageMagick peuvent avoir une incidence sur la variable Experience Manager performance. Pour plus d’informations, voir Installation et configuration d’ImageMagick.
ImageMagick policy.xml
et configure.xml
Les fichiers se trouvent sous /usr/lib64/ImageMagick-*/config/
au lieu de /etc/ImageMagick/
. Voir Documentation d’ImageMagick pour plus d’informations sur les emplacements des fichiers de configuration.
Si vous utilisez Experience Manager sur Adobe Managed Services (AMS), contactez le service clientèle si vous envisagez de traiter un grand nombre de fichiers PSD ou PSB volumineux. Experience Manager peut ne pas traiter de fichiers PSB à très haute résolution de plus de 3 000 x 2 3000 pixels.
L’écriture différée XMP met à jour les ressources d’origine chaque fois que les métadonnées sont modifiées dans AEM, ce qui permet ce qui suit :
Les résultats répertoriés consomment une grande quantité de ressources. Par conséquent, Adobe recommande la désactivation de l’écriture différée XMP, si cela n’est pas obligatoire.
L’importation d’une grande quantité de métadonnées peut entraîner une activité d’écriture différée XMP gourmande en ressources si l’indicateur d’exécution de workflow est vérifié. Planifiez une importation de ce type quand le serveur est peu utilisé afin que les performances d’autres utilisateurs ne soient pas affectées.
Lors de la réplication des ressources vers un grand nombre d’instances de publication (par exemple, dans une implémentation de sites), Adobe vous recommande d’utiliser la réplication par chaîne. Dans ce cas, l’instance d’auteur est répliquée vers une instance de publication unique qui est répliquée à son tour vers d’autres instances de publication, ce qui libère l’instance d’auteur.
Adobe ne recommande pas d’activer automatiquement les ressources. Cependant, si nécessaire, Adobe recommande d’effectuer cette opération en tant que dernière étape d’un workflow, généralement Ressource de mise à jour de gestion des actifs numériques.
Veillez à mettre en œuvre les derniers Service Packs et les correctifs liés aux performances étant donné qu’ils contiennent souvent des mises à jour des index du système. Voir Conseils de réglage des performances | 6.x pour connaître certaines optimisations d’index qui peuvent être appliquées en fonction de votre version d’AEM.
Créez des index personnalisés pour les demandes que vous exécutez régulièrement. Pour plus d’informations, consultez la méthodologie pour l’analyse des requêtes lentes et la création d’index personnalisés. Pour des informations complémentaires au sujet des meilleures pratiques de requête et d’index, consultez les Meilleures pratiques pour les requêtes et l’indexation.
Certaines optimisations peuvent être effectuées sur les configurations d’index Oak qui peuvent contribuer à améliorer Experience Manager Performances des ressources :
Mettez à jour la configuration de LuceneIndexProvider :
Mettez à jour les configurations d’index pour améliorer la durée de réindexation :
(AEM 6.1 et 6.2 uniquement) Mettez à jour l’index ntBaseLucene pour améliorer les performances lors de la suppression et du déplacement des ressources :
Naviguez jusqu’à /oak:index/ntBaseLucene/indexRules/nt:base/properties
Ajout de deux noeuds nt:unstructured slingResource et damResolvedPath under /oak:index/ntBaseLucene/indexRules/nt:base/properties
Définissez les propriétés ci-dessous sur les noeuds (où les propriétés ordered et propertyIndex sont de type Booléen:
slingResource
name="sling:resource"
ordered=false
propertyIndex= true
type="String"
damResolvedPath
name="dam:resolvedPath"
ordered=false
propertyIndex=true
type="String"
Sur le nœud /oak:index/ntBaseLucene, définissez la propriété reindex=true
.
Cliquez sur Enregistrer tout
Surveillez le fichier error.log pour savoir quand l’indexation est terminée :
Réindexation terminée pour les index : [/oak:index/ntBaseLucene]
Vous pouvez également constater que l’indexation est effectuée en actualisant le nœud /oak:index/ntBaseLucene dans CRXDe, étant donné que la propriété reindex retourne à la valeur false
Une fois l’indexation terminée, revenez à CRXDe et définissez la variable type pour désactiver la propriété sur ces deux index
Cliquez sur Enregistrer tout
Désactiver l’extraction de texte Lucene :
Si les utilisateurs n’ont pas besoin de rechercher des contenus de ressources (par exemple, pour la recherche de texte contenu dans des documents PDF), vous pouvez améliorer les performances d’index en désactivant cette fonction.
Lors de la création de requêtes qui génèrent d’importants ensembles de résultats, utilisez le paramètre guessTotal
de façon à éviter une utilisation élevée de la mémoire lors de l’exécution.
Il existe deux problèmes importants connus relatifs aux fichiers volumineux dans AEM. Lorsque la taille des fichiers est supérieure à 2 Go, la synchronisation de reprise progressive peut s’exécuter en cas de mémoire insuffisante. Dans certains cas, cela empêche la synchronisation de reprise de s’exécuter. Dans d’autres cas, cela entraîne le blocage de l’instance principale. Ce scénario s’applique à tout fichier dans Experience Manager qui dépasse 2 Go, y compris les modules de contenu.
De même, lorsque les fichiers atteignent 2 Go lors de l’utilisation d’un entrepôt de données S3 partagé, cela peut prendre un certain temps pour que le fichier soit entièrement conservé du cache vers le système de fichiers. Par conséquent, lorsque vous avez recours à une réplication sans binaire, il est possible que les données binaires ne soient pas conservées avant la fin de la réplication. Cette situation peut entraîner certains problèmes, en particulier si la disponibilité des données est importante, par exemple, dans des scénarios de déchargement.
Pour chaque Experience Manager , établissez un régime de test de performance qui peut identifier et résoudre rapidement les goulets d’étranglement. Voici quelques points clés.
Pour tous les problèmes liés aux performances du réseau du client, effectuez les tâches suivantes :
Pour réduire la latence et atteindre un débit élevé grâce à une utilisation efficace du processeur et au partage de la charge, surveillez les performances de votre Experience Manager régulièrement. En particulier :
guessTotal
pour optimiser les performances des requêtes.