Valeurs réglables par défaut de HCL Commerce

HCL Commerce comporte deux profils d'instance, Test et Production. Chaque profil contient ses propres valeurs de paramètre réglable pour les serveurs d'application HCL Commerce, notamment les machines virtuelles Java (JVM), le cache, etc. Ces valeurs sont en place pour fournir un niveau de base standard de la performance à partir duquel opérer, ou personnaliser pour améliorer des configurations individuelles.

Le profil Test est utilisé pour les serveurs d'applications dans l'environnement de test de création ou fonctionnel. Le profil Production est utilisé pour les serveurs d'applications dans l'environnement de test de production ou de performance. Les valeurs ajustables répertoriées dans ce document fournissent une référence que vous pouvez utiliser comme point de départ pour affiner votre propre environnement. Vous pouvez régler chaque valeur en fonction du résultat du test de performance dans votre propre environnement.

HCL Commerce utilise la conteneurisation. Pour vous assurer que vos paramètres réglés persistent dans les instances de conteneur ultérieures, suivez la procédure décrite dans Création d'une image Docker personnalisée à partir d'un package déployable. Vous pouvez également personnaliser le processus de démarrage Docker pour effectuer l'ajustement de la JVM pendant le démarrage de Docker. Pour plus d'informations, voir Tutoriel : Personnalisation de la logique de démarrage Docker. Si aucune commande runEngine n'existe, vous pouvez développer une commande runEngine personnalisée ou remplacer le fichier de configuration complet par du contenu personnalisé. A des fins de test ou d'expérimentation, vous pouvez modifier la valeur ajustable manuellement.

Paramètres JVM de WebSphere IBM (pour HCL Commerce et HCL Commerce Search)

La table suivante répertorie les valeurs de démarrage pour les serveurs d'applications WebSphere qui s'exécutent dans Liberty (pour le serveur de magasin et de recherche) et WebSphere Application Server (pour les serveurs de transactions). Pour simplifier l'effort d'ajustement, utilisez des paramètres d'ajustement similaires pour différents serveurs d'applications. Si la charge de travail est susceptible d'être différente sur plusieurs serveurs (par exemple, sur le serveur de transactions qui est comparé aux serveurs de magasin), vous pouvez utiliser différentes valeurs ajustables pour différents serveurs. Voici les commandes RunEngine pour modifier les paramètres JVM : set-heap-size/add-system-property (pour les serveurs de magasin et de recherche) et set-heap-size/add-generic-jvmarg (pour les serveurs de transactions). Pour modifier manuellement les paramètres JVM dans Liberty, modifiez directement le fichier jvm.options. Pour WebSphere Application Server, effectuez vos modifications dans la console d'administration.

Valeurs par défaut dans HCL Commerce et HCL Commerce Search
Nom de la propriété Profil de test de la version 9 Profil de production de la version 9
JDK 32/64 bits 64 bits 64 bits
Taille de la pile de l'unité d'exécution -Xss1m -Xss1m
Taille du segment de mémoire initiale (-Xms) 512m 2048m
Taille du segment de mémoire maximale (-Xmx) 1536m 4096m
Désactiver JIT Non Non
Règle de récupération de place (-Xgcpolicy) gencon gencon
Unités d'exécution de libération mémoire (-Xgcthreads) 2* 8*

Définissez la valeur gcthreads sur le numéro VCPU disponible ou le numéro VCPU -1. Pour déterminer le numéro VCPU optimal pour chaque conteneur Docker du serveur d'applications, reportez-vous à Optimisation des performances de Docker.

Zone de création fixe (-Xmn) Non spécifié 1536m
Zone de création de début(-Xmns) 256m Non spécifié
Zone de création maximale (-Xmnx) 768m Non spécifié
Journalisation de la récupération de place

Activée avec rotation de journaux* :

-Xverbosegclog[:<file>[,<X>,<Y>]]

Activée avec rotation de journaux* :

-Xverbosegclog[:<file>[,<X>,<Y>]]

* Pour plus d'informations sur cette valeur par défaut, voir Boring but necessary: Rotate the GC log!.

Paramètre d'ajustement supplémentaire pour l'optimisation JSP -Dcom.ibm.wsspi.jsp.disableResourceInjection=true -Dcom.ibm.wsspi.jsp.disableResourceInjection=true

HCL Commerce Paramètres de cache (DynaCache)

