Quand utiliser les directives de performance

Suivez les directives de performance dans les cas suivants :

  • Premier déploiement  : lorsque vous envisagez de déployer AEM Sites ou Assets pour la première fois, il est important de bien comprendre les options disponibles. Surtout pour la configuration du micronoyau, du magasin de nœuds et du magasin de données (par rapport aux paramètres par défaut). Vous pouvez par exemple modifier les paramètres par défaut du magasin de données pour TarMK en magasin de données de fichiers.
  • Mise à niveau vers une nouvelle version  : lors de la mise à niveau vers une nouvelle version, il est important de comprendre les différences de performance par rapport à l’environnement en cours d’exécution. Il s’agit par exemple de la mise à niveau d’AEM 6.1 vers 6.2 ou d’AEM 6.0 CRX2 vers 6.2 OAK.
  • Temps de réponse lent  : lorsque l’architecture Nodestore sélectionnée ne répond pas à vos besoins, il est important de comprendre les différences de performance par rapport aux autres options de topologie. Il s’agit par exemple du déploiement de TarMK au lieu de MongoMK ou de l’utilisation d’un magasin de données de fichiers au lieu d’un magasin de données Amazon S3 ou Microsoft® Azure.
  • Ajout d’autres auteurs et autrices  : lorsque la topologie TarMK recommandée ne répond pas aux exigences de performance et que la mise à niveau du nœud d’instance de création a atteint la capacité maximale disponible, comprenez bien les différences de performance. Comparez l’utilisation de MongoMK avec trois nœuds d’instance de création ou plus. Par exemple, le déploiement de MongoMK au lieu de TarMK.
  • Ajouter plus de contenu  : lorsque l’architecture recommandée de magasin de données ne répond pas à vos besoins, il est important de comprendre les différences de performance par rapport à d’autres options de magasin de données. Exemple : utilisation du magasin de données Amazon S3 ou Microsoft® Azure au lieu d’un magasin de données de fichiers.

Présentation

Ce chapitre propose une vue d’ensemble de l’architecture d’AEM et de ses composants les plus importants. Il fournit également des directives de développement et décrit les scénarios de test utilisés dans les tests de référence TarMK et MongoMK.

La plateforme AEM

La plateforme AEM comprend les composants suivants :

chlimage_1

Pour plus d’informations sur la plateforme AEM, reportez-vous à la section Qu’est-ce qu’AEM ?.

L’architecture d’AEM

Un déploiement d’AEM comporte trois blocs de création importants. L’instance de création qui est utilisée par les personnes qui créent, éditent et approuvent du contenu pour produire et réviser du contenu. Lorsque le contenu est validé, il est publié sur un second type d’instance nommé instance de publication à partir de laquelle les personnes utilisatrices finales y accèdent. Le troisième composant clé est le Dispatcher, qui est un module chargé de la mise en mémoire cache et du filtrage des URL. Il est installé sur le serveur web. Pour plus d’informations sur l’architecture d’AEM, consultez les Scénarios de déploiement classiques.

chlimage_1-1

Micronoyaux

Les micronoyaux agissent comme des gestionnaires de persistance dans AEM. Il existe trois types de micronoyaux utilisés par AEM : TarMK, MongoDB et la base de données relationnelle (prise en charge limitée). Le choix d’une solution adaptée à vos besoins dépend de l’objectif de votre instance et du type de déploiement que vous prévoyez. Pour plus d’informations sur les micronoyaux, consultez la page Déploiements recommandés.

chlimage_1-2

Entrepôt de nœuds

Dans AEM, les données binaires peuvent être stockées indépendamment des nœuds de contenu. L’emplacement de stockage des données binaires est désigné sous le nom de magasin de données, tandis que l’emplacement des nœuds de contenu et des propriétés est nommé magasin de nœuds.

REMARQUE
Adobe recommande TarMK comme technologie de persistance par défaut à utiliser par la clientèle pour les instances de création et de publication d’AEM.
ATTENTION
Le micronoyau de la base de données relationnelle est pris en charge de manière limitée. Contactez l’assistance clientèle d’Adobe avant d’utiliser ce type de micronoyau.

chlimage_1-3

Magasin de données

