Consideraciones sobre el servidor de aplicaciones

HCL Commerce es principalmente otra aplicación Java 2 que se ejecuta sobre WebSphere Application Server y WebSphere Liberty. Por consiguiente, WebSphere Application Server actúa como sistema operativo de HCL Commerce. La optimización de los servidores de aplicaciones optimizados mejora el rendimiento de HCL Commerce.

Los servidores de personalización, de búsqueda y de tienda de HCL Commerce utilizan WebSphere Liberty. Casi toda la información de ajuste de rendimiento se puede encontrar en la documentación de WebSphere Application Server Liberty (todos los temas por característica; supervisión y resolución de problemas; ajuste del rendimiento).

El servidor de transacciones de HCL Commerce utiliza WebSphere Application Server. Casi toda la información de ajuste de rendimiento se puede encontrar en la documentación de WebSphere Application Server, Version 9 (todos los temas por característica; supervisión y resolución de problemas; ajuste del rendimiento). Hay varias desviaciones menores específicas de HCL Commerce que describimos en las secciones siguientes.

Agrupación de conexiones de hebras de Contenedor Web

A diferencia de las hebras utilizadas por el servidor web, que requiere que muchas de ellas manejen grandes cantidades de solicitudes relativamente simples en un corto periodo de tiempo (es decir, servir un archivo .jpg), las solicitudes del servidor de aplicaciones son inferiores en número, son más complejas y tardan más tiempo en procesarse.

WebSphere Application Server permite a los usuarios personalizar el tamaño mínimo y máximo de la agrupación de hebras de Contenedor web. La creencia de que tener un gran número de hebras mejora el rendimiento y la posibilidad de manejar un gran número de usuarios simultáneos simplemente no es cierta.

En realidad, cuando hay demasiadas hebras de Contenedor web en ejecución, cada procesador del servidor puede estar tratando potencialmente muchas solicitudes en cualquier momento. Esto puede hacer que el sistema operativo tenga que emplear una cantidad significativa de tiempo gestionando y conmutando entre hebras en lugar de estar procesando las peticiones reales. Asimismo, cada hebra adicional consume recursos, como memoria y conexiones de base de datos, de WebSphere Application Server. Estos recursos de hebras externas se pueden utilizar si se liberan.

Si el valor de hebras de Contenedor web se establece en un número demasiado bajo, WebSphere Application Server no tendrá suficiente carga de trabajo y, por lo tanto, la CPU estará siempre infrautilizada.

Un método práctico bueno consiste en establecer el valor máximo en un mínimo de 10 hebras. Si tiene varios procesadores, empiece con 5 hebras para cada CPU al configurar el servidor de aplicaciones. Por ejemplo, en un sistema de 4 direcciones, se deberán utilizar 20 hebras de Contenedor web. Aumente el número máximo de hebras sólo cuando crea que la utilización de procesador puede ser mayor teniendo una carga de trabajo simultánea adicional.

El tamaño mínimo debe ser el mismo que el máximo; de esta forma, el servidor de aplicaciones no necesita destruir y crear hebras

Cuando esté estudiando el tamaño de la agrupación de conexiones, incluya los elementos siguientes en el cálculo:
  • Hebras del contenedor web
  • Hebras de programación activas
  • Gestor de claves de HCL Commerce
  • HCL Commerce auditoría
  • Escuchas de IBM MQ
  • Otras hebras de varias conexiones en el código personalizado

Agrupación de conexiones de base de datos

Nota: Las secciones siguientes describen cómo asignar una agrupación de conexiones JDBC lo suficientemente grande para que ninguna hebra de HCL Commerce tenga que esperar una conexión. De forma alternativa, existe un iFeature de WebSphere Application Server que puede permitir que HCL Commerce se ejecute con agrupaciones de conexiones JDBC más pequeñas. Para obtener más información sobre la utilización de este iFeature, consulte Reducción de agrupación de conexiones JDBC utilizando la agrupación de reserva de.

La documentación de indica que la agrupación de conexiones de base de datos debe ser menor que la agrupación de hebras de Contenedor web. Sin embargo, esto no es así para las configuraciones de HCL Commerce. Para configuraciones de HCL Commerce, cada hebra de contenedor web de WebSphere necesita al menos una conexión de base de datos para que coincidan. Además, cuando se utiliza el planificador de HCL Commerce, debe reservarse una conexión de base de datos adicional para garantizar que las hebras del planificador de HCL Commerce funcionan correctamente.