Le cache de base est l'instance de cache qui stocke les entrées de cache Servlet et certaines entrées de cache de commandes. Il est défini dans tous les serveurs d'applications : magasin, transaction et recherche. Toutefois, le cache de base n'est pas utilisé par défaut sur le serveur de recherche.

Les valeurs ajustables sont applicables lorsqu'un cache Servlet (pour un fragment JSP) est utilisé. Le cache est stocké dans le serveur du magasin dans l'environnement de magasin distant ou dans le serveur de transactions dans l'environnement du magasin local. Pour l'environnement de magasin distant, le serveur du magasin de production suit normalement le profil Production, tandis que le serveur de transactions suit le profil Test. Modifiez manuellement les paramètres du cache de base : Sur les serveurs Liberty, modifiez directement le fichier server.xml. Sur WebSphere Application Server, effectuez vos modifications ai sein de la console d'administration.

Valeurs par défaut des paramètres de cache pour HCL Commerce et HCL Commerce Search (DynaCache)
Nom de la propriété Profil de test de la version 9 (ou lorsque le cache Servlet n'est pas utilisé) Profil de production de la version 9 (ou lorsque le cache Servlet est utilisé)
base Cache size
2000 5000
enableDiskOffload
Désactivé Activé
flushToDiskOnStop
Désactivé Désactivé
diskCachePerformanceLevel
Indisponible Performances hautes et utilisation de la mémoire haute
diskCacheSize
Indisponible 10 Go*

10 Go est une valeur de départ. Votre valeur peut être déterminée en équilibrant l'espace disque et la taille totale de l'entrée du cache.

HCL Commerce Paramètres du cache de données :

Configuration du cache de données HCL Commerce

Différentes instances de cache de données sont définies pour chacun des trois serveurs d'applications HCL Commerce (Magasin, Recherche et Transaction). La valeur de profil par défaut est la même pour la même instance de cache sur différents serveurs (par exemple, WCFlexFlowDistributedMapCache existe à la fois sur le serveur de magasin et le serveur de transactions). Cependant, vous pouvez ajuster la valeur en fonction de l'utilisation réelle sur différents serveurs.

Les valeurs de la table suivante sont les valeurs de démarrage pour l'ajustement des performances. Le volume de vos données d'entreprise est susceptible d'être différent de la valeur par défaut. Par conséquent, par exemple, une entreprise peut avoir un grand catalogue (et par conséquent un grand nombre de groupe de catalogues et d'entrées de catalogue), mais un très petit nombre de promotions. Une autre entreprise peut avoir un petit catalogue, mais un grand nombre de promotions. Augmentez ou diminuez la taille du cache de données en conséquence. L'augmentation de votre cache de données augmentera l'encombrement de la mémoire en fonction du nombre d'objets mis en cache (les caches de données ne sont stockés qu'en mémoire). L'équipe de performances HCL Commerce a effectué des tests de performance pour s'assurer que le paramètre de taille du cache recommandé ne cause pas de situations dans laquelle la mémoire est insuffisante. Toutefois, la taille réelle du cache de données en mémoire est déterminée par chaque taille d'entrée de cache et par le nombre d'entrées de cache total en mémoire. Effectuez vos propres tests de performance pour vous assurer que la taille du cache de données configuré peut être contenue dans la mémoire et garantir un équilibre entre les performances et l'utilisation de la mémoire.

Instances de cache de données du serveur de transactions

Vous pouvez modifier manuellement les paramètres du cache de données de la console d'administration WebSphere Application Server.