Lorsque vous traitez un grand nombre de fichiers binaires, il est recommandé d’utiliser un magasin de données externe au lieu du magasin de nœuds par défaut pour optimiser la performance. Par exemple, si votre projet nécessite un grand nombre de ressources multimédias, leur stockage dans le magasin de données de fichiers ou Azure/S3 rendra leur accès plus rapide que leur stockage direct dans une base de données MongoDB.

Pour plus de détails sur les options de configuration disponibles, consultez la section Configuration de magasins de nœuds et de magasins de données.

REMARQUE
Adobe vous recommande de choisir l’option de déploiement d’AEM sur Azure ou Amazon Web Services (AWS) à l’aide d’Adobe Managed Services. Les clientes et clients bénéficient d’une équipe qui dispose de l’expérience et des compétences nécessaires pour déployer et exploiter AEM dans ces environnements de cloud computing. Consultez les documents complémentaires sur Adobe Managed Services.
Pour obtenir des recommandations sur le déploiement d’AEM sur Azure ou AWS, en dehors d’Adobe Managed Services, Adobe recommande de travailler directement avec le fournisseur de cloud. Vous pouvez également collaborer avec l’un des partenaires d’Adobe qui prend en charge le déploiement d’AEM dans l’environnement cloud de votre choix. Le fournisseur ou partenaire cloud sélectionné est responsable du dimensionnement, de la conception et de l’implémentation de l’architecture qu’ils prennent en charge pour répondre à vos besoins spécifiques en termes de performances, de charge, d’évolutivité et de sécurité.

Consultez également la page des exigences techniques.

Rechercher

Les fournisseurs d’index personnalisés utilisés avec AEM sont répertoriés dans cette section. Pour en savoir plus sur l’indexation, consultez la section Requêtes Oak et indexation.

REMARQUE
Adobe recommande d’utiliser l’index Lucene dans la plupart des déploiements. Solr est réservé aux déploiements spécialisés et complexes qui demandent de l’évolutivité.

chlimage_1-4

Conseils de développement

Développez pour AEM et optimisez les performances et l’évolutivité. Vous trouverez ci-dessous quelques bonnes pratiques :

Bonnes pratiques

  • Faites une distinction entre la présentation, la logique et le contenu.
  • Utilisez les API d’AEM (Sling etc.) et les outils (la réplication, par exemple) à votre disposition.
  • Développez dans le contexte du contenu réel.
  • Développez avec une mise en cache optimale en ligne de mire.
  • Réduisez le nombre d’enregistrements (par exemple, en utilisant des workflows transitoires).
  • Assurez-vous que tous les points d’entrée HTTP sont RESTful.
  • Limitez la portée de l’observation JCR.
  • Gardez à l’esprit les threads asynchrones.

Mauvaises pratiques

  • N’utilisez pas directement les API JCR, si possible.

  • Ne modifiez pas les répertoires /libs, utilisez plutôt des recouvrements.

  • N’utilisez pas de requêtes dans la mesure du possible.

  • N’utilisez pas de liaisons Sling pour obtenir des services OSGi dans le code Java™, mais utilisez plutôt :

    • @Reference dans un composant DS ;
    • @Inject dans un modèle Sling ;
    • sling.getService() dans une classe d’utilisation Sightly ;
    • sling.getService() dans un JSP ;
    • un ServiceTracker ;
    • un accès direct au registre du service OSGi.

Pour plus d’informations sur le développement sur AEM, consultez la section Principes de base du développement. Pour consulter d’autres bonnes pratiques, rendez-vous sur Bonnes pratiques en matière de développement.

Scénarios de référence

REMARQUE
Les tests présentés sur cette page ont été réalisés dans un environnement de laboratoire.

Les scénarios de test présentés ci-dessous sont utilisés pour les sections de référence des chapitres TarMK, MongoMk et TarMK contre MongoMk. Pour identifier le scénario qui a été utilisé pour un test comparatif particulier, consultez le champ de scénario du tableau Caractéristiques techniques.

Scénario de produit unique

