Valores ajustables predeterminados de HCL Commerce

HCL Commerce tiene dos perfiles de instancia, Test y Production. Cada perfil contiene sus propios valores ajustables para los servidores de aplicaciones de HCL Commerce, incluidas las máquinas virtuales Java (JVM), las memorias caché, entre otros. Estos valores existen para proporcionar un nivel de rendimiento base estándar a partir del que operar, o ajustar las mejoras para configuraciones individuales.

El perfil Test se utiliza para los servidores de aplicaciones en el Entorno de prueba funcional o de autoría. El perfil Production se utiliza para los servidores de aplicaciones en el Entorno de prueba de producción o rendimiento. Los valores ajustables que se listan en este documento proporcionan una referencia que puede utilizar como punto de partida para ajustar su propio entorno. Puede ajustar cada valor en función del resultado de la prueba de rendimiento en su propio entorno.

HCL Commerceutiliza la inclusión de contenedores. Para asegurarse de que los valores ajustados persisten en instancias de contenedor subsiguientes, siga el procedimiento que se describe en Creación de una imagen de Docker personalizada a partir de un paquete desplegable . Como alternativa, puede personalizar el proceso de inicio del Docker para realizar el ajuste de JVM durante el inicio del Docker. Para obtener más información, consulte Guía de aprendizaje: Personalización de la lógica de inicio de Docker. Si no existe ningún mandato runEngine, puede desarrollar un mandato runEngine personalizado o sustituir el archivo de configuración completo por el contenido personalizado. Para fines de prueba o experimentos, puede cambiar el valor ajustable manualmente.

Valores de WebSphere IBM JVM (para HCL Commerce y búsqueda de HCL Commerce)

La tabla siguiente lista los valores de inicio para los servidores de aplicaciones de WebSphere que se ejecutan en Liberty (para el servidor de tienda y de búsqueda) y WebSphere Application Server (para servidores de transacción). Para simplificar el esfuerzo de ajuste, utilice parámetros similares para distintos servidores de aplicaciones. Si es probable que la carga de trabajo sea diferente en los distintos servidores (por ejemplo, en el servidor de transacción que se compara con los servidores de tienda), se pueden utilizar distintos valores ajustables para los distintos servidores. Los mandatos RunEngine que cambian los valores de JVM son: set-heap-size/add-system-property (para servidores de tienda y de búsqueda) y set-heap-size/add-generic-jvmarg (para servidores de transacción). Para modificar manualmente los valores de JVM en Liberty, edite el archivo jvm.options directamente. Para WebSphere Application Server , realice los cambios en la consola de administración.

Valores predeterminados en HCL Commerce y búsqueda de HCl Commerce
Nombre de propiedad Perfil de prueba de versión 9 Perfil de producción de versión 9
JDK de 32 / 64 bits 64 bits 64 bits
Tamaño del hilo de mensajes -Xss1m -Xss1m
Tamaño de las variables dinámicas iniciales (-Xms) 512m 2048 m
Tamaño de las variables dinámicas máximas (-Xmx) 1536m 4096m
Inhabilitar JIT No No
Política de recogida de basura (-Xgcpolicy) gencon gencon
Hilos de mensajes de recolección de basura (-Xgcthreads) 2* 8*

Establezca el valor de gcthreads en el número de vCPU disponible o de vCPU -1. Para determinar el número de VCPU óptimo en cada contenedor Docker del servidor de aplicaciones, consulte ajuste de rendimiento de Docker.

Vivero fijo (-Xmn) No se especifica 1536m
Vivero de partida (-Xmns) 256m No especificado
Vivero máximo (-Xmnx) 768m No especificado
Registro e recogida de basura

Habilitado con rotación de registro*:

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

Habilitado con rotación de registro*:

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

* Para obtener más información sobre este valor predeterminado, consulte Boring but necessary: Rotate the GC log!.

Parámetro de ajuste adicional para la optimización de JSP -Dcom.ibm.wsspi.jsp.disableResourceInjection=true -Dcom.ibm.wsspi.jsp.disableResourceInjection=true

HCL Commerce Valores de memoria caché (DynaCache)

La memoria caché base es la instancia de memoria caché que almacena las entradas de memoria caché de servlet y algunas entradas de memoria caché de mandato. Se define en todos los servidores de aplicaciones: Tienda, transacción y búsqueda. Sin embargo, la memoria caché base no se utiliza de forma predeterminada en el servidor de búsqueda.

Los valores ajustables son aplicables cuando se utiliza una memoria caché de servlet (para un fragmento JSP). La memoria caché se almacena en el servidor de la tienda en el entorno de la tienda remota, o en el servidor de transacción en el entorno de la tienda local. Para el entorno de la tienda remota, el servidor de la tienda de producción normalmente sigue el perfil Production, mientras que el servidor de transacción sigue el perfil Test. Modifique manualmente los valores de la memoria caché base: En los servidores de Liberty, edite el archivo server.xml directamente. En WebSphere Application Server, realice los cambios en la consola de administración.

Valores predeterminados para HCL Commerce y valores de memoria caché de búsqueda de HCL Commerce (DynaCache)
Nombre de propiedad Perfil de prueba de la versión 9 (o cuando no se utiliza la memoria caché de servlet) Perfil de producción de la versión 9 (o cuando se utiliza la memoria caché de servlet)
base Cache size
2000 5000
enableDiskOffload
Off Activado
flushToDiskOnStop
Off Off
diskCachePerformanceLevel
N/A Alto rendimiento y uso elevado de la memoria
diskCacheSize
N/A 10 GB*