Sin suficientes conexiones de base de datos en la agrupación, no se pueden utilizar suficientes hebras para servir solicitudes. Por consiguiente, es posible que el procesador de servidor de aplicaciones no se utilice por completo y el rendimiento no sea tan alto como podría ser.

Tamaño de agrupación de conexiones de origen de datos

Cuando esté estudiando el tamaño de la agrupación de conexiones, incluya los elementos siguientes en el cálculo:
  • Hebras del contenedor web
  • Hebras del gestor de trabajo (cuatro grupos para el planificador, un grupo reservado para otras tareas de HCL Commerce)
    Para ver y editar los gestores de trabajo de HCL Commerce:
    1. Abra la consola de administración de WebSphere Application Server.
    2. Vaya a Gestor de trabajo.
    3. Cada gestor de trabajo de HCL Commerce se lista en la categoría HCL Commerce.
    4. Después de seleccionar un gestor de trabajo, puede ingresar el valor de la propiedad Número máximo de hebras en Propiedades de agrupación de hebras.
    5. Guarde los cambios.

    Para determinar el tamaño de agrupación de conexiones, esta es la suma de todos los números máximos de hebras en todas las agrupaciones de hebras, incluidos los gestores de trabajo, contenedores web y el gestor de claves de HCL Commerce.

  • Agrupación de hebras predeterminado.

    La agrupación de hebras reservadas de HCL Commerce permite hasta un máximo de 10 hebras de forma predeterminada. En las hebras predeterminadas, hay hebras reservadas, por ejemplo para publicar tiendas, escuchas para IBM MQ, hebras de planificación de supervisión y auditoría de HCL Commerce. Si actualizó el número de hebras permitidas para escuchas de HCL Commerce IBM MQ, el tamaño de agrupación de las hebras reservadas y de las agrupación de conexiones de base de datos de HCL Commerce debe actualizarse según corresponda.

  • El gestor de claves de HCL Commerce utiliza una conexión
  • Otras hebras iniciadas por el código personalizado utilizando conexiones de la base de datos
Importante: Si el código personalizado requiere conexiones de base de datos, o bien si cambia el número predeterminado de conexiones de cualquiera de las opciones superiores, debe incrementar el tamaño de agrupación de conexiones de base de datos:
  1. Abra la consola de administración de WebSphere Application Server.
  2. Vaya a Recursos > JDBC > Orígenes de datos > HCL Commerce > db_type > Origen de datos > instance_name > Propiedades de agrupación de conexiones.

    Donde db_type es DB2 u Oracle.

  3. Aumente el tamaño de agrupación de conexiones de base de datos con el mismo número de conexiones que ha añadido a todas las opciones anteriores combinadas.
  4. Guarde los cambios.

Grupos de hebras del planificador

Los grupos de hebras del planificador se definen en el elemento <applicationType>. Existen dos atributos:
applicationName
El identificador de la agrupación de hebras. Cuando se planifica un trabajo en la Consola de administración, el identificador se visualiza después de seleccionar el tipo de aplicación.
maxNumofThreads
El número máximo de hebras permitidas para la agrupación de hebras.

Memoria caché de sentencia preparada

De acuerdo con la documentación de WebSphere Application Server, se puede observar entre un 10% y un 20% de mejora de rendimiento con el uso de este parámetro. Para determinar el valor correcto, normalmente se utiliza el Visor de rendimiento de Tivoli para observar el comportamiento y minimizar las eliminaciones de memoria caché. No obstante, para HCL Commerce, no es un mecanismo eficaz debido al alto número de sentencias SQL que se ejecutan internamente.

El único modo fiable de determinar el valor óptimo para la memoria caché de sentencia preparada es con la medición de rendimiento real en un entorno controlado con cargas de trabajo repetibles. El valor inicial recomendado para la memoria caché de sentencia preparada es 150 y se deberá incrementar en intervalos de 50, hasta que no se observe más incremento de rendimiento.

Para establecer el tamaño de memoria caché de sentencia preparado, abra la consola de administración de WebSphere Application Server y siga estos pasos:
  1. Seleccione Recursos.
  2. Pulse Proveedores JDBC.
  3. Pulse su_origen_datos_Commerce.
  4. Establezca el valor para el Tamaño de la memoria caché de la sentencia.