AEM Assets :

  • Interactions utilisateur : parcourir les ressources / rechercher des ressources / télécharger la ressource / lire les métadonnées de la ressource / mettre à jour les métadonnées de la ressource / télécharger la ressource / exécuter le workflow Télécharger la ressource.
  • Mode d’exécution : utilisateurs et utilisatrices simultanés, une seule interaction par personne.

Scénario de produits mixtes

AEM Sites + AEM Assets :

  • Interactions utilisateur de Sites : lire une page d’article / lire une page / créer un paragraphe / modifier le paragraphe / créer une page de contenu / activer la page de contenu / créer une recherche.
  • Interactions utilisateur d’Assets : parcourir les ressources / rechercher des ressources / télécharger la ressource / lire les métadonnées de la ressource / mettre à jour les métadonnées de la ressource / télécharger la ressource / exécuter le workflow Télécharger la ressource.
  • Mode d’exécution : utilisateurs et utilisatrices simultanés, interactions mixtes par personne.

Scénario de cas d’utilisation vertical

Média :

  • Read Article Page (27.4%), Read Page (10.9%), Create Session (2.6%), Activate Content Page (1.7%), Create Content Page (0.4%), Create Paragraph (4.3%), Edit Paragraph (0.9%), Image Component (0.9%), Browse Assets (20%), Read Asset Metadata (8.5%), Download Asset (4.2%), Search Asset (0.2%), Update Asset Metadata (2.4%), Upload Asset (1.2%), Browse Project (4.9%), Read Project (6.6%), Project Add Asset (1.2%), Project Add Site (1.2%), Create Project (0.1%), Author Search (0.4%)
  • Mode d’exécution : utilisateurs et utilisatrices simultanés, interactions mixtes par personne.

TarMK

Ce chapitre donne des recommandations pour tirer le meilleur parti des performances de TarMK. Vous y trouverez les exigences minimales en matière d’architecture et la configuration des paramètres. Des tests de référence sont également fournis pour plus de clarté.

Adobe recommande TarMK comme technologie de persistance par défaut à utiliser par les client(e)s dans tous les scénarios de déploiement, pour les instances d’auteur et de publication AEM.

Pour plus d’informations sur TarMK, consultez les Scénarios de déploiement et la section Stockage Tar.

Recommandations sur l’architecture minimale de TarMK

REMARQUE
Les recommandations relatives à l’architecture minimale présentées ci-dessous concernent les environnements de production et les sites à trafic élevé. Ces recommandations ne sont pas les spécifications minimales requises pour exécuter AEM.

Pour obtenir de bonnes performances lors de l’utilisation de TarMK, commencez par l’architecture suivante :

  • une instance de création ;
  • deux instances de publication ;
  • deux Dispatchers.

Vous trouverez, dans l’exemple ci-dessous, les recommandations sur l’architecture d’AEM Sites et AEM Assets.

REMARQUE
La réplication sans binaires doit être ACTIVÉE si le magasin de données du fichier est partagé.

Recommandations sur l’architecture Tar pour AEM Sites

chlimage_1-5

Conseils d’architecture Tar pour AEM Assets

chlimage_1-6

Paramètres TarMK recommandés

Pour obtenir de bonnes performances, il est recommandé de définir les paramètres comme suit. Pour obtenir des instructions sur la modification des paramètres, Voir Optimisation des performances.

ConfigurationParamètreValeurDescription
Files d’attente des tâches Slingqueue.maxparallelDéfinissez la valeur sur la moitié du nombre de cœurs de processeur.Par défaut, le nombre de threads simultanés par file d’attente de tâche est égal au nombre de cœurs du processeur.
File d’attente du workflow transitoire GraniteMax ParallelDéfinissez la valeur sur la moitié du nombre de cœurs de processeur.
Paramètres JVM

Doak.queryLimitInMemory

Doak.queryLimitReads

Dupdate.limit

Doak.fastQuerySize

500000

100000

250000

True

Pour empêcher les requêtes volumineuses de surcharger les systèmes, ajoutez les paramètres JVM suivants dans le script de démarrage d’AEM.
Configuration de l’index Lucene

CopyOnRead

CopyOnWrite

Prefetch Index Files

Activé

Activé

Activé

Pour plus d’informations sur les paramètres disponibles, rendez-vous sur cette page.
Magasin de données = Magasin de données S3