10 GB es un valor inicial. El valor se puede determinar con el equilibrio del espacio de disco y el tamaño de entrada total de la memoria caché.

HCL Commerce Valores de la memoria caché de datos

Configuración de la memoria caché de datos HCL Commerce

Se definen las diferentes instancias de la memoria caché de datos para cada uno de los tres servidores de aplicaciones de HCL Commerce (tienda, búsqueda y transacción). El valor del perfil predeterminado es el mismo para la misma instancia de memoria caché en diferentes servidores (por ejemplo, WCFlexFlowDistributedMapCache existe tanto en el servidor de tienda como en el servidor de transacción). Pero puede ajustar el valor en función del uso real en los diferentes servidores.

Los valores de la tabla siguiente representan los valores iniciales para el ajuste del rendimiento. Es probable que el volumen de datos del negocio sea diferente al valor predeterminado. Por lo tanto, por ejemplo, una empresa puede tener un catálogo grande (por lo tanto, un gran número de grupos de catálogos y entradas de catálogos) pero un número muy reducido de promociones. Otra empresa puede tener un pequeño catálogo pero un gran número de promociones. Aumente o reduzca el tamaño de la memoria caché de datos según corresponda. Aumentar la memoria caché de datos elevará la ocupación de la memoria a causa del número de objetos almacenados (las memorias caché de datos solo se almacenan en la memoria). El equipo de rendimiento de HCL Commerce ha realizado pruebas de rendimiento para asegurarse de que el valor de tamaño de la memoria caché recomendado no provoca condiciones de falta de memoria en JVM. Sin embargo, el tamaño de la memoria caché de datos real se determina por el tamaño de cada entrada de la memoria caché y el número total de entradas de la memoria caché en la memoria. Realice sus propias pruebas de rendimiento para asegurarse de que el tamaño de la memoria caché de datos configurada pueda ser contenida en la memoria y que haya un equilibrio entre el rendimiento y el uso de la memoria.

Instancias de memoria caché de datos del servidor de transacción

Puede modificar manualmente los valores de la memoria caché de datos en la consola de administración de WebSphere Application Server.

Nombre de propiedad Perfil de prueba de versión 9 Perfil de producción de versión 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"
2.500 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"
2000 10.000
name="SearchFacetCache"
jndiName="services/cache/WCSearchFacetDistributedMapCache"
2000 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"
2000 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

Instancias de memoria caché de datos del servidor de tienda

Puede modificar manualmente los valores de la memoria caché de datos al editar directamente server.xml.

Nombre de propiedad Perfil de prueba de versión 9 Perfil de producción de versión 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

Instancias de memoria caché de datos del servidor de búsqueda

Puede modificar manualmente los valores de la memoria caché de datos al editar directamente server.xml.

Nombre de propiedad Perfil de prueba de versión 9 Perfil de producción de versión 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"
2000 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"
2000 10.000
id="SearchFacetDistributedMapCache" 
jndiName="services/cache/SearchFacetDistributedMapCache"
2000 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

Otros valores ajustables

Los siguientes valores ajustables solo son aplicables al perfil de Production. No es necesario que se ajusten para el perfil de Testing.

Valor del ejecutor de Liberty

Liberty tiene un modelo de agrupación de hilo de mensajes diferente al de WebSphere Application Server . Hay una agrupación de Executor unificada para distintas conexiones. El valor predeterminado para esto es el ajuste automático. Sin embargo, la prueba de rendimiento de HCL Commerce revela que este valor puede causar comportamientos imprevisibles bajo grandes cargas de trabajo.

Por lo tanto, el ajuste para el servidor de tienda y de búsqueda es el siguiente. Puede modificar este valor manualmente editando el archivo de configuración de server.xml. Establezca el siguiente valor:
<executor maxThreads="50" coreThreads="4" />

Valor HTTP KeepAlive

En la versión 9 de HCL Commerce, HTTPS se utiliza de forma predeterminada para todas las conexiones con los servidores WebSphere Application Server. El protocolo de reconocimiento SSL inicial que inicia la conexión de HTTPS tiene un alto coste. Para mitigar esto, habilite el valor KeepAlive para las conexiones HTTP. En los servidores Liberty (para los servidores de tienda y de búsqueda), edite el servidor de configuración de server.xml y establezca el valor siguiente:
<httpOptions keepAliveEnabled="true" maxKeepAliveRequests="-1" /> 
En el servidor de transacción, realice los cambios desde la consola de WebSphere Application Server: Servidores de aplicaciones > server1 > Cadenas de transporte de contenedores web > HttpQueueInboundDefaultSecure > canal de entrada HTTP (HTTP_4). Active Usar conexiones persistentes para mantenerlas abiertas. Seleccione Solicitudes persistentes ilimitadas por conexión.      
Nota: establecer maxKeepAliveRequests en -1 significa que no hay ningún límite en las solicitudes de HTTP/HTTPS máximas para una conexión. Esto no se recomienda para conexiones desde los navegadores web. En los entornos de producción, la conexión a los servidores de aplicación se realiza desde el servidor web o el servidor proxy, por lo que en estos casos es aceptable establecerla en -1. De forma alternativa, puede establecerlo en un número grande como 10000.

Tiempo de espera de la transacción para el servidor de búsqueda

El servidor de búsqueda realiza frecuentemente transacciones de larga duración. Un ejemplo es el proceso build-index. Para evitar los tiempos de espera, aumente el valor de transacción predeterminado para Liberty en el servidor de búsqueda. Edite el archivo de configuración de server.xml y añádale:
<transaction totalTranLifetimeTimeout="600s"/>