Nom de la propriété Profil de test de la version 9 Profil de production de la version 9
name="InventoryCache"
jndiName="dmap/IVCache"
20 000 100 000
name="PriceCache"
jndiName="dmap/PriceCache"
20 000 100 000
name="MarketingCache"
jndiName="services/cache/DM_Cache"
2500 25 000
name="MarketingUserCache"
jndiName="services/cache/DM_UserCache"
10 000 50 000
name="FlexFlowCache" 
jndiName="services/cache/WCFlexFlowDistributedMapCache"
1 000 5 000
name="InventoryConfigurationCache"
jndiName="dmap/IC_Cache"
5 000 25 000
name="LayoutCache"
jndiName="services/cache/WCLayoutDistributedMapCache"
1 000 5 000
name="PreviewTokenCache"
jndiName="services/cache/PT_Cache"
1 000 5 000
name="PriceRuleCache"
jndiName="dmap/PR_Cache"
5 000 25 000
name="RESTTagCache" 
jndiName="services/cache/WCRESTTagDistributedMapCache"
1 000 5 000
name="SEORedirectRulesCache"
jndiName="services/cache/WCSEORedirectRulesDistributedMapCache"
1 000 5 000
name="SEOURLCache"
jndiName="services/cache/WCSEOURLDistributedMapCache"
5 000 25 000
name="SEOURLKeyword2URLTokenCache"
jndiName="services/cache/WCSEOURLKeyword2URLTokenDistributedMapCache"
3 000 15 000
name="SEOURLToken2URLKeywordCache"
jndiName="services/cache/WCSEOURLToken2URLKeywordDistributedMapCache"
3 000 15 000
name="SearchAttributeCache"
jndiName="services/cache/WCSearchAttributeDistributedMapCache"
5 000 25 000
name="SearchCatHierarchyCache"
jndiName="services/cache/WCSearchCatHierarchyDistributedMapCache"
2 000 10 000
name="SearchFacetCache"
jndiName="services/cache/WCSearchFacetDistributedMapCache"
2 000 10 000
name="SearchMerchandisingCache"
jndiName="services/cache/WCSearchMerchandisingDistributedMapCache"
1 000 5 000
name="SearchNavigationCache"
jndiName="services/cache/WCSearchNavigationDistributedMapCache"
1 000 5 000
name="SearchSTACache"
jndiName="services/cache/WCSearchSTADistributedMapCache"
100 000 500.000
name="WidgetDefinitionCache"
jndiName="services/cache/WCWidgetDefinitionDistributedMapCache"
1 000 5 000
name="SystemCache"
jndiName="services/cache/WCSystemDistributedMapCache"
2 000 10 000
name="SessionCache"
jndiName="services/cache/WCSessionDistributedMapCache"
1 000 5 000
name="WCContractDistributedMapCache" 
jndiName="services/cache/WCContractDistributedMapCache"
1 000 1 000
name="WCPromotionDistributedMapCache" 
jndiName="services/cache/WCPromotionDistributedMapCache"
3 000 10 000
name="WCMarketingCache"
jndiName="services/cache/WCMarketingDistributedMapCache"
3 000 15 000
name="UserCache"
jndiName="services/cache/WCUserDistributedMapCache"
3 000 15 000
name="CatalogGroupCache" 
jndiName="services/cache/WCCatalogGroupDistributedMapCache"
3 000 15 000
name="CatalogEntryCache" 
jndiName="services/cache/WCCatalogEntryDistributedMapCache"
5 000 50 000
name="WCPriceCache"
jndiName="services/cache/WCPriceDistributedMapCache"
5 000 50 000
name="MiscCache"
jndiName="services/cache/WCMiscDistributedMapCache"
3 000 15 000
name="WCCache"
jndiName="services/cache/WCDistributedMapCache"
10 50
name="WCStoreDistributedMapCache" 
jndiName="services/cache/WCStoreDistributedMapCache"
10 10
name="SEOPageDefinitionCache"
jndiName="services/cache/WCSEOPageDefinitionDistributedMapCache"
5 000 25 000

lnstances de cache de données du serveur de magasin

Vous pouvez modifier manuellement les paramètres du cache de données en modifiant directement server.xml.

Nom de la propriété Profil de test de la version 9 Profil de production de la version 9
id="services/cache/WCFlexFlowDistributedMapCache"
1 000 5 000
id="services/cache/WCSEOURLDistributedMapCache"
5 000 25 000
id="services/cache/WCSEOURLKeyword2URLTokenDistributedMapCache"
3 000 15 000
id="services/cache/WCSEOURLToken2URLKeywordDistributedMapCache"
3 000 15 000
id="services/cache/WCLayoutDistributedMapCache"
1 000 5 000
id="services/cache/WCSEORedirectRulesDistributedMapCache"
1 000 5 000
id="services/cache/WCRESTTagDistributedMapCache"
1 000 5 000
id="services/cache/WCStoreDistributedMapCache"
1 000 1 000

Instances de cache de données du serveur de recherche

Vous pouvez modifier manuellement les paramètres du cache de données en modifiant directement server.xml.