maxCachedBinarySize

cacheSizeInMB

1 048 576 (1 Mo) ou plus petit

2 à 10 % de la taille maximale du tas

Consultez également les configurations du magasin de données.
Workflow Ressource de mise à jour de la gestion des DAMTransient WorkflowvérifiéCe processus gère la mise à jour des ressources.
Écriture différée des métadonnées de gestion des DAMTransient WorkflowvérifiéCe workflow gère l’écriture différée XMP au format binaire d’origine et définit la date de la dernière modification dans JCR.

Référence des performances de TarMK

Spécifications techniques

Les tests comparatifs ont été réalisés selon les spécifications suivantes :

Nœud Auteur
ServeurMatériel « métal nu » (HP)
Système d’exploitationRed Hat® Linux®
Processeur / CœursProcesseur Intel® Xeon® E5-2407 @2,40 GHz, 8 cœurs
Mémoire RAM32 Go
DisqueMagnétique
Java™Oracle JRE version 8
JVM Heap16 Go
ProduitAEM 6.2
Entrepôt de nœudsTarMK
Magasin de donnéesFile DS
ScénarioProduit unique : Assets / 30 threads simultanés

Résultats de l’évaluation des performances

REMARQUE
Les chiffres présentés ci-dessous ont été normalisés à 1 comme référence et ne sont pas les chiffres de débit réels.

chlimage_1-7 chlimage_1-8

MongoMK

La principale raison pour choisir le serveur principal de persistance MongoMK plutôt que TarMK est de mettre les instances à l’échelle horizontale. Ainsi, au moins deux instances de création actives fonctionnent en permanence et MongoDB est utilisé comme système de stockage de persistance. La nécessité d’exécuter plusieurs instances de création est due au fait que la capacité du processeur et de la mémoire d’un seul serveur, prenant en charge toutes les activités de création simultanées, n’est plus suffisante.

Pour plus d’informations sur TarMK, consultez les Scénarios de déploiement et la section Stockage Mongo.

Rrecommandations sur l’architecture minimale de MongoMK

Pour tirer le meilleur parti des performances de MongoMK, commencez par l’artchitecture suivante :

  • trois instances de création ;
  • deux instances de publication ;
  • trois instances MongoDB ;
  • deux Dispatchers.
REMARQUE
Dans les environnements de production, MongoDB est toujours utilisé comme ensemble de répliques avec une instance principale et deux instances secondaires. L’instance principale gère les tâches de lecture et d’écriture, tandis que les instances secondaires peuvent s’occuper des opérations de lecture. Si le stockage n’est pas disponible, l’une des instances secondaires peut être remplacée par un arbitre, mais les ensembles de répliques de MongoDB doivent toujours être composés d’un nombre impair d’instances.
REMARQUE
La réplication sans binaires doit être ACTIVÉE si le magasin de données du fichier est partagé.

chlimage_1-9

Paramètres MongoMK recommandés

Pour obtenir de bonnes performances, il est recommandé de définir les paramètres comme suit. Pour obtenir des instructions sur la modification des paramètres, voir Optimisation des performances.

ConfigurationParamètreValeur (par défaut)Description
Files d’attente des tâches Slingqueue.maxparallelDéfinissez la valeur sur la moitié du nombre de cœurs de processeur.Par défaut, le nombre de threads simultanés par file d’attente de tâche est égal au nombre de cœurs du processeur.
File d’attente du workflow transitoire GraniteMax ParallelDéfinissez la valeur sur la moitié du nombre de cœurs de processeur.
Paramètres JVM

Doak.queryLimitInMemory

Doak.queryLimitReads

Dupdate.limit

Doak.fastQuerySize

Doak.mongo.maxQueryTimeMS

500000

100000

250000

True

60000

Pour empêcher les requêtes volumineuses de surcharger les systèmes, ajoutez les paramètres JVM suivants dans le script de démarrage d’AEM.
Configuration de l’index Lucene

CopyOnRead

CopyOnWrite

Prefetch Index Files

Activé

Activé

Activé

Pour plus d’informations sur les paramètres disponibles, voir cette page.
Magasin de données = Magasin de données S3

maxCachedBinarySize

cacheSizeInMB

1 048 576 (1 Mo) ou plus petit

2 à 10 % de la taille maximale du tas

Voir aussi Configurations du magasin de données.
DocumentNodeStoreService

cache

nodeCachePercentage

childrenCachePercentage

diffCachePercentage

docChildrenCachePercentage

prevDocCachePercentage

persistentCache

2048

35 (25)

20 (10)

30 (5)

10 (3)

4 (4)

./cache,size=2048,binary=0,-compact,-compress

La taille par défaut du cache est définie sur 256 Mo.

Cela a un impact sur le temps nécessaire pour effectuer l’invalidation du cache.

oak-observation

thread pool

length

min & max = 20

50000

Référence des performances de MongoMK

Spécifications techniques

Les tests comparatifs ont été réalisés selon les spécifications suivantes :

Nœud AuteurNœud MongoDB
ServeurMatériel « métal nu » (HP)Matériel « métal nu » (HP)
Système d’exploitationRed Hat® Linux®Red Hat® Linux®
Processeur / CœursProcesseur Intel® Xeon® E5-2407 @2,40 GHz, 8 cœursProcesseur Intel® Xeon® E5-2407 @2,40 GHz, 8 cœurs
Mémoire RAM32 Go32 Go
DisqueMagnétique - >1k IOPSMagnétique - >1k IOPS
Java™Oracle JRE version 8S/O
JVM Heap16 GoS/O
ProduitAEM 6.2MongoDB 3.2 WiredTiger
Entrepôt de nœudsMongoMKS/O
Magasin de donnéesFile DSS/O
ScénarioProduit unique : Assets / 30 threads simultanésProduit unique : Assets / 30 threads simultanés

Résultats de l’évaluation des performances

REMARQUE
Les chiffres présentés ci-dessous ont été normalisés à 1 comme référence et ne sont pas les chiffres de débit réels.

chlimage_1-10 chlimage_1-11

Comparaison de TarMK et MongoMK

La règle de base à prendre en compte pour choisir entre les deux est que TarMK est conçu pour les performances, tandis que MongoMK est utilisé pour l’évolutivité. Adobe recommande TarMK comme technologie de persistance par défaut à utiliser par les utilisateurs dans tous les scénarios de déploiement, pour les instances d’auteur et de publication AEM.

La principale raison pour choisir le serveur principal de persistance MongoMK plutôt que TarMK est de mettre les instances à l’échelle horizontale. Cette fonctionnalité signifie que deux instances de création principales ou plus s’exécutent toujours et utilisent MongoDB comme système de stockage de persistance. La nécessité d’exécuter plusieurs instances de création découle généralement du fait que la capacité du processeur et de la mémoire d’un seul serveur, prenant en charge toutes les activités de création simultanées, n’est plus suffisante.

Pour plus d’informations sur la comparaison de TarMK et MongoMK, voir Déploiements recommandés.

Consignes sur la comparaison de TarMK et MongoMk

Avantages de TarMK

  • Conçu spécifiquement pour les applications de gestion de contenu
  • Les fichiers sont toujours cohérents et peuvent être sauvegardés à l’aide de n’importe quel outil de sauvegarde basé sur les fichiers
  • Fournit un mécanisme de basculement : consultez la section Cold Standby pour plus d’informations
  • Offre des performances élevées et un stockage des données fiable avec un coût d’exploitation minimal
  • Coût total de possession plus faible

Critères de sélection de MongoMK

  • Nombre d’utilisateurs et d’utilisatrices nommés connectés au cours de la journée : des milliers ou plus
  • Nombre d’utilisateurs et d’utilisatrices simultanés : des centaines ou plus
  • Volume d’ingestions de ressources par jour : des centaines de milliers ou plus
  • Volume de modifications de page par jour : des centaines de milliers ou plus
  • Volume de recherches par jour : des dizaines de milliers ou plus

Références concernant la comparaison de TarMK et MongoMK

REMARQUE
Les chiffres présentés ci-dessous ont été normalisés à 1 comme référence et ne sont pas des chiffres de débit réels.

Spécifications techniques du scénario 1