Nom de la propriété Profil de test de la version 9 Profil de production de la version 9
id="SearchDistributedMapCache" 
jndiName="services/cache/SearchDistributedMapCache"
5 000 25 000
id="SearchCommandDistributedMapCache" 
jndiName="services/cache/SearchCommandDistributedMapCache"
1 000 5 000
id="SearchSystemDistributedMapCache" 
jndiName="services/cache/SearchSystemDistributedMapCache"
2 000 10 000
id="SearchUserDistributedMapCache" 
jndiName="services/cache/SearchUserDistributedMapCache"
3 000 15 000
id="SearchNavigationDistributedMapCache" 
jndiName="services/cache/SearchNavigationDistributedMapCache"
5 000 25 000
id="SearchCatHierarchyDistributedMapCache" 
jndiName="services/cache/SearchCatHierarchyDistributedMapCache"
2 000 10 000
id="SearchFacetDistributedMapCache" 
jndiName="services/cache/SearchFacetDistributedMapCache"
2 000 20 000
id="SearchContractDistributedMapCache" 
jndiName="services/cache/SearchContractDistributedMapCache"
5 000 25 000
id="SearchMerchandisingDistributedMapCache" 
jndiName="services/cache/SearchMerchandisingDistributedMapCache"
1 000 5 000
id="SearchAttributeDistributedMapCache" 
jndiName="services/cache/SearchAttributeDistributedMapCache"
5 000 25 000
id="SearchMiscDistributedMapCache" 
jndiName="services/cache/SearchMiscDistributedMapCache"
3 000 15 000
id="SearchCacheConfigureDistributedMapCache" 
jndiName="services/cache/SearchCacheConfigureDistributedMapCache"
100 100

Autres paramètres ajustables

Les paramètres ajustables suivants ne s'appliquent qu'au profil Production. Vous n'avez pas besoin de les régler pour le profil Testing.

Paramètre Liberty Executeur

Liberty a un modèle de pool d'unités d'exécutions différent de celui de WebSphere Application Server. Il existe un pool Executor unifié pour différentes connexions. La valeur par défaut pour cela est l'ajustement automatique. Toutefois, les tests de performance HCL Commerce révèlent que cette valeur peut provoquer des comportements imprévus avec de lourdes charges de travail.

Par conséquent, le réglage pour le serveur de magasin et de recherche est le suivant. Vous pouvez modifier ce paramètre manuellement en modifiant le fichier de configuration server.xml. Définissez la valeur suivante :
<executor maxThreads="50" coreThreads="4" />

Paramètre HTTP KeepAlive

Dans HCL Commerce version 9, HTTPS est utilisé par défaut pour toutes les connexions aux serveurs WebSphere Application Server. La poignée de main SSL initiale qui démarre la connexion HTTPS a un coût élevé. Pour atténuer cela, activez le paramètre KeepAlive pour les connexions HTTP. Sur les serveurs Liberty (pour les serveurs de magasin et de recherche), modifiez le serveur de configuration server.xml et définissez la valeur suivante :
<httpOptions keepAliveEnabled="true" maxKeepAliveRequests="-1" /> 
Sur le serveur de transactions, effectuez vos modifications à partir de la console WebSphere Application Server : Serveurs d'applications > server1 > Chaînes de transport de conteneurs Web > HttpQueueInboundDefaultSecure > canal entrant HTTP (HTTP_4). Sélectionnez le paramètre Utiliser des connexions toujours actives. Sélectionnez le paramètre Demandes persistantes illimitées par connexion.      
Remarque : définir maxKeepAliveRequests sur -1 signifie qu'il n'y a aucune limite au niveau du nombre de requêtes HTTP/HTTPS maximales pour une connexion. Ceci n'est pas recommandé pour les connexions à partir de navigateurs Web. Dans les environnements de production, la connexion aux serveurs d'applications provient du serveur Web ou du serveur proxy. Ainsi, dans ce cas, il est acceptable de le définir sur -1. Alternativement, vous pouvez le définir sur un grand nombre tel que 10 000.

Délai d'attente des transactions pour le serveur de recherche

Le serveur de recherche effectue fréquemment des transactions de longue durée. Le processus générer-index en est un exemple. Pour éviter les délais d'attente, augmentez la valeur de transaction par défaut de Liberty sur le serveur de recherche. Modifiez le fichier de configuration server.xml, en ajoutant :
<transaction totalTranLifetimeTimeout="600s"/>