Nœud OAK de créationNœud MongoDB
ServeurMatériel « métal nu » (HP)Matériel « métal nu » (HP)
Système d’exploitationRed Hat® Linux®Red Hat® Linux®
Processeur / CœursProcesseur Intel(R) Xeon(R) E5-2407 @2,40 GHz, 8 cœursProcesseur Intel(R) Xeon(R) E5-2407 @2,40 GHz, 8 cœurs
Mémoire RAM32 Go32 Go
DisqueMagnétique - >1k IOPSMagnétique - >1k IOPS
Java™Oracle JRE version 8S/O
JVM Heap 16 Go16 GoS/O
ProduitAEM 6.2MongoDB 3.2 WiredTiger
Entrepôt de nœudsTarMK ou MongoMKS/O
Magasin de donnéesFile DSS/O
ScénarioProduit unique : Ressources / 30 threads simultanés par exécution

Résultats de la comparaison des performances du scénario 1

chlimage_1-12

Spécifications techniques du scénario 2

REMARQUE
Pour permettre le même nombre d’instances de création avec MongoDB qu’avec un système TarMK, vous avez besoin d’un cluster composé de deux nœuds AEM. Un cluster MongoDB à quatre nœuds peut gérer 1,8 fois plus d’instances de création qu’une instance TarMK. Un cluster MongoDB à huit nœuds peut gérer 2,3 fois plus d’instances de création qu’une instance TarMK.
Nœud TarMK de créationNœud MongoMK de créationNœud MongoDB
ServeurAWS c3.8xlargeAWS c3.8xlargeAWS c3.8xlarge
Système d’exploitationRed Hat® Linux®Red Hat® Linux®Red Hat® Linux®
Processeur / Cœurs323232
Mémoire RAM60 Go60 Go60 Go
DisqueSSD - 10 000 IOPSSSD - 10 000 IOPSSSD - 10 000 IOPS
Java™Oracle JRE version 8Oracle JRE version 8S/O
JVM Heap 16 Go30 Go30 GoS/O
ProduitAEM 6.2AEM 6.2MongoDB 3.2 WiredTiger
Entrepôt de nœudsTarMKMongoMKS/O
Magasin de donnéesFile DSFile DSS/O
ScénarioCas pratique vertical : Media / 2 000 threads simultanés

Résultats de la comparaison des performances du scénario 2

chlimage_1-13

Conseils relatifs à l’évolutivité de l’architecture d’AEM ִSites et d’AEM Assets

chlimage_1-14

Résumé des recommandations sur les performances

Consultez ci-dessous un résumé des recommandations fournies sur cette page :

  • TarMK avec magasin de données du fichier  : l’architecture recommandée pour la plupart des clientes et clients :

    • Topologie minimale : une instance de création, deux instances de publication, deux Dispatcher.
    • La réplication sans fichiers binaires doit être activée si le magasin de données du fichier est partagé.
  • MongoMK avec magasin de données du fichier  : l’architecture recommandée pour l’évolutivité horizontale au niveau de création :

    • Topologie minimale : trois instances de création, trois instances MongoDB, deux instances de publication, deux Dispatcher.
    • La réplication sans fichiers binaires doit être activée si le magasin de données du fichier est partagé.
  • Magasin de nœuds  : stocké sur le disque local et non sur un serveur NAS (dispositif de stockage réseau).

  • Lorsque vous utilisez Amazon S3  :

    • Le magasin de données Amazon S3 est partagé entre les niveaux de création et de publication.
    • La réplication sans fichiers binaire doit être activée.
    • La récupération de l’espace mémoire du magasin de données nécessite une première exécution sur tous les nœuds des instances de création et de publication, puis une seconde exécution sur l’instance de création.
  • L’index personnalisé doit être créé en plus de l’index prêt à l’emploi.  : selon les recherches les plus courantes.

    • Les index Lucene doivent être utilisés pour les index personnalisés.
  • La personnalisation du workflow peut améliorer sensiblement les performances  : la suppression de l’étape vidéo dans le workflow « Ressource de mise à jour », la désactivation d’écouteurs qui ne sont pas utilisés, etc.

Pour plus d’informations, consultez également la page Déploiements recommandés.

recommendation-more-help