163
Ajuste del rendimiento Contenido 1. ¿Cómo puedo ajustar el rendimiento? 2. Planificación del rendimiento 2.1. Consideraciones sobre el diseño de aplicaciones 3. Cómo beneficiarse de las funciones de rendimiento 4. Obtención de consejos de los asesores 4.1. Por qué se utilizan los asesores de rendimiento 4.1.1. Tipos de asesor de rendimiento y su finalidad 4.1.1.1. Asesor de rendimiento y diagnóstico 4.2. Directorios predeterminados de WebSphere Application Server 4.3. Utilización de Asesor de rendimiento y diagnóstico 4.3.1. Visualización de las recomendaciones del Asesor de rendimiento y diagnóstico 4.3.2. Inicio de la detección ligera de pérdidas de memoria 4.3.2.1. Detección de pérdida de memoria ligera 4.3.3. Habilitación de la generación automática de vuelcos de almacenamiento dinámico 4.3.3.1. Generación de vuelcos de almacenamiento dinámico manualmente 4.3.3.2. Ubicación y localización de vuelcos de almacenamiento dinámico 4.4. Directorios predeterminados de WebSphere Application Server 4.5. Utilización del asesor de rendimiento en Tivoli Performance Viewer 4.6. Directorios predeterminados de WebSphere Application Server 5. Ajuste del entorno de servicio de aplicaciones 5.1. Directorios predeterminados de WebSphere Application Server 5.2. Ajuste de tamaños de almacenamiento intermedio TCP/IP 5.3. Ajuste de la JVM 5.3.1. Ajuste de la máquina virtual para Java de IBM 5.3.2. Ajuste de máquinas virtuales Java HotSpot (Solaris & HPUX) 5.4. Directorios predeterminados de WebSphere Application Server 5.5. Ajuste de los servicios del canal de transporte 5.6. Comprobación de la configuración y los valores de hardware 5.7. Ajuste de sistemas operativos 5.7.1. Ajuste de sistemas Windows 5.7.2. Ajuste de sistemas Linux 5.7.3. Ajuste de sistemas AIX 5.7.4. Ajuste de sistemas Solaris 5.7.5. Ajuste de sistemas HPUX 5.8. Ajuste de servidores Web 5.9. Directorios predeterminados de WebSphere Application Server 5.10. Ajuste del servidor de aplicaciones mediante plantillas de ajuste predefinidas 5.11. Directorios predeterminados de WebSphere Application Server 6. Resolución de problemas de rendimiento 7. Perfilado de aplicaciones 7.1. Ajuste de perfil de aplicaciones 8. Aplicaciones cliente 8.1. Adición de rastreos y registros cronológicos para clientes autónomos 9. Recursos de acceso a datos 9.1. Ajuste de datos 9.1.1. Ajuste de las agrupaciones de conexiones 9.1.2. Soporte de throttle del flujo de mensajes para beans controlados por mensajes JCA 1.5 9.1.3. Directorios predeterminados de WebSphere Application Server 10. Aplicaciones EJB 10.1. Ajuste del contenedor de EJB 2.1 10.1.1. Ajuste del contenedor de EJB 2.1 10.2. Ajuste de aplicaciones Enterprise JavaBeans 10.2.1. Ajuste de la memoria caché de EJB utilizando el servicio de rastreo 10.3. Ajuste de aplicaciones que utilizan JPA (Java Persistence API) 10.3.1. Configuración de la antememoria dinámica OpenJPA para mejorar el rendimiento 11. Recursos de mensajería 11.1. Ajuste de mensajería 11.1.1. Ajuste del rendimiento de mensajería con las tecnologías de integración de servicios 11.1.2. Configuración de la regulación de del proveedor de mensajería predeterminado 11.1.3. Ajuste del tamaño de las agrupaciones de hebras utilizadas por el proveedor de mensajería de WebSphere MQ 11.1.4. Soporte de throttle del flujo de mensajes para beans controlados por mensajes JCA 1.5 11.1.5. Supervisión de las agrupaciones de sesiones de servidor para puertos de escucha 12. ORB (Object Request Broker o Intermediario para solicitudes de objetos) 13. Aplicaciones SIP (Session Initiation Protocol) 13.1. Ajuste de servlets SIP para Linux 14. Integración de servicios 14.1. Ajuste de los motores de mensajería

Ajuste_rendimiento

Embed Size (px)

Citation preview

Page 1: Ajuste_rendimiento

Ajuste del rendimiento

Contenido

1. ¿Cómo puedo ajustar el rendimiento?2. Planificación del rendimiento

2.1. Consideraciones sobre el diseño de aplicaciones3. Cómo beneficiarse de las funciones de rendimiento4. Obtención de consejos de los asesores

4.1. Por qué se utilizan los asesores de rendimiento4.1.1. Tipos de asesor de rendimiento y su finalidad

4.1.1.1. Asesor de rendimiento y diagnóstico4.2. Directorios predeterminados de WebSphere Application Server4.3. Utilización de Asesor de rendimiento y diagnóstico

4.3.1. Visualización de las recomendaciones del Asesor de rendimiento y diagnóstico4.3.2. Inicio de la detección ligera de pérdidas de memoria

4.3.2.1. Detección de pérdida de memoria ligera4.3.3. Habilitación de la generación automática de vuelcos de almacenamiento dinámico

4.3.3.1. Generación de vuelcos de almacenamiento dinámico manualmente4.3.3.2. Ubicación y localización de vuelcos de almacenamiento dinámico

4.4. Directorios predeterminados de WebSphere Application Server4.5. Utilización del asesor de rendimiento en Tivoli Performance Viewer4.6. Directorios predeterminados de WebSphere Application Server

5. Ajuste del entorno de servicio de aplicaciones5.1. Directorios predeterminados de WebSphere Application Server5.2. Ajuste de tamaños de almacenamiento intermedio TCP/IP5.3. Ajuste de la JVM

5.3.1. Ajuste de la máquina virtual para Java de IBM5.3.2. Ajuste de máquinas virtuales Java HotSpot (Solaris & HP­UX)

5.4. Directorios predeterminados de WebSphere Application Server5.5. Ajuste de los servicios del canal de transporte5.6. Comprobación de la configuración y los valores de hardware5.7. Ajuste de sistemas operativos

5.7.1. Ajuste de sistemas Windows5.7.2. Ajuste de sistemas Linux5.7.3. Ajuste de sistemas AIX5.7.4. Ajuste de sistemas Solaris5.7.5. Ajuste de sistemas HP­UX

5.8. Ajuste de servidores Web5.9. Directorios predeterminados de WebSphere Application Server5.10. Ajuste del servidor de aplicaciones mediante plantillas de ajuste predefinidas5.11. Directorios predeterminados de WebSphere Application Server

6. Resolución de problemas de rendimiento7. Perfilado de aplicaciones

7.1. Ajuste de perfil de aplicaciones8. Aplicaciones cliente

8.1. Adición de rastreos y registros cronológicos para clientes autónomos9. Recursos de acceso a datos

9.1. Ajuste de datos9.1.1. Ajuste de las agrupaciones de conexiones9.1.2. Soporte de throttle del flujo de mensajes para beans controlados por mensajes JCA 1.59.1.3. Directorios predeterminados de WebSphere Application Server

10. Aplicaciones EJB10.1. Ajuste del contenedor de EJB 2.1

10.1.1. Ajuste del contenedor de EJB 2.110.2. Ajuste de aplicaciones Enterprise JavaBeans

10.2.1. Ajuste de la memoria caché de EJB utilizando el servicio de rastreo10.3. Ajuste de aplicaciones que utilizan JPA (Java Persistence API)

10.3.1. Configuración de la antememoria dinámica OpenJPA para mejorar el rendimiento11. Recursos de mensajería

11.1. Ajuste de mensajería11.1.1. Ajuste del rendimiento de mensajería con las tecnologías de integración de servicios11.1.2. Configuración de la regulación de del proveedor de mensajería predeterminado11.1.3. Ajuste del tamaño de las agrupaciones de hebras utilizadas por el proveedor de mensajería de WebSphereMQ11.1.4. Soporte de throttle del flujo de mensajes para beans controlados por mensajes JCA 1.511.1.5. Supervisión de las agrupaciones de sesiones de servidor para puertos de escucha

12. ORB (Object Request Broker o Intermediario para solicitudes de objetos)13. Aplicaciones SIP (Session Initiation Protocol)

13.1. Ajuste de servlets SIP para Linux14. Integración de servicios

14.1. Ajuste de los motores de mensajería

Page 2: Ajuste_rendimiento

14.1.1. Establecimiento de las propiedades de ajuste de un motor de mensajería14.1.2. Control de los almacenamientos intermedios de memoria utilizados por un motor de mensajería14.1.3. Ajuste del origen de datos JDBC de un motor de mensajería14.1.4. Configuración de las propiedades de ajuste editando el archivo sib.properties

14.2. Ajuste del rendimiento de mensajería con las tecnologías de integración de servicios14.3. Configuración de la regulación de del proveedor de mensajería predeterminado14.4. Ajuste de los almacenes de datos del motor de mensajería

14.4.1. Ajuste del origen de datos JDBC de un motor de mensajería14.4.2. Control de los almacenamientos intermedios de memoria utilizados por un motor de mensajería14.4.3. Aumento del número de tablas del almacén de datos para liberar cuellos de botella de concurrencia

14.4.3.1. Aumento del número de tablas de elementos de un motor de mensajería cuando no se creanautomáticamente tablas14.4.3.2. Aumento del número de tablas de elementos de un motor de mensajería cuando se creanautomáticamente tablas

14.4.4. Ajuste de la optimización del compromiso de una fase14.4.5. Ajuste de la detección de pérdidas de conexión de base de datos

14.5. Establecimiento de las propiedades de ajuste para una mediación14.6. Habilitar los beans de entidad CMP y los almacenes de datos del motor de mensajería para que compartanconexiones de bases de datos

15. Transacciones16. Aplicaciones Web

16.1. Ajuste de la memoria caché de URL16.1.1. Ajuste de la antememoria de invocación de URL

16.2. Procedimientos recomendados para el uso de sesiones HTTP17. Servicios Web

17.1. Ajuste de la seguridad de servicios web para aplicaciones Versión 7.017.2. Ajuste de las aplicaciones de mensajería segura de servicios web17.3. Ajuste de servicios web habilitados para bus

17.3.1. Inclusión de esquemas de cabecera SOAP en el repositorio SDO18. Área de trabajo

18.1. Consideraciones de rendimiento para el servicio de área de trabajo

Page 3: Ajuste_rendimiento

Ajuste del rendimientoEsta sección describe cómo mejorar el rendimiento e incluye:

Ajuste de las mejoras de rendimientoSugerencias para ajustar varios tipos de aplicacionesSugerencias para ajustar el entorno de servicio de aplicacionesHerramientas de ajuste

¿Cómo puedo ajustar el rendimiento?

Siga estos accesos directos para empezar con las tareas más conocidas.

Planificación del rendimiento

El rendimiento de un sitio Web cuando recibe grandes volúmenes de tráfico de los usuarios es un factor esencial enel éxito de una organización. En este apartado se proporcionan recursos en línea que puede consultar paraasegurarse de que el sitio responde en situaciones de gran presión.

Cómo beneficiarse de las funciones de rendimiento

En este tema se describen algunos modos destacados de mejorar el rendimiento combinando características deproductos y consideraciones para el desarrollo de aplicaciones.

Obtención de consejos de los asesores

Los asesores proporcionan una amplia variedad de recomendaciones que permiten mejorar el rendimiento delservidor de aplicaciones.

Ajuste del entorno de servicio de aplicaciones

En este tema se describen las ventajas de realizar un ajuste para obtener el rendimiento óptimo, se destacan losparámetros ajustables de los componentes principales de WebSphere Application Server y se proporcionainformación acerca de cómo estos parámetros afectan el rendimiento.

Resolución de problemas de rendimiento

En este tema se describe que la resolución de un problema de rendimiento es un proceso iterativo y se muestracómo solucionar problemas de rendimiento.

Ajuste de perfilado de aplicaciones

Esta página proporciona un punto de partida para buscar información sobre el perfilado de aplicaciones, que es unaextensión de WebSphere para definir estrategias para controlar dinámicamente la simultaneidad, las búsquedasprevias y la lectura hacia adelante.

Ajuste de aplicaciones de cliente

Esta página proporciona un punto de partida para buscar información sobre los clientes de aplicaciones y lasaplicaciones cliente. Los clientes de aplicaciones proporcionan una infraestructura en la que se ejecuta el código deaplicación, de modo que las aplicaciones cliente pueden acceder a la información sobre el servidor de aplicaciones.

Ajuste de recursos de acceso a datos

Esta página proporciona un punto de partida para buscar información sobre el acceso a datos. Sistemas EIS(Sistemas de información empresarial) distintos utilizan métodos distintos para almacenar datos. Estos almacenesde datos de programa de fondo podrían ser bases de datos relacionales, programas de transacciones deprocedimiento o bases de datos orientadas a objetos.

Ajuste de aplicaciones EJB

Esta página proporciona un punto de partida para buscar información sobre los enterprise beans.

Ajuste de recursos de mensajería

Esta página proporciona un punto de partida para obtener información acerca de cómo utilizar los recursos demensajería asíncrona para las aplicaciones de empresa con WebSphere® Application Server.

Ajuste de ORB (Object Request Broker)

Esta página proporciona un punto de partida para buscar información sobre ORB (intermediario para solicitudes deobjetos). Este producto utiliza un ORB para gestionar las comunicaciones entre las aplicaciones cliente y lasaplicaciones servidor y también para las comunicaciones entre los componentes de los productos. Estos serviciosestándar Java EE (JavaTM Platform, Enterprise Edition) son relevantes para ORB: RMI/IIOP (Remote MethodInvocation/Internet Inter­ORB Protocol) y Java IDL (Java Interface Definition Language).

Page 4: Ajuste_rendimiento

Ajuste de aplicaciones SIP (Session Initiation Protocol)

Esta página proporciona un punto de partida para buscar información sobre aplicaciones SIP, que son programasJava que utilizan, como mínimo, un servlet SIP (Session Initiation Protocol) escrito en la especificación JSR 116.

Ajuste de integración de servicios

Esta página proporciona un punto de partida para buscar información sobre la integración de servicios.

Ajuste de transacciones

Ajuste de aplicaciones Web

Esta página proporciona un punto de partida para buscar información sobre las aplicaciones Web, que constan deuno o más archivos relacionados que se pueden gestionar como una unidad, e incluyen:

Ajuste de servicios Web

Esta página proporciona un punto de partida para buscar información sobre servicios Web.

Ajuste del área de trabajo

Esta página proporciona un punto de partida para buscar información sobre las áreas de trabajo, una extensión deWebSphere para mejorar la productividad del desarrollador.

Información relacionadaManual en formato PDF¿Cómo puedo...?Visión generalNovedadesRecursos Web de aprendizaje

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6toptuning

Nombre de archiv o: welc6toptuning.html

Page 5: Ajuste_rendimiento

¿Cómo puedo ajustar el rendimiento?1. Siga estos accesos directos para empezar con las tareas más conocidas.

Cuando visite una tarea del Information Center, busque la característica IBM sugiere situada en la parte inferior de lapágina. Utilice esta característica para buscar guías de aprendizaje, demostraciones, presentaciones, artículos dedeveloperWorks, Redbooks, documentos de soporte, etc.

Ajuste del rendimiento del servidor de aplicaciones

Obtener avisos de ajuste del rendimiento (TPV, Performance Advisor)

Agrupación de conexiones de base de datos

Colocación en memoria caché de la salida del aplicación

Conceptos relacionadosVisión general y nuevas características del ajuste de rendimiento

Tema de conceptos

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc_howdoi_tprf

Nombre de archiv o: welc_howdoi_tprf .html

Page 6: Ajuste_rendimiento

2. Planificación del rendimientoEl rendimiento de un sitio Web cuando recibe grandes volúmenes de tráfico de los usuarios es un factor esencial en eléxito de una organización. En este apartado se proporcionan recursos en línea que puede consultar para asegurarse deque el sitio responde en situaciones de gran presión.

Procedimiento

Consulte los recursos Web siguientes para obtener más información.

Patrones de IBM para e­Business

Los patrones de IBM para e­business son un grupo de bienes reutilizables que pueden ayudar a acelerar elproceso de desarrollo de aplicaciones basadas en la Web. En estos patrones se aprovecha la experiencia de losarquitectos de IBM para crear soluciones con rapidez, ya sea para una pequeña empresa local o para una granmultinacional.

Planificación de la disponibilidad en la empresa

La disponibilidad es una característica de nivel de servicio que puede alcanzarse, objetivo de toda empresa. Elcaso más problemático se produce cuando se subestima la carga o cuando el ancho de banda se sobrecargadebido a que no se ha planificado detenidamente la disponibilidad. La aplicación de la información de este artículoy de la hoja de cálculo que le acompaña a las tareas de planificación puede ayudarle a evitar una situación deeste tipo.

Configuraciones de hardware para entornos de producción de WebSphere Application ServerEn este artículo se describen las configuraciones más comunes de hardware de producción y se indican losmotivos para seleccionar cada una de ellas. Se empieza por una configuración de una sola máquina, y luego seofrecen configuraciones adicionales que presentan una mayor tolerancia a fallos, un escalado horizontal y unaseparación de servidores Web y servidores de enterprise beans.

Consulte la funcionalidad del producto para mejorar la información del rendimiento.

En esta información...

SubtemasConsideraciones sobre el diseño deaplicaciones

Tareas relacionadasCómo beneficiarse de las funciones derendimiento

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _1

Nombre de archiv o: tprf _1.html

Page 7: Ajuste_rendimiento

2.1. Consideraciones sobre el diseño de aplicacionesEn este tema se proporcionan sugerencias para el diseño y el ajuste de aplicaciones.

Consulte la información de diseño de aplicaciones, que destaca sitios Web y otras ideas para encontrar la mejor forma dediseñar aplicaciones WebSphere, en particular en el reino de extensiones WebSphere para la especificación Java Platform,Enterprise Edition (Java EE).

La información de diseño de aplicaciones contiene las sugerencias arquitectónicas y la implementación de aplicaciones.Para las aplicaciones actuales, las sugerencias pueden requerir el cambio de las implementaciones existentes. El ajustedel servidor de aplicaciones y los parámetros de recursos puede tener un gran efecto sobre el rendimiento de lasaplicaciones que estén bien diseñadas.

Procedimientos recomendados: Utilice la siguiente información como guía de arquitectura cuando implemente lasaplicaciones:

PersistenciaPatrón de controlador de vista de modelosCondición de sin estadoColocación en memoria cachéConsideraciones sobre operaciones asíncronasBibliotecas de terceros

Persistencia

Las aplicaciones Java EE cargan, almacenan, crean y eliminan datos de las bases de datos relacionales, un procesoconocido normalmente como persistencia. La mayor parte de las aplicaciones de empresa tienen un acceso importante ala base de datos. La arquitectura y el rendimiento de la capa de persistencia es fundamental para el rendimiento de unaaplicación. Por lo tanto, es importante tener en cuenta la persistencia cuando se toman decisiones sobre arquitectura querequieren equilibrar el rendimiento. En esta guía se recomienda centrarse primero en una solución con una arquitecturalimpia. La arquitectura limpia tiene en cuenta la coherencia de los datos, la seguridad, el mantenimiento, la portabilidad yel rendimiento de esa solución. Aunque este enfoque podría no ofrecer el rendimiento máximo absoluto que puede obteneral codificar manualmente una solución que ignore las calidades de servicio citadas anteriormente, este enfoque puedelograr el equilibrio adecuado entre la coherencia de los datos, la capacidad de mantenimiento, la portabilidad, la seguridady el rendimiento.

Existen muchas opciones disponibles para la persistencia en Java EE: los beans de sesión que utilizan beans de entidadque incluyen persistencia gestionada por contenedor (CMP) o persistencia gestionada por bean (BMP), beans de sesiónque utilizan JDBC (Java Database Connectivity) y beans Java que utilizan JDBC. Por los motivos ya citados, tenga encuenta la persistencia de entidad CMP, ya que ofrece la máxima seguridad, mantenimiento y portabilidad. También serecomienda CMP para obtener un buen rendimiento. Consulte el apartado Ajuste el contenedor de EJB en el tema deajuste de servidores de aplicaciones sobre el ajuste de enterprise beans y, más específicamente, CMP.

Si una aplicación requiere el uso de enterprise beans que no utilicen entidades EJB, el mecanismo de persistencia implicanormalmente la API JDBC. Como JDBC requiere codificación manual, el Lenguaje de consulta estructurada (SQL) que seejecuta en una instancia de base de datos es fundamental para optimizar las sentencias SQL que se utilizan en laaplicación. Asimismo, configure el servidor de base de datos para que dé soporte al rendimiento óptimo de estassentencias SQL. Por último, tenga en cuenta el uso de API JDBC específicas, incluidas las sentencias preparadas y elproceso por lotes.

Independientemente del mecanismo de persistencia que se elija, utilice transacciones gestionadas por contenedor, dondeel bean delega la gestión de las transacciones al contenedor. Para las aplicaciones que utilizan JDBC, esto se consiguefácilmente utilizando el patrón de fachada de sesión, que envuelve todas las funciones de JDBC con un bean de sesión sinestado.

Por último, encontrará información sobre cómo ajustar la conexión en la que se comunican los beans de entidad EJB oJDBC en la sección Ajuste de los orígenes de datos del tema de ajuste de servidores de aplicaciones.

Patrón de controlador de vista de modelos

Una de las arquitecturas de programación Java EE estándar es la arquitectura MVC (controlador de vista de modelos),donde las llamadas a servlets de controladores podrían incluir uno o más archivos JSP (JavaServer Pages) secundariospara construir la vista. El patrón MVC es un patrón recomendado para la arquitectura de aplicaciones. Este patrón requiereuna clara separación de la vista (los archivos JSP o la lógica de presentación), el controlador (los servlets) y el modelo (lalógica de la empresa). El uso del patrón MVC permite la optimización y la escalabilidad de cada capa por separado.

Condición de sin estado

Las implementaciones que evitan almacenar el estado de usuario del cliente son las que mejor rinden y se escalan. Diseñeimplementaciones que no almacenen estados. Si se necesita el almacenamiento de estados, compruebe que el tamañode los datos de estado y el tiempo que el estado permanece almacenado se reducen a los valores más pequeñosposibles. Asimismo, si se necesita el almacenamiento de estados, considere la posibilidad de reconstruir el estado si seproduce una anomalía, en lugar de garantizar la migración del estado tras error mediante la duplicación.

Page 8: Ajuste_rendimiento

El ajuste específico del estado afecta el estado de la sesión HTTP, la memoria caché dinámica y los enterprise beans.Consulte las siguientes guías de ajuste para obtener información sobre cómo ajustar el tamaño, la duplicación y latemporización del almacenamiento del estado:

Ajuste de gestión de sesionesSugerencias para el ajuste de EJBAjuste de la memoria caché dinámica con el supervisor de memoria caché

Colocación en memoria caché

La mayor parte de las cargas de trabajo de las aplicaciones Java EE tienen más operaciones de lectura que operacionesde grabación. Las operaciones de lectura requieren pasar una solicitud por varios niveles de topología que constan de unservidor Web frontal, el contenedor Web de un servidor de aplicaciones, el contenedor de EJB de un servidor deaplicaciones y una base de datos. WebSphere Application Server ofrece la posibilidad de colocar en la memoria caché losresultados en todos los niveles de la topología de red y el modelo de programación Java EE que incluye servicios Web.

Los diseñadores de aplicaciones deben considerar la colocación en memoria caché al diseñar la arquitectura de laaplicación, ya que la colocación en memoria caché se integra en la mayoría de niveles del modelo de programación. Lacolocación en memoria caché es otro motivo para imponer el patrón MVC en las aplicaciones. La combinación decolocación en memoria caché y MVC puede proporcionar una colocación en memoria caché independiente de la tecnologíade presentación y en aquellos casos en los que no haya presentación a los clientes de la aplicación.

Los diseñadores de redes deben tener en cuenta la colocación en memoria caché al realizar la planificación de la red, yaque la colocación en memoria caché también se integra en la mayoría de niveles de la topología de red. Para lasaplicaciones disponibles en Internet de forma pública, los diseñadores de redes deben tener en cuenta la colocación enmemoria caché de Edge Side Include (ESI) cuando la colocación en memoria caché del WebSphere Application Server seamplíe a la Internet pública. Los servicios de colocación en memoria caché de la red están disponibles en el servidor proxypara WebSphere Application Server, WebSphere Edge Component Caching Proxy y el plug­in WebSphere.

Consideraciones sobre operaciones asíncronas

Las cargas de trabajo de Java EE suelen constar de dos tipos de operaciones. Debe realizar el primer tipo de operaciónpara responder a una solicitud del sistema. Puede realizar el segundo tipo de operación de forma asíncrona cuando lasolicitud de usuario que inició la operación se ha completado.

Un ejemplo de esta diferencia es una aplicación que le permita someter un pedido de compra, que le permita continuarmientras el sistema valida el pedido, que consulte a sistemas remotos y que en el futuro le informe del estado del pedidode compra. Este ejemplo puede implementarse de forma síncrona con el cliente esperando la respuesta. Laimplementación síncrona necesita recursos del servidor de aplicaciones y deberá esperar hasta que se completen lasoperaciones. Si el proceso le permite continuar mientras se calcula el resultado de forma asíncrona, el servidor deaplicaciones puede planificar que se ejecute el proceso cuando sea el momento óptimo respecto a las demás solicitudes.La notificación que se le entregará puede desencadenarse mediante correo electrónico o cualquier otra interfaz dentro de laaplicación.

Como el enfoque asíncrono permite una planificación óptima de las cargas de trabajo y un uso mínimo de los recursos delservidor, utilice siempre que pueda arquitecturas asíncronas. WebSphere Application Server da soporte a la programaciónasíncrona mediante JMS (Java EE Java Message Service) y los beans controlados por mensajes (MDB), así como beansasíncronos que se explican en los temas Ajuste de Java Message Service y Ajuste de MDB.

Bibliotecas de terceros

Compruebe que todas las bibliotecas que utilizan las aplicaciones también están diseñadas para el rendimiento del ladodel servidor. Algunas bibliotecas estás diseñadas para funcionar correctamente dentro de una aplicación de cliente y notienen en cuenta el rendimiento del lado del servidor, por ejemplo, la utilización de la memoria, la sincronización y lasagrupaciones. Se recomienda que todas las bibliotecas no desarrolladas como parte de una aplicación pasen por pruebasde rendimiento utilizando las mismas metodologías de prueba que se utilizan para la aplicación.

Consulta adicional:

IBM WebSphere Developer Technical Journal: The top 10 (more or less) Java EE best practices

Improve performance in your XML applications, Part 2

Tareas relacionadasAjuste del entorno de servicio de aplicacionesDiseño de aplicacionesAjuste de servidores de aplicacionesAjuste de la antememoria dinámica con el supervisor de antememoria

Referencia relacionada

Tema de conceptos

Page 9: Ajuste_rendimiento

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=cprf _appdesign

Nombre de archiv o: cprf _appdesign.html

Page 10: Ajuste_rendimiento

3. Cómo beneficiarse de las funciones de rendimientoEn este tema se describen algunos modos destacados de mejorar el rendimiento combinando características de productosy consideraciones para el desarrollo de aplicaciones.

Procedimiento

Utilice la funcionalidad de este producto para mejorar el rendimiento.

Utilización del servicio de antememoria dinámica para mejorar el rendimiento

El servicio de antememoria dinámica mejora el rendimiento ya que almacena en antememoria la salida de losservlets, los mandatos y los archivos JSP (JavaServer Pages). Las características de almacenamiento dinámicoen antememoria incluyen la replicación de la antememoria entre clústeres, la descarga de disco en antememoria,el almacenamiento en antememoria de Edge Side Include, y el almacenamiento en antememoria externa, que esla capacidad de controlar las antememorias fuera del servidor de aplicaciones, como la del servidor Web.

Asegúrese de que las aplicaciones se ejecutan correctamente.

Los detalles están disponibles:Consideraciones sobre el diseño de aplicaciones (sugerencias sobre arquitectura)Diseño de aplicaciones (métodos recomendados para la codificación)

En esta información...

Conceptos relacionadosConsideraciones sobre el diseño deaplicaciones

Tareas relacionadasVisión general de la tarea: Utilización delservicio de antememoria dinámica paramejorar el rendimientoDiseño de aplicaciones

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _2

Nombre de archiv o: tprf _2.html

Page 11: Ajuste_rendimiento

4. Obtención de consejos de los asesoresLos asesores proporcionan una amplia variedad de recomendaciones que permiten mejorar el rendimiento del servidor deaplicaciones.

Antes de empezarLos asesores proporcionan consejos de rendimiento y diagnósticos de gran ayuda sobre el estado del servidor deaplicaciones.

Acerca de esta tareaEl ajuste de WebSphere Application Server es una aspecto muy importante para obtener un rendimiento óptimo del sitioWeb. Sin embargo, el ajuste de WebSphere Application Server implica analizar los datos de rendimiento y determinar laconfiguración óptima del servidor. Esta determinación requiere un conocimiento exhaustivo de los distintos componentesdel servidor de aplicaciones y sus características de rendimiento. Los asesores de rendimiento contienen esteconocimiento, analizan los datos de rendimiento y proporcionan recomendaciones de configuración para mejorar elrendimiento del servidor de aplicaciones. Por lo tanto, los asesores de rendimiento ofrecen un excelente punto de partidapara el proceso de ajuste del servidor de aplicaciones, sin necesidad de que sea un experto.

El asesor de rendimiento de tiempo de ejecución se ha ampliado para proporcionar también recomendaciones dediagnóstico y ahora se denomina el asesor de rendimiento y diagnóstico. Las recomendaciones de diagnósticoproporcionan información útil relacionada con el estado del servidor de aplicaciones. Las recomendaciones de diagnósticoson especialmente útiles cuando una aplicación no funciona según lo esperado, o simplemente como medio de supervisarel estado del servidor de aplicaciones.

Procedimiento

Decida qué asesor de rendimiento se adapta a sus objetivos, Asesor de rendimiento y diagnóstico o el asesor deTivoli Performance Viewer.

Utilice el asesor elegido para buscar periódicamente valores ineficaces y ver las recomendaciones.

Analice los datos PMI (Performance Monitoring Infrastructure) con asesores de rendimiento.

En esta información...

SubtemasPor qué se utilizan los asesores derendimientoTipos de asesor de rendimiento y sufinalidadUtilización de Asesor de rendimiento ydiagnósticoUtilización del asesor de rendimiento enTivoli Performance Viewer

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tuningentry point

Nombre de archiv o: tprf _tuningentry point.html

Page 12: Ajuste_rendimiento

4.1. Por qué se utilizan los asesores de rendimientoLos asesores analizan los datos PMI (Performance Monitoring Infrastructure) de WebSphere Application Server utilizandoprincipios de rendimiento generales, procedimientos recomendados y reglas específicas de WebSphere Application Serverpara el ajuste. Los asesores que se basan en esta información proporcionan consejos sobre cómo establecer algunos delos parámetros de configuración para ajustar mejor WebSphere Application Server.

Los asesores proporcionan una amplia variedad de consejos sobre los siguientes recursos del servidor de aplicaciones:Agrupaciones de hebras de servicio ORB (Object Request Broker)Agrupaciones de hebra de contenedor WebTamaño de la agrupación de conexionesTamaño y hora de sesión persistenteTamaño de memoria caché de sentencias de orígenes de datosTamaño de memoria caché de sesiónTamaño de memoria caché dinámicaTamaño de almacenamiento dinámico de la máquina virtual JavaAsistente de configuración de rendimiento de DB2Incumplimiento del uso de conexiones

Por ejemplo, considere la memoria caché de sentencias de orígenes de datos. Ésta optimiza el proceso de las sentenciaspreparadas y las sentencias a las que se puede llamar almacenando aquellas que no se utilizan en una conexión activa.(Ambas son sentencias SQL que esencialmente ejecutan tareas repetibles sin los costes de la repetición de compilación.)Si la memoria caché está llena, se descarta una entrada antigua en la memoria caché para hacer sitio para la nueva. Elmáximo rendimiento se obtiene cuando la memoria caché es lo suficientemente grande para mantener todas lassentencias que se utilizan en la aplicación. El contador PMI de descartes de la memoria caché de sentenciaspreparadas indica el número de sentencias que se descartan de la memoria caché. El asesor de rendimiento consultaeste contador y da recomendaciones para minimizar el número de descartes de la memoria caché.

Otro ejemplo es la hebra o agrupación de conexiones. El objetivo de la agrupación es utilizar una hebra o una conexiónexistente en la agrupación, en lugar de crear una nueva instancia para cada solicitud. Como cada hebra o conexión de laagrupación consume memoria y aumenta el coste de intercambio de contexto, el tamaño de la agrupación es un parámetrode configuración importante. Una agrupación demasiado grande puede disminuir el rendimiento tanto como una agrupacióndemasiado pequeña. Los asesores de rendimiento utilizan la información PMI sobre el uso actual de la agrupación, eltamaño máximo y mínimo de la agrupación y la utilización de la CPU del servidor de aplicaciones para recomendar valoreseficaces para los tamaños de la agrupación.

Los asesores también puede emitir avisos de diagnóstico para ayudar en la determinación de problemas y la supervisiónpara un buen funcionamiento. Por ejemplo, si la aplicación requiere más memoria de la disponible, el asesor dediagnóstico le indica que debe incrementar el tamaño o almacenamiento dinámico de los servidores de aplicaciones.

Tareas relacionadasObtención de consejos de los asesores

Tema de conceptos

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=cprf _why useperf adv isors

Nombre de archiv o: cprf _why useperf adv isors.html

Page 13: Ajuste_rendimiento

4.1.1. Tipos de asesor de rendimiento y su finalidadHay disponibles dos asesores de rendimiento: el Asesor de rendimiento y diagnóstico y el asesor de rendimiento de TivoliPerformance Viewer.

El Asesor de rendimiento y diagnóstico se ejecuta en el proceso JVM (Java Virtual Machine) del servidor de aplicaciones;por lo tanto, no proporciona consejos muy costosos. En un entorno de servidor de aplicaciones autónomo, el asesor derendimiento de Tivoli Performance Viewer se ejecuta en la JVM del servidor de aplicaciones.

El asesor de rendimiento de Tivoli Performance Viewer (TPV) proporciona consejos que permiten ajustar los sistemas paraobtener el máximo rendimiento y ofrece recomendaciones sobre configuraciones poco eficaces utilizando datos PMI(Performance Monitoring Infrastructure). Para obtener los consejos, seleccione el asesor de rendimiento en TPV.

Tabla 1. Asesor de rendimiento y diagnóstico y asesor de Tivoli Performance Viewer. El gráfico siguientemuestra las diferencias entre el Asesor de rendimiento y diagnóstico y el asesor de Tivoli Performance Viewer: Asesor de rendimiento y

diagnósticoAsesor de Tivoli PerformanceViewer

Ubicación de inicio Servidor de aplicaciones Cliente de Tivoli Performance Viewer

Invocación de laherramienta

Consola administrativa Tivoli Performance Viewer

Salida Archivo SystemOut.logConsola administrativaNotificaciones JMX

Tivoli Performance Viewer de laconsola administrativa

Frecuencia de laoperación

Configurable Cuando se selecciona Renovar en laconsola administrativa de TivoliPerformance Viewer

Tipos de consejosAviso sobre el rendimiento:

Agrupaciones de hebras deservicio ORB (ObjectRequest Broker)Agrupaciones de hebra decontenedor WebTamaño de la agrupación deconexionesTamaño y hora de sesiónpersistenteTamaño de memoria cachéde sentencias preparadasTamaño de memoria cachéde sesiónDetección de pérdida dememoria

Aviso sobre el diagnóstico:Diagnóstico de la fábrica deconexionesDiagnóstico de orígenes dedatos

Diagnóstico de uso de la conexiónDetección del uso de laconexión por varias hebrasDetección del uso de laconexión en loscomponentes

Aviso sobre el rendimiento:

Agrupaciones de hebras deservicio ORBAgrupaciones de hebra decontenedor WebTamaño de la agrupación deconexionesTamaño y hora de sesiónpersistenteTamaño de memoria cachéde sentencias preparadasTamaño de memoria cachéde sesiónTamaño de memoria cachédinámicaTamaño de almacenamientodinámico de la máquinavirtual Java (JVM)Asistente de configuración derendimiento de DB2

SubtemasAsesor de rendimiento y diagnóstico

Tareas relacionadasObtención de consejos de los asesores

Tema de conceptos

Condiciones de uso | Comentarios

Page 14: Ajuste_rendimiento

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=cprf _choosingperf adv isor

Nombre de archiv o: cprf _choosingperf adv isor.html

Page 15: Ajuste_rendimiento

4.1.1.1. Asesor de rendimiento y diagnósticoUtilice este tema para comprender las funciones del Asesor de rendimiento y diagnóstico.

El Asesor de rendimiento y diagnóstico ofrece consejos sobre el ajuste de sistemas para su óptimo rendimiento y seconfigura utilizando la consola administrativa de WebSphere Application Server o la herramienta wsadmin. El Asesor derendimiento y diagnóstico, que se ejecuta en la máquina virtual Java (JVM) del servidor de aplicaciones, realizacomprobaciones periódicas de valores ineficaces y emite recomendaciones en forma de mensajes de aviso de productoestándar. Estas recomendaciones se visualizan como avisos en la consola administrativa, en los Mensajes de tiempo deejecución del panel de estado de WebSphere Application Server, y como texto en el archivo SystemOut.log del servidorde aplicaciones. La habilitación del Asesor de rendimiento y diagnóstico tiene un impacto mínimo en el rendimiento delsistema.

El Asesor de rendimiento y diagnóstico proporciona avisos de rendimiento y diagnóstico para ayudar a ajustar los sistemascon el fin de lograr un rendimiento óptimo además de ayudar a comprender el buen funcionamiento del sistema. Seconfigura utilizando la consola administrativa de WebSphere Application Server o la herramienta wsadmin. El Asesor derendimiento y diagnóstico, que se ejecuta en la máquina virtual Java (JVM) del servidor de aplicaciones, realizacomprobaciones periódicas de valores ineficaces y emite recomendaciones en forma de mensajes de aviso de productoestándar. Estas recomendaciones se visualizan como avisos en la consola administrativa, en los Mensajes de tiempo deejecución del panel de estado de WebSphere Application Server, como texto en el archivo SystemOut.log del servidorde aplicaciones y como notificaciones JMX (Java Management Extensions). La habilitación del Asesor de rendimiento ydiagnóstico tiene un impacto mínimo en el rendimiento del sistema.

Desde WebSphere Application Server, Versión 6.0.2, puede utilizar el Asesor de rendimiento y diagnóstico para habilitar ladetección de pérdida de memoria ligera, que está diseñada para proporcionar una detección anticipada de problemas dememoria en entornos de prueba y producción.

El consejo del Asesor de rendimiento y diagnóstico se ofrece siempre a nivel de servidor. La única diferencia cuando seejecuta en un entorno de Network Deployment es que puede recibir un consejo contradictorio sobre los recursosdeclarados a nivel de nodo o de célula que se utilizan a nivel de servidor.

Por ejemplo, si se declara un origen de datos a nivel de nodo para que tenga un tamaño de agrupación de conexiones de10,50 y lo utilizan dos servidores (servidor1 y servidor2), se ofrecen dos conjuntos de consejos. Si el servidor1 utiliza sólodos conexiones y el servidor2 utiliza el total de cincuenta conexiones durante la carga máxima, el tamaño de agrupaciónde conexiones óptimo será diferente para los dos servidores. Por lo tanto, el Asesor de rendimiento y diagnóstico dará dosconjuntos de consejos (uno para el servidor1 y otro para el servidor2. El origen de datos se declara a nivel de nodo y debetomar las decisiones pertinentes estableciendo un tamaño que funcione para los dos niveles, o declarando dos orígenes dedatos diferentes para cada servidor con el nivel correspondiente.

Lea los pasos de la utilización de la información de asesor de rendimiento y diagnóstico para el arranque y laconfiguración.

SubtemasAlertas de diagnóstico que proporcionan los asesores de rendimiento y diagnóstico

Conceptos relacionadosTipos de asesor de rendimiento y su finalidadDetección de pérdida de memoria ligera

Tareas relacionadasUtilización de Asesor de rendimiento y diagnósticoHabilitación de la herramienta Asesor de rendimiento de tiempo de ejecución mediante scripts

Tema de conceptos

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=cprf _rpa

Nombre de archiv o: cprf _rpa.html

Page 16: Ajuste_rendimiento

4.2. Convenios de directoriosLas referencias en la información del producto a raíz_servidor_aplic, raíz_perfil y otros directorios infierenubicaciones específicas de directorios por omisión. En este tema se describen los convenios que se utilizan paraWebSphere Application Server.

Ubicaciones de producto predeterminadas (distribuidas)

Las siguientes vías de acceso de archivos son las ubicaciones predeterminadas. Puede instalar el producto y otroscomponentes o crear perfiles en cualquier directorio donde tenga acceso de escritura. Varias instalaciones de productos ocomponentes de WebSphere Application Server requieren varias ubicaciones. Se proporcionan los valores predeterminadospara acciones de instalación por parte de usuarios root y no root. Si no se especifican los valores no root, los valores deldirectorio por omisión se aplican tanto a los usuarios root, como a los usuarios no root.

raíz_cliente_aplic

Tabla 1. Directorios raíz de instalación predeterminados para WebSphere Application Client.

Esta tabla muestra los directorios raíz de instalación predeterminados para WebSphere Application Client.Usuario DirectorioRoot

/usr/IBM/WebSphere/AppClient (sólo para el cliente de aplicaciones JavaEE)

/opt/IBM/WebSphere/AppClient (sólo para elcliente de aplicaciones Java EE)

C:\Archivos de programa\IBM\WebSphere\AppClient

No root user_home/IBM/WebSphere/AppClient

(sólo para el cliente de aplicaciones Java EE)

C:\IBM\WebSphere\AppClient

raíz_servidor_aplic

Tabla 2. Directorios de instalación predeterminados para WebSphere Application Server.

Esta tabla muestra los directorios de instalación predeterminados de WebSphere Application Server.Usuario DirectorioRoot

/usr/IBM/WebSphere/AppServer

/opt/IBM/WebSphere/AppServer

C:\Archivos de programa\IBM\WebSphere\AppServer

No root

inicio_usuario/IBM/WebSphere/AppServer

inicio_usuario\IBM\WebSphere\AppServer

raíz_componente

El directorio raíz de instalación de componentes es cualquiera de los directorios raíz de instalación que se describen eneste tema. Algunos programas son para que se utilicen en varis componentes, en espacial, los plugins de servidor Web ,el cliente de aplicaciones, e IBM HTTP Server. Todos estos componentes forman parte del paquete del producto.

raíz_gskit

Cualquier usuario ahora puede instalar IBM Global Security Kit (GSKit). GSKit ya no se instala en una ubicación globaldel sistema de destino, sino localmente en la estructura de directorios del producto que se instala. La lista siguientemuestra el directorio raíz de instalación predeterminado para la versión 78 de GSKit, donde raíz_producto es eldirectorio raíz del producto que instala GSKit, por ejemplo el plug­in de IBM HTTP Server o del servidor web.

raíz_producto/gsk7raíz_producto/gsk8

Page 17: Ajuste_rendimiento

raíz_producto\gsk7raíz_producto\gsk8

raíz_perfil

Tabla 3. Directorios de perfiles predeterminados.

Esta tabla muestra los directorios predeterminados para un perfil denominado nombre_perfil en cadauno de los sistemas operativos distribuidos.Usuario DirectorioRoot

/usr/IBM/WebSphere/AppServer/profiles/nombre_perfil

/opt/IBM/WebSphere/AppServer/profiles/nombre_perfil

C:\Archivos deprograma\IBM\WebSphere\AppServer\profiles\nombre_perfil

No root

inicio_usuario/IBM/WebSphere/AppServer/profiles

inicio_usuario\IBM\WebSphere\AppServer\profiles

raíz_plug­ins

Tabla 4. Directorios raíz de instalación por omisión para los plug­ins de servidor Web.

Esta tabla muestra los directorios raíz de instalación predeterminados para los plug­ins de servidor Web deWebSphere Application Server.Usuario DirectorioRoot

/usr/IBM/WebSphere/Plugins

/opt/IBM/WebSphere/Plugins

C:\Archivos de programa\IBM\WebSphere\Plugins

No root

inicio_usuario/IBM/WebSphere/Plugins

C:\IBM\WebSphere\Plugins

raíz_wct

Tabla 5. Directorios raíz de instalación predeterminados para WebSphere Customization Tools .

Esta tabla muestra los directorios raíz de instalación predeterminados para WebSphere CustomizationTools.Usuario DirectorioRoot

/usr/IBM/WebSphere/Tools/WCT

/opt/IBM/WebSphere/Tools/WCT

C:\Archivos de programa\IBM\WebSphere\Tools\WCT

No root

inicio_usuario/IBM/WebSphere/Tools/WCT

C:\IBM\WebSphere\Tools\WCT

raíz_servidor_web

Tabla 6. Directorios raíz de instalación predeterminados para IBM HTTP Server.

Esta tabla muestra los directorios raíz de instalación predeterminados para IBM HTTP Server.Usuario Directorio

Page 18: Ajuste_rendimiento

Root /usr/IBM/HTTPServer

/opt/IBM/HTTPServer

C:\Archivos de programa\IBM\HTTPServer

No root inicio_usuario/IBM/HTTPServer

C:\IBM\HTTPServer

Tema de referencia

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=rins_dircon

Nombre de archiv o: rins_dircon.html

Page 19: Ajuste_rendimiento

4.3. Utilización de Asesor de rendimiento y diagnósticoLos asesores analizan los datos PMI (Performance Monitoring Infrastructure) de WebSphere Application Server utilizandoprincipios de rendimiento generales, procedimientos recomendados y reglas específicas de WebSphere Application Serverpara el ajuste.

Acerca de esta tarea Este tema sólo resulta adecuado para los sistemas operativos AIX, Linux y Windows.

Asesor de rendimiento y diagnóstico proporciona consejo que ayuda a ajustar sistemas para conseguir un rendimientoóptimo y se ha configurado utilizando la consola de administración de WebSphere Application Server o la herramientawsadmin (script). El Asesor de rendimiento y diagnóstico utiliza datos de PMI (Infraestructura de supervisión delrendimiento) para proporcionar recomendaciones para ajustar el rendimiento. Este asesor, que se ejecuta en la JVM (JavaVirtual Machine) del servidor de aplicaciones, realiza comprobaciones periódicas de valores ineficaces, y emiterecomendaciones en forma de mensajes de aviso de producto estándar. Puede ver estas recomendaciones si pulsaResolución de problemas > Mensajes de tiempo de ejecución > Aviso de tiempo de ejecución en la consolaadministrativa. La habilitación del Asesor de rendimiento y diagnóstico tiene un impacto mínimo en el rendimiento delsistema.

Procedimiento

1. Asegúrese de que PMI esté habilitado, que es el valor por omisión. Si PMI está inhabilitado, consulte la informaciónsobre cómo habilitar PMI utilizando la consola de administración. Para recibir avisos, primero debe habilitar la PMI através de la consola administrativa y reiniciar el servidor. El Asesor de rendimiento y diagnóstico habilita los nivelesde contador de supervisión correspondientes para todos los avisos habilitados cuando la PMI está habilitada. Si hayalgunos contadores específicos que no desea, o cuando inhabilita el Asesor de rendimiento y diagnóstico, inhabilitela PMI o los contadores que ha habilitado el Asesor de rendimiento y diagnóstico.

2. Pulse Servidores > Servidores de aplicaciones en el árbol de navegación de la consola administrativa.

3. Pulse nombre_servidor > Asesor de rendimiento y diagnóstico Configuración.

4. En la pestaña Configuración, especifique el número de procesadores del servidor. Este valor es crítico paragarantizar que los avisos sean correctos para la configuración específica del sistema.

5. Seleccione el Intervalo de cálculo. Los datos de PMI se toman durante un periodo de tiempo y se calcula elpromedio a fin de proporcionar un aviso. El intervalo de cálculo especifica la duración del tiempo durante el cual losdatos se toman para este aviso. Por lo tanto, los detalles de los mensajes de aviso se muestran como promediosdurante este intervalo.

6. Seleccione Secuencia de aviso máxima. La secuencia de aviso máxima hace referencia al número de avisosconsecutivos antes de que se actualice el umbral. Por ejemplo, si la secuencia de aviso máxima se establece como3, el asesor sólo envía tres avisos para indicar el desbordamiento en la antememoria de sentencias preparadas.Después de tres avisos, sólo se emite una nueva alerta si la tasa de descartes sobrepasa el nuevo valor de umbral.

7. Especifique CPU mínima para sistema en funcionamiento. La CPU mínima para un sistema en funcionamientohace referencia al nivel de CPU que indica que un servidor de aplicaciones está sometido a una carga deproducción. O bien, si desea ajustar el servidor de aplicaciones para cargas de producción máxima con un 50­90%de utilización de la CPU, establezca este valor en 50. Si la CPU está por debajo de este valor, continuaránemitiéndose algunos avisos de diagnóstico y rendimiento. Por ejemplo, independientemente del nivel de CPU, siestá descartando sentencias preparadas a una gran velocidad, se le notificará.

8. Especifique CPU no saturada. El nivel de CPU saturada indica a qué nivel se considera que la CPU estátotalmente utilizada. El nivel determina cuándo las normas de concurrencia dejan de aumentar las agrupaciones dehebras u otros recursos, aunque se utilicen totalmente.

9. Pulse Aplicar.

10. Pulse Guardar.

11. Pulse la pestaña Tiempo de ejecución.

12. Pulse Reiniciar. Seleccione Reiniciar en la pestaña Tiempo de ejecución para volver a inicializar el Asesor derendimiento y diagnóstico utilizando la última información de configuración que se ha guardado en el disco.

Esta acción también restablece el estado del Asesor de rendimiento y diagnóstico. Por ejemplo, el recuento actualde avisos se restablece a cero (0) para cada mensaje.

13. Simule una carga de nivel de producción. Si utiliza el Asesor de rendimiento y diagnóstico en un entorno de prueba,realice cualquier otro ajuste de rendimiento o simule una carga de producción realista para la aplicación. Laaplicación debe ejecutar esta carga sin errores. Esta simulación incluye el número de usuarios simultáneos típicode los períodos de mucho trabajo, y dirige los recursos del sistema, como la CPU y la memoria, a los nivelesesperados en la producción. El Asesor de rendimiento y diagnóstico proporciona avisos cuando la utilización de laCPU sobrepasa un nivel superior lo suficiente. Si desea una lista de los business partners deIBM que proporcionan

herramientas para gestionar este tipo de carga, consulte el rendimiento: recurso de información de aprendizaje.

Page 20: Ajuste_rendimiento

herramientas para gestionar este tipo de carga, consulte el rendimiento: recurso de información de aprendizaje.

14. Seleccione el recuadro de selección para habilitar el Asesor de rendimiento y diagnóstico.

Sugerencia: para conseguir los mejores resultados de ajuste del rendimiento, habilite el Asesor de rendimiento ydiagnóstico cuando se ejecuta una carga de nivel de producción estable.

15. Pulse Aceptar.

16. Seleccione Avisos de tiempo de ejecución en la consola administrativa, en Mensajes de tiempo de ejecución delpanel Estado o consulte el archivo SystemOut.log que se encuentra en el siguiente directorio:

raíz_perfil/logs/nombre_servidor

Algunos mensajes no se emiten inmediatamente.

17. Actualice la configuración del producto para mejorar el rendimiento, según la información del aviso. Aunque losAsesores de rendimiento intentan distinguir entre las condiciones de cargado y desocupado, el aviso podríaconfundirnos si el asesor está habilitado, cuando el sistema está aumentando o disminuyendo. Este resultado esmuy probable cuando se ejecutan pruebas cortas. Aunque el aviso sirve de ayuda en la mayoría de lasconfiguraciones, en algunas situaciones podría deteriorar el rendimiento. Debido a estas condiciones, no segarantiza el aviso. Por lo tanto, pruebe el entorno con la configuración actualizada para asegurarse de que funcionabien y de que el rendimiento es mejor que con la configuración anterior.

Con el tiempo, es posible que el asesor emita un aviso distinto. Este aviso distinto es debido a las fluctuaciones decarga y al estado de la ejecución. Cuando se recibe un aviso distinto, es preciso buscar todos los avisos y elperíodo de tiempo de ejecución en que se ha emitido. Debe tomarse el aviso en el momento que más se aproxime ala carga máxima de producción.

El ajuste de rendimiento es un proceso iterativo. Después de aplicar el aviso, simule una carga de producción,actualice la configuración que se basa en el aviso y vuelva a probar si se el rendimiento ha mejorado. Esteprocedimiento deberá continuar hasta conseguir el rendimiento óptimo.

Qué hacer a continuaciónPuede habilitar e inhabilitar avisos en el panel Configuración de avisos. Algunos avisos sólo se aplican a determinadasconfiguraciones, y sólo se pueden habilitar para dichas configuraciones. Por ejemplo, el aviso de agrupación de hebras deservicio ORB (Object Request Broker) no limitada sólo es relevante cuando la agrupación de hebras del servicio ORB noestá limitada, y sólo se puede habilitar cuando la agrupación de hebras de ORB no está limitada. Para obtener másinformación sobre la configuración de avisos, consulte la información de los valores de configuración de avisos.

En esta información...

SubtemasAsesor de rendimiento y diagnósticoValoresde configuraciónValores de configuración de avisosVisualización de las recomendaciones delAsesor de rendimiento y diagnósticoInicio de la detección ligera de pérdidas dememoriaHabilitación de la generación automática devuelcos de almacenamiento dinámico

Tareas relacionadasObtención de consejos de los asesoresHabilitación de la herramienta Asesor derendimiento de tiempo de ejecuciónmediante scriptsHabilitación de la herramienta Asesor derendimiento de tiempo de ejecuciónmediante scripts

Referencia relacionada

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Page 21: Ajuste_rendimiento

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _enablingrpa

Nombre de archiv o: tprf _enablingrpa.html

Page 22: Ajuste_rendimiento

4.3.1. Visualización de las recomendaciones del Asesor de rendimiento ydiagnósticoEl Asesor de rendimiento de tiempo de ejecución utiliza datos de PMI (Infraestructura de supervisión del rendimiento) paraproporcionar recomendaciones para ajustar el rendimiento.

Acerca de esta tareaEl Asesor de rendimiento y diagnóstico utiliza datos de PMI (Infraestructura de supervisión del rendimiento) paraproporcionar recomendaciones para ajustar el rendimiento. Este asesor, que se ejecuta en la JVM (Java Virtual Machine)del servidor de aplicaciones, realiza comprobaciones periódicas de valores ineficaces, y emite recomendaciones en formade mensajes de aviso de producto estándar.

Procedimiento

Las recomendaciones del Asesor de rendimiento y diagnóstico se visualizan en dos ubicaciones:1. El archivo de anotaciones cronológicas de SystemOut.log de WebSphere Application Server.2. El panel Mensajes de tiempo de ejecución de la consola administrativa. Para ver esta página administrativa, pulse

Resolución de problemas > Mensajes de tiempo de ejecución > Aviso de tiempo de ejecución.

EjemploEl archivo de anotaciones cronológicas siguiente es un una salida de ejemplo de aviso del archivo SystemOut.log:

[4/2/04 15:50:26:406 EST] 6a83e321 TraceResponse W CWTUN0202W: Aumentar el tamaño máximo de la agrupación de hebras del contenedor web a 48puede mejorar el rendimiento.

A continuación se indican los datos explicativos adicionales.

Promedio de hebras: 48.

Tamaño máximo de agrupación configurado: 2.

Esta alerta se ha emitido 1 veces seguidas. El umbral se actualizará para reducir la sobrecarga del análisis.

En esta información...

Tareas relacionadasUtilización de Asesor de rendimiento ydiagnóstico

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _v iewingrparecom

Nombre de archiv o: tprf _v iewingrparecom.html

Page 23: Ajuste_rendimiento

4.3.2. Inicio de la detección ligera de pérdidas de memoriaUtilice esta tarea para iniciar la detección ligera de pérdidas de memoria mediante el Asesor de rendimiento y diagnóstico.

Antes de empezarSi tiene una pérdida de memoria y desea confirmar la pérdida, o desea generar vuelcos de almacenamiento dinámicoautomáticamente en las máquinas virtuales Java (JVM) de WebSphere Application Server, es recomendable que cambielos tamaños máximo y mínimo de almacenamiento dinámico para que sean iguales. Este cambio proporciona al dispositivode detección de pérdidas de memoria más tiempo para un diagnóstico fiable.

Acerca de esta tareaPara iniciar la detección ligera de pérdidas de memoria mediante el Asesor de rendimiento y diagnóstico, realice los pasossiguientes en la consola administrativa:

Procedimiento1. Pulse Servidores > Servidores de aplicaciones en el árbol de navegación de consola administrativa.2. Pulse nombre_servidor > Asesor de rendimiento y diagnóstico Configuración.3. Pulse la pestaña Tiempo de ejecución.4. Habilite Asesor de rendimiento y diagnóstico Framework.5. Pulse Aceptar.6. En la pestaña Tiempo de ejecución o Configuración deAsesor de rendimiento y diagnóstico Framework, pulse

Configuración de avisos de rendimiento y diagnóstico.7. Inicie el dispositivo de detección de pérdidas de memoria y detenga cualquier otro dispositivo no deseado.

ResultadosSe inicia el dispositivo de detección de pérdidas de memoria.

Importante: para conseguir los mejores resultados de ajuste del rendimiento, inicie el Asesor de rendimiento ydiagnóstico cuando se ejecuta una carga de nivel de producción.

Qué hacer a continuaciónPuede supervisar cualquier notificación de pérdidas de memoria mediante la comprobación del archivo SystemOut.log oMensajes de tiempo de ejecución. Para obtener más información, consulte el tema Visualización de las recomendacionesdel Asesor de rendimiento y diagnóstico.

En esta información...

SubtemasDetección de pérdida de memoria ligera

Tareas relacionadasHabilitación de la herramienta Asesor derendimiento de tiempo de ejecuciónmediante scriptsHabilitación de la generación automática devuelcos de almacenamiento dinámico

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _enablingleakdetection

Nombre de archiv o: tprf _enablingleakdetection.html

Page 24: Ajuste_rendimiento

4.3.2.1. Detección de pérdida de memoria ligeraEn este tema se describen las pérdidas de memoria en las aplicaciones Java y se introduce la detección de pérdida dememoria ligera.

Pérdidas de memoria en aplicaciones Java

Aunque una aplicación Java tiene incorporado un mecanismo de recogida de basura que exime al programador de todaresponsabilidad de desasignación explícita de objetos, las pérdidas de memoria continúan siendo comunes en lasaplicaciones Java. Las pérdidas de memoria se producen en las aplicaciones Java cuando se hacen referencias nointencionadas a objetos no utilizados. Esto impide que la recogida de basura de Java pueda liberar memoria.

El término pérdida de memoria se utiliza demasiado; una pérdida de memoria hace referencia a un uso o una gestiónincorrectos de la memoria. Las estructuras de datos antiguas no utilizadas pueden tener referencias excelentes pero quenunca se hay recogido la basura. Una estructura de datos puede tener un crecimiento sin límites o puede que no hayasuficiente memoria asignada para ejecutar un conjunto de aplicaciones de forma eficaz.

Detección de pérdida de memoria ligera en WebSphere Application Server

La mayoría de tecnologías existentes de pérdida de memoria se basan en la idea de que sabe que tiene una pérdida dememoria y desea encontrarla. Debido a estos requisitos de análisis, estas tecnologías tienen cargas de rendimientoimportantes y no están diseñadas para utilizarlas como mecanismo de detección en entornos de producción. Estalimitación se traduce en que las pérdidas de memoria no se suelen detectar hasta que el problema es muy grave; laaplicación pasa todas las pruebas del sistema, se lleva a producción, pero no funciona y nadie sabe por qué.

WebSphere Application Server ha implementado un mecanismo de detección de pérdida de memoria ligera que se ejecutaen la infraestructura de WebSphere Asesor de rendimiento y diagnóstico. Este mecanismo está diseñado paraproporcionar una detección anticipada de problemas de memoria en entornos de prueba y producción. Esta infraestructurano está diseñada para facilitar el análisis del origen del problema, sino que proporciona notificación y ayuda para generar lainformación necesaria para utilizar las herramientas de análisis. El mecanismo sólo detecta pérdidas de memoria en elalmacenamiento dinámico Java y no detecta pérdidas nativas.

La detección de pérdida de memoria ligera en WebSphere Application Server no necesita agentes adicionales. Ladetección utiliza algoritmos basados en la información que está disponible en el servicio de Infraestructura de supervisióndel rendimiento y tiene una carga de rendimiento adicional mínima.

Información relacionadaInicio de la detección ligera de pérdidas de memoria

Tema de conceptos

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=cprf _leakdetection

Nombre de archiv o: cprf _leakdetection.html

Page 25: Ajuste_rendimiento

4.3.3. Habilitación de la generación automática de vuelcos dealmacenamiento dinámicoUtilice esta tarea para habilitar la generación automática de vuelcos del almacenamiento intermedio. Esta función no estásoportada cuando se utiliza una JVM (Java Virtual Machine) de Sun que incluye WebSphere Application Serverejecutándose en el sistema operativo HP­UX y Solaris. Se ha de investigar antes de realizar vuelcos de almacenamientodinámico en las JVM de Sun o llamar al servicio técnico de IBM.

Antes de empezarAunque los vuelcos de almacenamiento dinámico sólo se generan en respuesta a una pérdida de memoria detectada, debecomprender que la generación de vuelcos de almacenamiento dinámico puede tener un impacto grave de rendimiento enWebSphere Application Server durante varios minutos.

Acerca de esta tarea

El soporte de la generación automática de vuelcos de almacenamiento dinámico que sólo está disponible en IBM SoftwareDevelopment Kit y analiza los problemas de pérdida de memoria en sistemas operativos AIX, Linux y Windows.

La generación manual de almacenamientos dinámicos puede resultar difícil en el momento adecuado. Para ayudarle aanalizar los problemas de pérdida de memoria cuando se produce una detección de pérdida de memoria, puede utilizar elsoporte de generación automática de vuelcos de almacenamiento dinámico. Estas funciones sólo están disponibles paraIBM Software Development Kit en los sistemas operativos AIX, Linux y Windows.

La mayoría de herramientas de análisis de pérdida de memoria realizan algunas formas de evaluación diferente en dosvuelcos de almacenamiento dinámico. Al detectar una situación sospechosa de memoria, se generan automáticamentedos vuelcos de almacenamiento dinámico en el momento adecuado. La idea general es realizar un vuelco dealmacenamiento dinámico inicial tan pronto como se produce la detección del problema. Supervise la utilización de lamemoria y realice otro vuelco del almacenamiento dinámico cuando determine que se ha perdido suficiente memoria, paraque pueda comprar los vuelcos de almacenamiento dinámico y encontrar el origen de la pérdida.

Para ayudarle a analizar los problemas de pérdida de memoria cuando se produce una detección de pérdida de memoria,puede utilizar el soporte de generación automática de vuelcos de almacenamiento dinámico.

Para habilitar el soporte de generación automática de vuelcos de almacenamiento dinámico, realice los pasos siguientesen la consola administrativa:

Procedimiento1. Pulse Servidores > Servidores de aplicaciones en el árbol de navegación de consola administrativa.2. Pulse nombre_servidor >Asesor de rendimiento y diagnóstico Configuración.3. Pulse la pestaña Tiempo de ejecución.4. Seleccione el recuadro de selección Habilitar la recopilación automática de vuelcos de almacenamiento

dinámico.5. Pulse Aceptar.

ResultadosEstá habilitado el soporte de generación automática de vuelcos de almacenamiento dinámico.

Importante: para preservar el espacio de disco, el Asesor de rendimiento y diagnóstico no genera vuelcos dealmacenamiento dinámico si ya existen más de 10 vuelcos de almacenamiento dinámico en el directorio de inicio deWebSphere Application Server. En función del almacenamiento dinámico y de la carga de trabajo en el servidor deaplicaciones, la generación de un vuelco de almacenamiento dinámico puede ser muy caro y puede afectar temporalmenteal rendimiento del sistema.

El proceso automático de generación de volcados de almacenamiento dinámico reacciona a diversas condiciones de lamemoria y sólo genera volcados cuando es necesario. Cuando la memoria de almacenamiento dinámico es demasiadobaja, los vuelcos de almacenamiento dinámico no pueden tomarse o no puede llevarse a cabo la generación de vuelcos dealmacenamiento.

Qué hacer a continuaciónPuede supervisar cualquier notificación de pérdidas de memoria mediante la comprobación del archivo SystemOut.log oMensajes de tiempo de ejecución. Para obtener más información, consulte el tema Visualización de las recomendacionesdel Asesor de rendimiento y diagnóstico. Si se detecta una pérdida de memoria y desea buscar el vuelco dealmacenamiento dinámico, consulte el apartado Ubicación y localización de vuelcos de almacenamiento dinámico.

En esta información... Redbooks de IBM,demostraciones, formación y

Page 26: Ajuste_rendimiento

SubtemasGeneración de vuelcos de almacenamientodinámico manualmenteUbicación y localización de vuelcos dealmacenamiento dinámico

Información relacionadaInicio de la detección ligera de pérdidas dememoria

mucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _enablinglheapdump

Nombre de archiv o: tprf _enablingheapdump.html

Page 27: Ajuste_rendimiento

4.3.3.1. Generación de vuelcos de almacenamiento dinámico manualmenteUtilice esta tarea para generar manualmente vuelcos de almacenamiento dinámico. Esta función no está soportada cuandose utiliza una JVM (Java Virtual Machine) de Sun que incluye WebSphere Application Server ejecutándose en el sistemaoperativo HP­UX y Solaris.

Antes de empezar

Aunque los vuelcos de almacenamiento dinámico sólo se generan en respuesta a unapérdida de memoria detectada, debe comprender que la generación de vuelcos de almacenamiento dinámico puede tenerun impacto grave de rendimiento en WebSphere Application Server durante varios minutos. Al generar varios vuelcos dealmacenamiento dinámico para el análisis de pérdidas de memoria manualmente, asegúrese de que los objetosimportantes se pierden entre dos vuelcos de almacenamiento dinámico. Este enfoque permite a las herramientas dedeterminación de problemas identificar el origen de la pérdida de memoria.

Acerca de esta tareaEs posible que desee generar vuelcos de almacenamiento dinámico manualmente para el análisis de pérdidas de memoria.En JVM (Java Virtual Machines) en WebSphere Application Server, no puede habilitar la generación de vuelco dealmacenamiento dinámico automático. Es posible que desee designar ciertas horas para realizar los vuelcos dealmacenamiento dinámico debido a la actividad adicional implicada. En JVM de WebSphere Application Server, puedeproducir vuelcos de almacenamiento dinámico manualmente utilizando la operación generateHeapDump en los beansgestionados (MBeans) de WebSphere Application Server que son beans Java especiales.

La herramienta wsadmin de WebSphere Application Server le permite ejecutar scripts. Puede utilizar esta herramienta paragestionar una instalación de WebSphere Application Server, así como la configuración, el despliegue de aplicaciones yoperaciones de módulo ejecutable del servidor. WebSphere Application Server únicamente admite los lenguajes de scriptsJacl y Jython. Para obtener más información sobre la herramienta wsadmin, consulte la información relacionada con elinicio de cliente de scripts wsadmin.

Procedimiento

1. Inicie el cliente de scripts wsadmin. Existen varias opciones para ejecutar mandatos de creación de scripts, desdeejecutarlos interactivamente hasta ejecutarlos en un perfil.

2. Invoque la operación generateHeapDump en un MBean de JVM, por ejemplo,Búsqueda de objectName de JVM:

<wsadmin> set objectName [$AdminControl queryNames WebSphere:type=JVM,process=<nombre_servidor>,node=<nombre_nodo>,*]

Invocación de la operación generateHeapDump en MBean:

<wsadmin> $AdminControl invoke $objectName generateHeapDump

donde,

Tabla 1. Descripción de variables . En la tabla siguiente se explican las variables en el mandatomencionado anteriormente.$ es un operador Jacl para sustituir un nombre de variable por su

valor

invoke es el mandato

generateHeapDump es la operación que se está invocando

<nombre_servidor> es el nombre del servidor en el que desea generar un vuelco dealmacenamiento dinámico

<nombre_nodo> es el nodo al que pertenece <nombre_servidor>

Qué hacer a continuación

Después de ejecutar el mandato wsadmin, se devuelve el nombre de archivo del vuelco de almacenamiento dinámico.Para obtener más información sobre cómo buscar vuelcos de almacenamiento dinámico, consulte el tema Ubicación ylocalización de vuelcos de almacenamiento dinámico. Cuando tenga un par de vuelcos de almacenamiento dinámico,utilice varias herramientas de determinación de problemas de pérdida de memoria para analizar el problema.

Después de ejecutar el mandato wsadmin, se devuelve el nombre de archivo del vuelco de almacenamiento dinámico.Para obtener más información sobre cómo buscar vuelcos de almacenamiento dinámico, consulte el tema Ubicación ylocalización de vuelcos de almacenamiento dinámico. Cuando tenga un par de vuelcos de almacenamiento dinámico,utilice varias herramientas de determinación de problemas de pérdida de memoria para analizar el problema. MemoryDump Diagnostic for Java™ es una herramienta fuera de línea para diagnosticar las causas raíz que subyacen a laspérdidas de memoria en el almacenamiento dinámico Java. Consulte el diagnóstico de errores de falta de memoria ypérdidas de memoria del almacenamiento dinámico Java.

Page 28: Ajuste_rendimiento

En esta información...

Tareas relacionadasHabilitación de la generación automática devuelcos de almacenamiento dinámicoInicio del cliente de scripts wsadminmediante scripts wsadmin

Información relacionadaUbicación y localización de vuelcos dealmacenamiento dinámicoCómo diagnosticar problemas utilizando laherramienta IBM Support Assistant

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _generatingheapdumps

Nombre de archiv o: tprf _generatingheapdumps.html

Page 29: Ajuste_rendimiento

4.3.3.2. Ubicación y localización de vuelcos de almacenamiento dinámicoUtilice esta tarea para ubicar y analizar los vuelcos de almacenamiento dinámico.

Antes de empezarNo analice los vuelcos de almacenamiento dinámico en la máquina de WebSphere Application Server ya que el análisis esmuy costoso. Para realizar el análisis, transfiera los vuelcos de almacenamiento dinámico a una máquina de determinaciónde problemas dedicada.

Acerca de esta tareaCuando se detecta una pérdida de memoria, debe analizar los vuelcos de almacenamiento dinámico en una máquina dedeterminación de problemas y no en el servidor de aplicaciones ya que el análisis requiere la utilización intensiva de launidad central de proceso (CPU) y E/S de disco.

Efectúe el siguiente procedimiento para localizar los archivos de vuelco de almacenamiento dinámico.

Procedimiento

1. En aquel servidor de aplicaciones físico donde se detecte una pérdida de memoria, vaya al directorio de inicio deWebSphere Application Server. Por ejemplo, en el sistema operativo Windows, el directorio es:

raíz_perfil\myProfile

2. A los archivos de vuelco de almacenamiento dinámico IBM se les asigna un nombre del siguiente modo:

heapdump.<date>..<timestamp><pid>.phd

3. Recopile todos los archivos .phd y transfiéralos a la máquina de determinación de problemas para analizarlos.

4. Existen numerosas herramientas para analizar los vuelcos de almacenamiento dinámico que incluyen RationalApplication Developer 6.0. Como parte de la prestación de servicios, WebSphere Application Server emitió unavance de novedades tecnológicas llamado Memory Dump Diagnostic For Java. Puede bajar este avance de lapágina Web de descargas del producto.

Qué hacer a continuación

Cuando tenga un par de vuelcos de almacenamiento dinámico, utilice varias herramientas de determinación de problemasde pérdida de memoria para analizar el problema.

En esta información...

Tareas relacionadasHabilitación de la generación automática devuelcos de almacenamiento dinámicoGeneración de vuelcos de almacenamientodinámico manualmenteCómo diagnosticar problemas utilizando laherramienta IBM Support Assistant

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _collectingheapdumps

Nombre de archiv o: tprf _collectingheapdumps.html

Page 30: Ajuste_rendimiento

4.5. Utilización del asesor de rendimiento en Tivoli Performance ViewerEl asesor de rendimiento en Tivoli Performance Viewer (TPV) proporciona avisos que permiten ajustar los sistemas paraobtener un rendimiento óptimo, y proporciona recomendaciones sobre configuraciones poco eficaces utilizando los datosde PMI (Infraestructura de supervisión del rendimiento) recopilados.

Acerca de esta tareaPara obtener avisos, pulse Asesor de rendimiento en TPV. El asesor de rendimiento en TPV proporciona avisos máscompletos que el Asesor de rendimiento y el Asesor de diagnóstico. Por ejemplo, TPV proporciona avisos sobre cómoestablecer el tamaño de la memoria caché dinámica y el tamaño de almacenamiento dinámico de JVM (Java VirtualMachine), y sobre cómo utilizar DB2 Performance Configuration Wizard.

Procedimiento

1. Habilite PMI en el servidor de aplicaciones.

Para supervisar los datos de rendimiento a través de las interfaces PMI, primero debe habilitar la PMI a través de laconsola administrativa antes de reiniciar el servidor.

2. Habilite la recopilación de datos y establezca el nivel de supervisión PMI en Ampliado.

Los niveles de supervisión que determinan qué contadores de datos se habilitan pueden establecerse de formadinámica, sin reiniciar el servidor. Estos niveles de supervisión y los datos seleccionados determinan el tipo de avisoque obtendrá. El Asesor de rendimiento de TPV utiliza el nivel de supervisión ampliado; no obstante, el Asesor derendimiento de TPV puede utilizar algunos de los contadores más caros (para proporcionar avisos adicionales) y darrecomendaciones sobre qué contadores se pueden habilitar.

Por ejemplo, el aviso que corresponde al tamaño de la sesión necesita que la estadística de PMI esté establecidaen Todo. O bien, puede utilizar el nivel de supervisión personalizado de PMI para habilitar el contadorSessionObjectSize del gestor de sesiones de servlet. La supervisión del contador PMI SessionSize es cara, y no seencuentra en el conjunto de estadísticas de PMI ampliado. Complete esta acción de una de estas formas:

a. Valores de PMI.b. Habilitación de PMI (Performance Monitoring Infrastructure) mediante la herramienta wsadmin

3. En la consola administrativa, pulse Supervisión y ajuste > Performance Viewer > Actividad actual.

4. Simule una carga de nivel de producción. Simule una carga de producción realista para la aplicación, si utiliza elasesor de rendimiento en un entorno de prueba, o realice cualquier otro ajuste de rendimiento. La aplicación debeejecutar esta carga sin errores. Esta simulación incluye el número de usuarios simultáneos típico de los períodosde mucho trabajo, y dirige los recursos del sistema, como la CPU y la memoria, a los niveles esperados en laproducción. El asesor de rendimiento sólo proporciona avisos cuando la utilización de la CPU sobrepasa un nivelsuperior suficiente. Si desea una lista de los business partners deIBM que proporcionan herramientas para gestionareste tipo de carga, consulte el rendimiento: recurso de información de aprendizaje.

5. Registre los datos de rendimiento con TPV.

6. Si pulsa Renovar en la parte superior de la tabla de avisos, el asesor calcula de nuevo el aviso en función de losdatos actuales del almacenamiento intermedio.

7. Aparece el aviso de ajuste cuando se selecciona el icono Asesor en el Asesor de Rendimiento de TPV. Efectúe undoble pulsación en un mensaje individual si desea obtener detalles. Puesto que los datos de PMI se consideran enun intervalo de tiempo y se promedian para el aviso, los detalles en el mensaje de aviso aparecen como promedio.

Nota: Si se ajusta una cadencia de renovación, debe ajustarse el tamaño de almacenamiento intermedio parapermitir que se recopilen datos suficientes para realizar cálculos de promedios. Actualmente son necesarios 5minutos de datos. Por lo tanto, las directrices siguientes le servirán de ayuda para utilizar Tivoli PerformanceAdvisor:

a. No puede tener una cadencia de renovación de más de 300 segundos.b. CadenciaRenovación * TamañoAlmacenamientoIntermedio > 300 segundos. Tamaño de almacenamiento

intermedio * cadencia de renovación es la cantidad de datos de PMI disponibles en la memoria y debe sermayor que 300 segundos.

c. Para que Tivoli Performance Advisor funcione correctamente con los registros cronológicos de TPV, dichosregistros deben tener como mínimo 300 segundos de duración.

Para obtener más información sobre la configuración de los valores de usuario y de registro cronológico de TPV,consulte la información sobre la configuración de los valores de TPV.

8. Actualice la configuración del producto para mejorar el rendimiento, según la información del aviso. Puesto que TivoliPerformance Viewer renueva el aviso en un solo instante de tiempo, tome el aviso en el momento de carga máxima.Aunque los Asesores de rendimiento intentan distinguir entre las condiciones de cargado y desocupado, el avisopodría confundirnos si el asesor está habilitado, cuando el sistema está aumentando o disminuyendo. Esteresultado es muy probable cuando se ejecutan pruebas cortas. Aunque el aviso sirve de ayuda en la mayoría de lasconfiguraciones, en algunas situaciones podría deteriorar el rendimiento. Debido a estas condiciones, no se

garantiza el aviso. Por lo tanto, pruebe el entorno con la configuración actualizada para asegurarse de que funciona

Page 31: Ajuste_rendimiento

garantiza el aviso. Por lo tanto, pruebe el entorno con la configuración actualizada para asegurarse de que funcionabien y que el rendimiento es bueno.

En un período de tiempo el asesor puede emitir un aviso distinto. Esto es debido a las fluctuaciones de carga y alestado de la ejecución. Cuando se recibe un aviso distinto, es preciso buscar todos los avisos y el período detiempo de ejecución en que se ha emitido. Debe tomarse el aviso en el momento que más se aproxime a la cargamáxima de producción.

El ajuste de rendimiento es un proceso iterativo. Después de aplicar el aviso, simule una carga de producción,actualice la configuración que se basa en el aviso y vuelva a probar si se el rendimiento ha mejorado. Esteprocedimiento deberá continuar hasta conseguir el rendimiento óptimo.

En esta información...

SubtemasInforme del asesor de rendimiento en TivoliPerformance Viewer

Tareas relacionadasObtención de consejos de los asesoresHabilitación de PMI mediante la consolaadministrativaHabilitación de PMI mediante la herramientawsadminRegistro cronológico de los datos derendimiento con TPVConfiguración de valores de TPV

Referencia relacionada

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _enablingtpv adv isor

Nombre de archiv o: tprf _enablingtpv adv isor.html

Page 32: Ajuste_rendimiento

5. Ajuste del entorno de servicio de aplicacionesEn este tema se describen las ventajas de realizar un ajuste para obtener el rendimiento óptimo, se destacan losparámetros ajustables de los componentes principales de WebSphere Application Server y se proporciona informaciónacerca de cómo estos parámetros afectan el rendimiento.

Antes de empezarWebSphere Application Server proporciona valores ajustables para la mayor parte de sus componentes, lo que le permiterealizar los ajustes para adaptar mejor su entorno de tiempo de ejecución con las características de la aplicación. Muchasaplicaciones pueden ejecutarse correctamente sin realizar cambios en los valores predeterminados de estos parámetrosde ajuste. Es posible que sea necesario realizar cambios en otras aplicaciones, por ejemplo, aumentar el tamaño delalmacenamiento dinámico, para obtener un rendimiento óptimo.

El ajuste del rendimiento puede proporcionar logros importantes en temas de rendimiento incluso si una aplicación no estáoptimizada para el rendimiento. No obstante, corregir los problemas de una aplicación suele dar mejores resultados derendimiento que los que resultan posibles si simplemente se alteran los parámetros de ajuste. Muchos factorescontribuyen a una aplicación de alto rendimiento.

Acerca de esta tarea Ejecute el script applyPerfTuningTemplate.py como punto inicial para mejorar el rendimiento de un

servidor de aplicaciones específico. Este script de ajuste basado en python, junto con uno de sus archivos deplantilla, aplica los valores de ajuste del rendimiento recomendados para un entorno de desarrollo, producción oestándar típicos. El script y estos archivos de plantilla se ubican en el directorio<WAS_HOME>/scriptLibraries/perfTuning/V70.Para optimizar WebSphere Application Server al máximo, utilice los asesores de rendimiento además de losprocedimientos recomendados o los parámetros de la lista de parámetros de ajuste más importantes y la lista decomprobación de resolución de problemas de rendimiento.Asesores de rendimiento Los asesores de rendimiento utilizan los datos de PMI (Infraestructura de supervisión derendimiento) para sugerir que se realicen cambios de configuración en las agrupaciones de hebras del servicio ORB(Object Request Broker), las agrupaciones de hebras del contenedor Web, el tamaño de la agrupación deconexiones, el tamaño y la hora de la sesión persistente, el tamaño de la memoria caché de sentencias preparadasy el tamaño de la memoria caché de sesión. El Asesor de rendimiento de tiempo de ejecución se ejecuta en elproceso del servidor de aplicaciones, mientras que el otro asesor se ejecuta en TPV (Tivoli Performance Viewer).Para obtener más información, consulte los artículos Utilización de Asesor de rendimiento y diagnóstico yUtilización del asesor de rendimiento en Tivoli Performance Viewer.Lista de parámetros de ajuste más importantes Revise el tema Lista de parámetros de ajuste más importantesEstos parámetros afectan significativamente al rendimiento. Como estos parámetros dependen de las aplicaciones,los valores de los parámetros pueden variar para cada entorno y cada aplicación.El tema Resolución de problemas de rendimiento puede ahorrarle tiempo a la hora de detectar problemas y le ayudaa la resolución de problemas de rendimiento.

Referencias adicionales:Sitio Web de rendimiento: WebSphere Application Server

En esta información...

Subtemas Ajuste del servidor de aplicaciones

mediante plantillas de ajuste predefinidasLista de parámetros de ajuste másimportantesAjuste de tamaños de almacenamientointermedio TCP/IPAjuste de la máquina virtual para Java deIBMAjuste de máquinas virtuales Java HotSpot(Solaris & HP­UX)Ajuste de los servicios del canal detransporteComprobación de la configuración y losvalores de hardwareAjuste de sistemas operativos

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Page 33: Ajuste_rendimiento

Ajuste de servidores Web

Tareas relacionadasUtilización de Asesor de rendimiento ydiagnósticoUtilización del asesor de rendimiento enTivoli Performance ViewerAjuste de configuraciones de seguridadResolución de problemas de rendimientoAjuste de servidores de aplicacionesVisión general de la tarea: Utilización delservicio de antememoria dinámica paramejorar el rendimiento

Referencia relacionadaParámetros de ajuste de DB2Sugerencias sobre el rendimiento de la capade sockets segurosColas de invocación del método EJBRendimiento: recursos de aprendizajePropiedades personalizadas del transporteHTTP

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tuneprf

Nombre de archiv o: tprf _tuneprf .html

Page 34: Ajuste_rendimiento

5.2. Ajuste de tamaños de almacenamiento intermedio TCP/IPWebSphere Application Server utiliza de forma amplia el mecanismo de comunicación de sockets TC/IP. Para unaconexión de sockets TCP/IP, los tamaños de almacenamiento intermedio de envío y recepción definen el periodo derecepción. El periodo de recepción especifica la cantidad de datos que se pueden enviar y no recibir antes de que seinterrumpa el envío. Si se envían demasiados datos, se desborda el almacenamiento intermedio y se interrumpe latransferencia. El mecanismo que controla las interrupciones de transferencia de datos se denomina control del flujo. Si eltamaño del periodo de recepción de los almacenamientos intermedios TCP/IP es demasiado pequeño, el almacenamientointermedio del periodo de recepción se desborda con frecuencia, y el mecanismo de control del flujo detiene latransferencia de datos hasta que el almacenamiento intermedio de recepción está vacío.

Acerca de esta tarea

El control del flujo puede consumir una cantidad importante de tiempo de la CPU y dar como resultado una latencia de redadicional como resultado de las interrupciones en la transferencia de datos. Se recomienda aumentar los tamaños dealmacenamiento intermedio para evitar el control del flujo durante las condiciones normales de funcionamiento. Un tamañomás grande del almacenamiento intermedio reduce la posibilidad de que se produzca el control del flujo y resulta en un usomejorado de la CPU. Sin embargo, en algunos casos, un tamaño más grande del almacenamiento intermedio puede tenerun efecto negativo sobre el rendimiento. Si los almacenamientos intermedios de TCP/IP son demasiado grandes y lasaplicaciones no procesan los datos lo bastante rápido, puede aumentar la paginación. El objetivo es especificar un valor losuficientemente grande que evite el control del flujo, pero no tan grande como para que el almacenamiento intermedioacumule más datos de los que el sistema pueda procesar.

El tamaño por omisión del almacenamiento intermedio es 8 KB. El tamaño máximo es 8 MB (8096 KB). El tamaño óptimodel almacenamiento intermedio depende de varios factores del entorno de red, incluidos los tipos de conmutadores ysistemas, la emisión de reconocimientos, los índices de errores y la topología de la red, el tamaño de la memoria y eltamaño de la transferencia de datos. Cuando el tamaño de la transferencia de datos es extremadamente grande, puedeque desee establecer los tamaños de almacenamiento intermedio hasta un valor máximo para mejorar el rendimiento,reducir las apariciones del control del flujo y reducir el coste de la CPU.

Los tamaños de almacenamiento intermedio para las conexiones de sockets entre el servidor Web y WebSphereApplication Server están establecidos en 64 KB. En la mayoría de los casos este valor es adecuado.

El control del flujo puede ser un problema cuando una aplicación utiliza el controlador JDBC de IBM Developer Kit paraJava(TM) o el controlador de IBM Toolbox for Java JDBC para acceder a una base de datos remota. Si las transferencias dedatos son demasiado grandes, el control del flujo puede consumir una gran cantidad de tiempo de la CPU. Si utiliza elcontrolador JDBC deIBM Toolbox for Java, puede utilizar propiedades personalizadas para configurar los tamaños dealmacenamiento intermedio para cada origen de datos. Se recomienda especificar tamaños de almacenamiento intermediograndes, por ejemplo 1 MB.

Algunos valores de todo el sistema pueden alterar temporalmente el tamaño de almacenamiento intermedio de 8 KB paralos sockets. Con algunas aplicaciones, por ejemplo, WebSphere Commerce Suite, un tamaño de almacenamientointermedio de 180 KB reduce el control del flujo y normalmente no afecta negativamente la paginación. El valor óptimodepende de las características específicas del sistema. Es posible que sea necesario intentar varios valores antes dedeterminar el tamaño ideal de almacenamiento intermedio del sistema.

Para obtener más información, consulte la sección 4.6 en eldocumentohttp://www.redbooks.ibm.com/redbooks/SG247347/wwhelp/wwhimpl/js/html/wwhelp.htm. Además, consulte eldocumento http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/tcp_streaming_workload_tuning.htm.

Para obtener más información, consulte la información del mandato ndd en los siguientes documentos:http://docs.hp.com/en/B2355­91020/B2355­91020.pdfhttp://docs.hp.com/en/TKP­90203/index.html

Además, consulte la información sobre el parámetro _recv_hiwater_def y tcp_xmit_hiwater_def parameter en elsiguiente documento: http://docs.hp.com/en/11890/perf­whitepaper­tcpip­v1_1.pdf

Para más información, consulte los siguientes documentos:http://www.ibm.com/developerworks/linux/library/l­hisock.htmlhttp://fasterdata.es.net/TCP­tuning/linux.htmlhttp://www.onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html?page=2

Para más información, consulte la sección 2.2 del siguiente documento:http://www.redbooks.ibm.com/redbooks/SG247584/wwhelp/wwhimpl/java/html/wwhelp.htm

Para obtener información sobre cómo ajustar los tamaños de almacenamiento intermedio de TCP/IP buffer,consulte la sección "Tamaño de la ventana TCP" del documento http://support.microsoft.com/kb/224829. Considereestablecer el valor TcpWindowSize en 8388608 o 16777216.

Page 35: Ajuste_rendimiento

En esta información...

Tareas relacionadasAjuste del entorno de servicio deaplicaciones

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunetcpip

Nombre de archiv o: tprf _tunetcpip.html

Page 36: Ajuste_rendimiento

5.3. Ajuste de la JVM

Qué hacer a continuación

Ajuste de la máquina virtual para Java de IBM

Un servidor de aplicaciones es un servidor basado en Java y requiere un entorno de JVM (Java Virtual Machine) paraejecutar y dar soporte a las aplicaciones de empresa que se ejecutan en el mismo. Como parte de la configuracióndel servidor de aplicaciones puede configurar el entorno de ejecución de Java SE para ajustar el rendimiento y el usode los recursos del sistema. Este tema se aplica a las máquinas virtuales para Java de IBM.

Ajuste de máquinas virtuales Java HotSpot (Solaris & HP­UX)

La arquitectura de la JVM (Java Virtual Machine) HotSpot desarrollada por Sun e implementada por HP haevolucionado de forma distinta al kit de desarrollo de software (SDK) de IBM. Su estructura interna, para unageneración nueva o antigua y regiones permanentes, surge para principalmente dar soporte a la recogida de basurageneracional, así como otras modalidades de recogida de basura que sean necesarias.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_tune_jvm

Nombre de archiv o: container_tune_jvm.html

Page 37: Ajuste_rendimiento

5.3.1. Ajuste de la máquina virtual para Java de IBMUn servidor de aplicaciones es un servidor basado en Java y requiere un entorno de JVM (Java Virtual Machine) paraejecutar y dar soporte a las aplicaciones de empresa que se ejecutan en el mismo. Como parte de la configuración delservidor de aplicaciones puede configurar el entorno de ejecución de Java SE para ajustar el rendimiento y el uso de losrecursos del sistema. Este tema se aplica a las máquinas virtuales para Java de IBM.

Antes de empezarDetermine el tipo de JVM en la que se ejecuta el servidor de aplicaciones.

Emita el mandato java –fullversion desde el directorio raíz_servidor_aplic/java/bin del servidor deaplicaciones.

En respuesta a este mandato, Java graba información sobre la JVM, incluida la información de proveedor de JVM,en el archivo SystemOut.log.

Si el servidor de aplicaciones está ejecutándose en una JVM HotSpot de SUN, consulte el tema Ajuste demáquinas virtuales de Java HotSpot de SUN (Solaris y HP­UX).

Verifique que:1. Está instalada en el sistema la versión más reciente de JVM soportada.2. Está instalada en el sistema la actualización del servicio más reciente soportada. Prácticamente, cada nuevo

nivel de servicio incluye mejoras de rendimiento de JVM.

Acerca de esta tarea

Cada proveedor JVM proporciona información detallada sobre el rendimiento y el ajuste de su JVM. Utilice la informaciónque se proporciona en este tema junto con la información que se proporciona con la JVM que se ejecuta en el sistema.

Un Java SE Runtime Environment proporciona el entorno para ejecutar aplicaciones de empresa y servidores deaplicaciones. Por lo tanto, la configuración de Java representa un rol importante en la determinación del rendimiento y elconsumo de recursos del sistema para un servidor de aplicaciones y las aplicaciones que se ejecutan en el mismo.

La máquina virtual para Java de IBM Versión 6.0 incluye las últimas especificaciones Java EE (Java Platform, EnterpriseEdition) y proporciona mejoras en el rendimiento y la estabilidad sobre las versiones anteriores.

No obstante, aunque el ajuste de la JVM depende del proveedor de JVM que se utilice, existen algunos conceptosgenerales de ajuste que se aplican a todas las JVM. Estos conceptos generales incluyen:

Ajuste del compilador. Todas las JVM utilizan compiladores JIT (Just­In­Time In Time) para compilar códigos debytes Java en instrucciones nativas durante el tiempo de ejecución.Ajuste del almacenamiento dinámico o de la memoria de Java. El ajuste de la función de gestión de memoria de laJVM o la recogida de basura es un buen punto de partida para mejorar el rendimiento de la JVM.Ajuste de la carga de clases.Optimización del inicio frente al rendimiento de ejecución

Los siguientes pasos facilitan instrucciones específicas sobre cómo realizar los siguientes tipos de ajuste para cada JVM.Estos pasos no tienen que llevarse a cabo en un orden específico.

Procedimiento

1. Optimice el rendimiento del arranque y del tiempo de ejecución.

En algunos entornos, es más importante optimizar el rendimiento durante el arranque del servidor de aplicacionesque el rendimiento en tiempo de ejecución. En otros entornos, es más importante optimizar el rendimiento entiempo de ejecución. De manera predeterminada, las máquinas virtuales para Java de IBM se han optimizado para elrendimiento en tiempo de ejecución, mientras que las JVM basadas en HotSpot se han optimizado para elrendimiento durante el arranque.

El compilador JIT (Just­in­Time ) de Java afecta a la optimización del rendimiento del arranque o el tiempo deejecución. El nivel de optimización inicial que el compilador utiliza influye en la cantidad de tiempo necesario paracompilar un método de clase y la cantidad de tiempo necesario para en iniciar el servidor. Para que el arranque seamás rápido, reduzca el nivel de optimización inicial que utiliza el compilador. Sin embargo, si se reduce el nivel deoptimización inicial, el rendimiento en tiempo de ejecución de las aplicaciones puede verse disminuido debido a quelos métodos de clase se compilan ahora en un nivel de optimización más bajo.

­Xquickstart

Este valor afecta el modo en que la máquina virtual para Java de IBM utiliza un nivel de optimización másbajo para las compilaciones de métodos de clase. Un nivel de optimización más bajo permite un arranquemás rápido del servidor, aunque disminuye el rendimiento de la ejecución. Si no se especifica esteparámetro, por omisión, la máquina virtual para Java de IBM arranca con un nivel de optimización inicial altopara las compilaciones, lo que causa un rendimiento de ejecución más rápido a expensas de un arranque

Page 38: Ajuste_rendimiento

más lento del servidor.

Valorpredeterminado

Alto nivel inicial de optimización del compilador

Recomendado Alto nivel inicial de optimización del compilador

Uso Si especifica ­Xquickstart se mejora el tiempo de inicio delservidor.

2. Configure el tamaño del almacenamiento dinámico.

Los parámetros del almacenamiento dinámico de Java influyen en el comportamiento de la recogida de basura. Elaumento del tamaño del almacenamiento dinámico da soporte a la creación de más objetos. Como unalmacenamiento dinámico grande tarda en llenarse, la aplicación tiene más tiempo de ejecución antes de que seproduzca la recogida de basura. No obstante, un almacenamiento dinámico grande también precisa de más tiempopara ser compactado, y hace que la recogida de basura dure más.

La JVM utiliza umbrales definidos para gestionar el almacenamiento que está asignado. Cuando se alcanzan losumbrales, el recopilador de basura se invoca para liberar el almacenamiento no utilizado. Por lo tanto, la recogida debasura puede ocasionar una degradación significativa del rendimiento Java. Antes de modificar los tamaños inicial ymáximo del almacenamiento dinámico debe tener en cuenta la siguiente información:

En la mayor parte de los casos, debe establecer el tamaño del almacenamiento dinámico de la JVM en unvalor superior al tamaño de almacenamiento dinámico de JVM inicial. Esto permite que la JVM funcione coneficacia durante los períodos de estado normal y sin oscilaciones dentro de los confines del almacenamientodinámico inicial. Este valor también permite que JVM opere con eficacia durante los períodos con un granvolumen de transacciones porque la JVM puede ampliar el almacenamiento dinámico hasta el valorespecificado para el tamaño máximo de almacenamiento dinámico de JVM. En algunos casos raros en losque es necesario un rendimiento óptimo, es posible que desee especificar el mismo valor para el tamañomáximo e inicial del almacenamiento dinámico. Este valor elimina la actividad general que se producecuando la JVM expande o contrae el tamaño del almacenamiento dinámico de JVM. Antes de cambiaralguno de los tamaños de almacenamiento dinámico de JVM, verifique que la asignación de almacenamientodinámico de JVM sea lo bastante grande para dar cabida al nuevo tamaño de almacenamiento dinámico.No haga que el tamaño del almacenamiento dinámico inicial sea tan grande que aunque al principio mejora elrendimiento demorando la recogida de basura, cuando ésta se produce, el proceso de recogida afecta altiempo de respuesta porque el proceso tiene que ejecutarse durante más tiempo.

Para utilizar la consola administrativa para configurar el tamaño del almacenamiento dinámico:

a. En la consola administrativa, pulse Servidores > Tipos de servidor > Servidores de aplicacionesWebSphere > nombre_servidor.

b. En la sección infraestructura del servidor, pulse Java y gestión de procesos > Definición de proceso >Máquina Virtual Java.

c. Especifique un nuevo valor en el campo Tamaño de almacenamiento dinámico inicial o Tamañomáximo de almacenamiento dinámico.

También puede especificar valores para los dos campos si es necesario ajustar los dos valores.

Para analizar el rendimiento, los tamaños inicial y máximo del almacenamiento dinámico deben ser iguales.

El valor del tamaño inicial de almacenamiento dinámico especifica, en megabytes, la cantidad dealmacenamiento asignado para el almacenamiento dinámico de JVM cuando la JVM se inicia. El valor deltamaño máximo de almacenamiento dinámico especifica, en megabytes, la cantidad máxima dealmacenamiento que se puede asignar al almacenamiento dinámico de JVM. Ambos valores tienen un efectosignificativo en el rendimiento.

Si se ajusta un sistema de producción donde se desconoce el tamaño del conjunto de trabajos de lasaplicaciones de empresa que se ejecutan en ese sistema, un valor de inicio adecuado para el tamaño inicialdel almacenamiento dinámico es el 25 por ciento del tamaño máximo del almacenamiento dinámico. Acontinuación, la JVM intenta adaptar el tamaño del almacenamiento dinámico al tamaño del conjunto detrabajos de la aplicación.

La siguiente ilustración anterior representa tres perfiles de CPU, cada una ejecuta una carga de trabajo fijacon distintos valores de almacenamiento dinámico de Java. En el perfil central, los tamaños inicial y máximodel almacenamiento dinámico se establecen en 128 MB. Se producen cuatro recogidas de basura. El tiempototal de la recogida de basura es de alrededor del 15 por ciento del total de la ejecución. Al duplicar losparámetros de almacenamiento dinámico a 256 MB, como en el perfil superior, aumenta la longitud deltiempo de trabajo entre las recogidas de basura. Sólo se producen tres recogidas de basura, pero la duraciónde las mismas aumenta. En el tercer perfil, el tamaño de almacenamiento dinámico se reduce a 64 MB ymuestra el efecto contrario. Con un tamaño de almacenamiento dinámico más pequeño, se reduce el tiempoentre las recogidas de basura, pero éstas tardan menos. Para las tres configuraciones el tiempo total derecogida de basura ha sido de aproximadamente el 15 por ciento. Este ejemplo ilustra un conceptoimportante sobre el almacenamiento dinámico de Java y su relación con la utilización de objetos. Siempre

Page 39: Ajuste_rendimiento

existe un coste para la recogida de basura al ejecutar aplicaciones de empresa.

Ejecute una serie de pruebas que varían los valores del almacenamiento dinámico de Java. Por ejemplo,ejecute experimentos con 128 MB, 192 MB, 256 MB y 320 MB. En cada prueba, supervise el uso total dememoria. Si se amplía el almacenamiento dinámico de forma demasiado agresiva, podría producirsepaginación.

Utilice el mandato vmstat o el Monitor de rendimiento de Windows para comprobar la paginación. Si seproduce paginación, reduzca el tamaño del almacenamiento dinámico o añada más memoria al sistema.

Cuando hayan finalizado todas las ejecuciones, compare las estadísticas siguientes:Número de llamadas a la recogida de basuraPromedio de duración de una recogida de basuraProporción entre la duración de una llamada a la recogida de basura y el tiempo medio entre dosllamadas

Si la aplicación no utiliza objetos de forma abusiva y no tiene pérdidas de memoria, se alcanza el estado deutilización de memoria estable. La recogida de basura también se produce con menos frecuencia y con unaduración menor.

Si el espacio libre del almacenamiento dinámico se establece en 85 por ciento o más, considere laposibilidad de disminuir los valores del tamaño máximo del almacenamiento dinámico, ya que el servidor deaplicaciones y la aplicación están infrautilizando la memoria asignada por el almacenamiento dinámico.

para el controlador y el sirviente si el servidor está configurado para ejecutarse en modalidad de 64 bits.

d. Pulse Aplicar.

e. Pulse Guardar para guardar los cambios en la configuración maestra.

f. Pare y reinicie el servidor de aplicaciones.

También puede utilizar los siguientes parámetros de la línea de mandatos para ajustar estos valores. Estosparámetros se aplican a todas las JVM soportadas y se utilizan para ajustar los tamaños máximo y mínimo delalmacenamiento dinámico para cada instancia del servidor o del servidor de aplicaciones.

­Xms

Este parámetro controla el tamaño inicial del almacenamiento dinámico Java. Si se ajusta este parámetro sereduce la actividad general de recogida de basura y se mejoran la productividad y el tiempo de respuesta delservidor. Para algunas aplicaciones, el valor por omisión de esta opción puede ser demasiado bajo, lo quecausa un número elevado de recogidas de basura sin importancia.

Valorpredeterminado

50 MB

Recomendado Específico de la carga de trabajo pero superior al valor por omisión.

Uso Si se especifica ­Xms256m se establece el tamaño inicial delalmacenamiento dinámico en 256 MB.

Page 40: Ajuste_rendimiento

­Xmx

Este parámetro controla el tamaño máximo del almacenamiento dinámico Java. Al aumentar este parámetrose aumenta la memoria disponible para el servidor de aplicaciones y reduce la frecuencia de la recogida debasura. Al aumentar este valor se puede mejorar la productividad y el tiempo de respuesta del servidor. Sinembargo, al aumentar este valor también se aumenta la duración de la recogida de basura cuando ésta seproduce. Este valor nunca debe ser superior al valor de la memoria disponible para la instancia del servidor deaplicaciones. Si se aumenta el valor por encima de la memoria del sistema disponible puede provocarpaginación del sistema y una disminución significativa en el rendimiento.

Valorpredeterminado

De forma predeterminada, la JVM calcula dinámicamente el tamaño dealmacenamiento dinámico Java basado en la memoria disponible en elsistema.

Recomendado Específico de la carga de trabajo, pero superior al valor predeterminado,en función de la cantidad disponible de memoria física.

Uso Si se especifica ­Xmx512m se establece el tamaño máximo delalmacenamiento dinámico en 512 MB.

Evite problemas: Especifique un valor para el parámetro -Xmx para reducir los posibles problemas defalta de memoria.

­Xlp

Utilice este parámetro con la máquina virtual para que Java de IBM asigne el almacenamiento dinámico alutilizar las páginas grandes, como las páginas de 16 MB. Antes de especificar este parámetro, verifique queel sistema operativo se haya configurado para dar soporte a páginas grandes. Al utilizar páginas grandes sereduce la actividad general de CPU necesaria para realizar un seguimiento de la memoria delalmacenamiento dinámico y permite también crear un almacenamiento dinámico mayor.

–Xlp64k

Este parámetro se puede utilizar para asignar el almacenamiento dinámico utilizando las páginas de tamañomediano, como por ejemplo 64 KB. Con este tamaño de página de memoria virtual para la memoria que unaaplicación requiere puede mejorar el rendimiento y la productividad de la aplicación debido a lascaracterísticas de hardware asociadas a un tamaño de página más grande.

i5/OS y AIX proporcionan un soporte enriquecido de páginas de alrededor de 64 KB porque laspáginas de 64 KB están diseñadas para ser páginas de uso general. Las páginas de 64 KB son fáciles dehabilitar y las aplicaciones pueden obtener ventajas en el rendimiento cuando se utilizan páginas de 64 KBen lugar de páginas de 4 KB, que es el valor predeterminado. Este valor puede modificarse sin cambiar laconfiguración del sistema operativo. No obstante, se recomienda ejecutar los servidores de aplicaciones enuna agrupación de almacenamiento distinta si se habilita el uso de páginas de 64 KB.

Para dar soporte al tamaño de página de 64 KB, en la consola administrativa, pulse Servidores >Servidores de aplicaciones > nombre_servidor > Definición de proceso > Entradas del entorno >Nueva y, a continuación, especifique LDR_CNTRL en el campo Nombre yDATAPSIZE=64K@TEXTPSIZE=64K@STACKPSIZE=64K en el campo Valor.

Valorpredeterminado

4 KB

Recomendado ­Xlp64k habilita el soporte de tamaño de página de 64 KB.

Los sistemas POWER5+, y AIX 5L Versión 5.3 con elpaquete de mantenimiento recomendado 5300­04 da soporte a unnuevo tamaño de página de 64 KB al ejecutar el kernel de 64 bits.

3. Ajuste la memoria Java.

Las aplicaciones de empresa escritas en lenguaje Java implican complejas relaciones de objetos y utilizan grannúmero de objetos. Aunque el lenguaje Java gestiona automáticamente la memoria asociada con los ciclos de vidade los objetos, es importante comprender los patrones de uso de la aplicación para objetos. Concretamente,verifique que existan las siguientes condiciones:

La aplicación no hace un uso abusivo de objetosLa aplicación no pierde objetosLos parámetros de almacenamiento dinámico de Java se han establecido correctamente para manejar elpatrón de uso de un objeto concreto.

a. Compruebe el uso abusivo de objetos.

Puede revisar los contadores para el tiempo de ejecución de JVM, que se incluyen en los informes de TivoliPerformance Viewer, para determinar si una aplicación está usando con exceso los objetos. Debe especificar

la opción de línea de mandatos -XrunpmiJvmtiProfiler, así como el nivel máximo de módulo JVM a fin de

Page 41: Ajuste_rendimiento

la opción de línea de mandatos -XrunpmiJvmtiProfiler, así como el nivel máximo de módulo JVM a fin dehabilitar la interfaz del perfilador de máquinas virtuales Java, JVMTI, contadores.

El mejor resultado de tiempo medio entre recogidas de basura es como mínimo de cinco a seis veces laduración media de una recogida de basura. Si no alcanza este número, la aplicación está gastando más del15 por ciento de su tiempo en la recogida de basura.

Si la información indica que hay un cuello de botella en la recogida de basura, hay dos formas de eliminarlo.La forma más rentable de optimizar la aplicación es implementar antememorias y agrupaciones de objetos.Utilice un perfilador de Java para determinar qué objetos serán el objetivo. Si no puede optimizar laaplicación, pruebe la incorporación de memoria, procesadores y clones. La memoria adicional permite a cadaclon mantener un tamaño razonable de almacenamiento dinámico. Los procesadores adicionales permitenque los clones se ejecuten en paralelo.

b. Compruebe si hay pérdidas de memoria.

Las pérdidas de memoria en el lenguaje Java contribuyen peligrosamente a los cuellos de botella de larecogida de basura. Las pérdidas de memoria son peores que el uso abusivo de memoria, pues una pérdidade memoria, tarde o temprano, lleva a la inestabilidad del sistema. Con el tiempo, la recogida de basuratendrá lugar cada vez con más frecuencia, hasta que se agote el almacenamiento dinámico y se produzcauna anomalía en el código Java con una excepción grave de falta de memoria. Las pérdidas de memoria seproducen cuando un objeto no utilizado tiene referencias que nunca se liberan. Las pérdidas de memoria seproducen normalmente en clases de recogida como Hashtable, porque la tabla tiene siempre una referenciaal objeto, incluso después de eliminar las referencias reales.

Las cargas de trabajo altas suelen hacer que las aplicaciones tengan errores graves inmediatamentedespués del despliegue en el entorno de producción. Estas aplicaciones se cuelgan si las aplicacionesexperimentan pérdidas de memoria porque la carga de trabajo alta acelera el aumento de la pérdida y seproducen anomalías en la asignación de memoria.

El objetivo de las pruebas de pérdida de memoria es magnificar los números. Las pérdidas de memoria semiden en términos de cantidad de bytes o kilobytes que no puede liberar la recogida de basura. La tareadelicada consiste en diferenciar estas cantidades entre los tamaños esperados de memoria útil y no útil.Esta tarea se logra con mayor facilidad si los números se hacen grandes, consiguiendo así desfasesmayores y una identificación más fácil de las inconsistencias. La siguiente lista proporciona informaciónsobre cómo interpretar los resultados de la prueba de pérdida de memoria:

Prueba de larga ejecución

Los problemas de pérdida de memoria se manifiestan sólo después de un determinado período detiempo, por lo que se detectan fácilmente en pruebas de larga duración. Los test de corta ejecuciónproporcionan indicaciones no válidas del lugar en que se producen las pérdidas de memoria. A veceses difícil saber cuándo se está produciendo una pérdida de memoria en el lenguaje Java, sobre todocuando el uso de la memoria parece que aumenta repentinamente o de forma monótona en un períodode tiempo dado. La razón por la que es difícil detectar una pérdida de memoria es que estos tipos deaumentos pueden ser válidos o pueden ser el objetivo del desarrollador. Para aprender a distinguir losobjetos que no se utilizan en absoluto del uso diferido de objetos, ejecute las aplicaciones durantemás tiempo. Las pruebas de aplicaciones que se ejecutan durante más tiempo ofrecen una mayorconfianza para saber si se está produciendo realmente dicho retraso en el uso de los objetos.

Prueba repetitiva

En muchos casos, los problemas de pérdida de memoria se produce debido a la repetición sucesivade la misma prueba. El objetivo de las pruebas de pérdida de memoria es establecer un gran desfaseentre la memoria que se utiliza y la que no, en términos de sus tamaños relativos. Mediante larepetición una y otra vez del mismo escenario, el desfase se hace notorio progresiva. Esta prueba esde gran ayuda si el número de pérdidas provocadas por la ejecución de una prueba concreta es tanpequeña que difícilmente se puede detectar en una sola ejecución.

Las pruebas repetitivas se pueden utilizar a nivel de sistema o de módulo. La ventaja con las pruebasa nivel de módulo es que se tiene un mejor control. Cuando se diseña un módulo para que mantengael módulo privado sin crear efectos colaterales externos como el uso de la memoria, las pruebas enbusca de pérdidas de memoria son más sencillas. En primer lugar, se registra el uso de la memoriaantes de la ejecución del módulo. A continuación, se ejecuta un conjunto de pruebas fijas de formarepetitiva. Al final de la ejecución de las pruebas, se registra el uso de la memoria actual y secomprueba si hay cambios significativos. Hay que tener presente que debe sugerirse la recogida debasura cuando se registra el uso real de la memoria, mediante la inserción de System.gc() en elmódulo donde desea realizar la recogida de basura o mediante el uso de una herramienta de perfilesque fuerce el suceso.

Prueba de simultaneidad

Algunos problemas de pérdida de memoria pueden producirse sólo cuando hay en ejecución variashebras de la aplicación. Desgraciadamente, los puntos de sincronización son muy susceptibles a laspérdidas de memoria, ya que añaden complicación a la lógica del programa. Una programación hechaa la ligera puede dar lugar a referencias mantenidas o no liberadas. La incidencia de las pérdidas de

memoria se suele facilitar o acelerar aumentando la simultaneidad en el sistema. La forma más

Page 42: Ajuste_rendimiento

memoria se suele facilitar o acelerar aumentando la simultaneidad en el sistema. La forma máscomún de aumentar la simultaneidad es aumentar el número de clientes del controlador de prueba.

A la hora de decidir las pruebas a utilizar para la detección de pérdidas de memoria, tenga en cuentalos siguientes puntos:

Una buena prueba trabaja sobre áreas de la aplicación en la que se crean objetos. En lamayoría de los casos, es necesario conocer la aplicación. Una descripción del escenariopuede sugerir la creación de espacios de datos, como añadir un registro nuevo, crear unasesión HTTP, realizar una transacción o buscar un registro.Revisar las áreas en que se utiliza la recogida de objetos. Por lo general, las pérdidas dememoria se componen de objetos dentro de la misma clase. Además, las clases de recogidacomo Vector y Hashtable (tabla de totales de control) son lugares comunes en los que lasreferencias a objetos se almacenan de forma implícita, mediante la invocación a los métodosde inserción correspondientes. Por ejemplo, el método get (obtener) de un objeto Hashtable noelimina su referencia al objeto recuperado.

También puede utilizar Tivoli Performance Viewer como ayuda para buscar pérdidas de memoria.

Para obtener los mejores resultados, repita los experimentos aumentando la duración, por ejemplo,solicitudes de 1.000, 2.000 y 4.000 páginas. El gráfico de Tivoli Performance Viewer de memoria no utilizadatiene una forma dentada. Cada punto bajo del gráfico corresponde a una recogida de basura. Habrá unapérdida de memoria si alguna de las siguientes condiciones aparece en el gráfico:

La cantidad de memoria utiliza justo tras cada recogida de basura aumenta de forma significativa.Cuando se da esta condición, el patrón dentado se parece más a una escalera.El patrón dentado tiene una forma irregular.La diferencia entre el número de objetos asignados y el número de objetos liberados aumenta con eltiempo.

Si el consumo del almacenamiento dinámico que indica una posible pérdida durante periodos en los que elservidor de aplicaciones está constantemente cerca del 100% de utilización de la CPU), pero desaparececuando la carga de trabajo es menor o durante periodos de inactividad, se trata de un caso de fragmentacióndel almacenamiento dinámico. La fragmentación del almacenamiento dinámico se puede producir cuando laJVM puede liberar objetos suficientes para satisfacer las peticiones de asignación de memoria durante losciclos de recogida de basura, pero la JVM no tiene tiempo para compactar las pequeñas áreas de memorialibres en el almacenamiento dinámico para formar áreas contiguas mayores.

Otra forma de fragmentación del almacenamiento dinámico se produce cuando se liberan objetos menores de512 bytes. Los objetos se liberan, pero el almacenamiento no se recupera, lo que provoca la fragmentaciónde la memoria hasta que se produce una compactación del almacenamiento dinámico.

La fragmentación del almacenamiento dinámico puede reducirse forzando la compactación. No obstante, hayuna penalización de rendimiento cuando se fuerza la compactación. Utilice el mandato -X de Java para ver lalista de opciones de memoria.

4. Ajuste la recogida de basura

El estudio de la recogida de basura permite conocer cómo está utilizando la memoria la aplicación. La recogida debasura es muy importante en Java. Al eliminar la carga de la gestión de memoria del escritor de aplicaciones, lasaplicaciones Java son más sólidas que las escritas en lenguajes que no proporcionan recogida de basuras. Estasolidez se aplica siempre que la aplicación no haga un uso abusivo de los objetos. La recogida de basuranormalmente consume del 5 al 20 por ciento del tiempo de ejecución total de una aplicación que funcioneadecuadamente. Si no se gestiona, la recogida de basura constituye uno de los mayores cuellos de botella de unaaplicación.

Si supervisa la recogida de basura mientras se ejecuta una carga de trabajo fija tendrá más información de si laaplicación está utilizando objetos. La recogida de basura puede detectar incluso la presencia de pérdidas dememoria.

Puede utilizar los valores de la JVM para configurar el tipo y el comportamiento de la recogida de basura. Cuando laJVM no puede asignar un objeto del almacenamiento dinámico actual debido a la falta de espacio contiguo, seinvoca el recopilador de basura para que reclame memoria de los objetos Java que ya no se utilizan. Cada proveedorde JVM suministra políticas de colector de basura y parámetros de ajuste exclusivos.

Puede utilizar el valor Recogida de basura verbosa en la consola administrativa para habilitar la supervisión de larecogida de basura. La salida de este valor incluye las estadísticas de la recogida de basura de clases. El formatodel informe generado no está estandarizado entre las diferentes JVM o niveles de release.

Para ajustar los valores de recogida de basura de JVM:

a. En la consola administrativa, pulse Servidores > Tipos de servidor > Servidores de aplicacionesWebSphere > nombre_servidor.

b. En la sección Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso >Máquina virtual Java

c. Especifique la opción –X que desea cambiar en el campo Argumentos de la JVM genéricos.d. Pulse Aplicar.

Page 43: Ajuste_rendimiento

e. Pulse Guardar para guardar los cambios en la configuración maestra.f. Pare y reinicie el servidor de aplicaciones.

En la lista siguiente se describen las opciones –X para los distintos recopiladores de basura de la JVM.

El recopilador de basura de la máquina virtual para Java de IBM.En la publicación IBM Developer Kit and Runtime Environment, Java2 Technology Edition, Version 5.0Diagnostics Guide se proporciona una guía completa para la implementación de IBM del colector de basura Java.Este documento está disponible en el sitio Web de developerWorks.

Utilice la opción -X de Java para ver la lista de opciones de memoria.

­Xgcpolicy

La máquina virtual para Java de IBM proporciona cuatro políticas para la recogida de basura. Cada políticaproporciona ventajas únicas.

optthruput es el valor predeterminado y ofrece un alto rendimiento con periodos de pausa derecogida basura más largos. Durante una recopilación de basura, todas las hebras de aplicación sedetienen para la marca, el barrido y la compactación, cuando ésta es necesaria. La políticaoptthruput es suficiente para la mayoría de las aplicaciones.optavgpause es la política que reduce el periodo de pausa de recogida de basura realizando lasfases de marca y barrido de la recogida de basura mientas se ejecuta una aplicación. Esta políticaprovoca un pequeño impacto en el rendimiento general.gencon, es la política que funciona con el recopilador de basura generacional. El esquemageneracional trata de alcanzar un alto rendimiento junto con periodos de pausa de recogida debasura reducidos. Para alcanzar este objetivo, el almacenamiento dinámico se divide entresegmentos nuevos y antiguos. Los objetos de larga duración se promocionan al espacio antiguomientras que los objetos de corta duración se recogen rápidamente en el colector de basura en elnuevo espacio. La política gencon proporciona ventajas significativas para muchas aplicaciones. Noobstante, no es adecuada para todas las aplicaciones y normalmente es más difícil de ajustar.subpool es una política que aumenta el rendimiento en sistemas de varios procesadores quehabitualmente utilizan más de 8 procesadores. Esta política sólo está disponible en procesadoresIBM System i System p y System z. La política subpool es parecida a la política optthruput exceptoen que el almacenamiento dinámico se divide en subagrupaciones que proporcionan unaescalabilidad mejorada para la asignación de objetos.

Valorpredeterminado

optthruput

Recomendado optthruput

Uso Si especifica Xgcpolicy:optthruput se establece la recogida debasura en optthruput

Si establece gcpolicy en optthruput se inhabilita la marca concurrente. Debe obtener los mejoresresultados en cuanto al rendimiento cuando utiliza la política optthruput, salvo que los tiempos derespuesta de aplicaciones sean erráticos, lo que es una indicación de que puede experimentar problemasde tiempos de pausa

Si establece gcpolicy en optavgpause se habilita la marca concurrente con sus valorespredeterminados. Este valor soluciona los tiempos de respuesta erráticos de las aplicaciones ocasionadospor la recogida de basura normal. No obstante, esta opción puede disminuir el rendimiento general.

­Xnoclassgc

De forma predeterminada, la JVM descarga una clase de la memoria cuando no quedan instancias activasde dicha clase. La sobrecarga de cargar y descargar la misma clase varias veces puede disminuir elrendimiento.

Evite problemas: Puede utilizar ­Xnoclassgc para inhabilitar la recogida de basura de clases. Noobstante, el impacto sobre el rendimiento de la recogida de basura de clases normalmente es mínimo, y sise desactiva la recogida de basura de clases en un sistema basado en Java EE (Java Platform, EnterpriseEdition), con su uso intenso de cargadores de clases de aplicaciones, es posible crear efectivamente unapérdida de memoria de datos de clase y causar que la JVM genere una excepción de falta de memoria.

Si utiliza esta opción, cuando vuelva a desplegar una aplicación, siempre deberá reiniciar el servidor deaplicaciones para borrar las clases y los datos estáticos de la versión anterior de la aplicación.

Valorpredeterminado

La recogida de basura de clases está habilitada.

RecomendadoNo inhabilite la recogida de basura de clases.

Uso Especifique Xnoclassgc para inhabilitar la recogida de basura

Page 44: Ajuste_rendimiento

Uso Especifique Xnoclassgc para inhabilitar la recogida de basurade clases.

5. Habilite la compartición de clases en una antememoria.

La opción de compartir clases de la implementación IBM de J2RE (Java 2 Runtime Environment) Versión 1.5.0permite compartir clases en una memoria caché. Al compartir clases en una antememoria se mejora el tiempo dearranque y se disminuye el uso de la memoria. Procesos como, por ejemplo, los servidores de aplicaciones, losagentes de nodos y los gestores de despliegue pueden utilizar la opción de compartir clases.

Evite problemas: La implementación IBM de J2RE Versión 1.5.0 actualmente no recibesoporte en:

Solaris HP­UX

Si utiliza esta opción, debe borrar la memoria caché cuando no se utiliza el proceso. Para borrar la antememoria,llame al programa de utilidadraíz_servidor_aplic/bin/clearClassCache.bat/sh o detenga el proceso y, acontinuación, reinícielo.

Si es necesario inhabilitar la opción para compartir clases para un proceso, especifique el argumento genérico de laJVM ­Xshareclasses:none para ese proceso:

a. En la consola administrativa, pulse Servidores > Tipos de servidor > Servidores de aplicacionesWebSphere > nombre_servidor.

b. En la sección Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso >Máquina virtual Java

c. Especifique ­Xshareclasses:none en el campo Argumentos de la JVM genéricos.d. Pulse Aceptar.e. Pulse Guardar para guardar los cambios en la configuración maestra.f. Pare y reinicie el servidor de aplicaciones.

Valorpredeterminado

La opción de compartir clases en una memoria caché está habilitada.

Recomendado Deje habilitada la opción de compartir clases en una antememoria.

Uso Si especifica ­Xshareclasses:none inhabilita la opción de compartirclases en una opción de memoria caché.

6. Habilite las referencias comprimidas en entornos de 64 bits.

Puede habilitar las referencias comprimidas en entornos de 64 bits, como AIX 64, Linux PPC 64, zLinux 64 yMicrosoft Windows AMD64, Linux AMD64.

Habilite referencias comprimidas en entornos de 64 bits como, por ejemplo, AIX 64, Linux PPC 64, zLinux 64,Microsoft Windows AMD64 y Linux AMD64. La opción de referencias comprimidas de la implementación IBM deJRE (Java SE Runtime Environment) de 64 bits Versión 6.0 le permite limitar todas las referencias de memoria altamaño de 32 bits. En general, las JVM de 64 bits utilizan más espacio de almacenamiento dinámico que las JVMde 32 bits porque utilizan referencias de memoria amplia de 64 bits para direccionar memoria. El almacenamientodinámico que es direccionable por la referencia de 64 bits es órdenes de magnitud mayor que el almacenamientodinámico de 32 bits, pero en el mundo real, un almacenamiento dinámico que requiere todos los 64 bits para eldireccionamiento normalmente no es necesario. Si se comprimen las referencias se reducirá el tamaño de lasdirecciones y hará más eficiente el uso del almacenamiento dinámico. Si se comprimen estas referencias tambiénse mejora la memoria caché del procesador y la utilización del bus, y de este modo se mejora el rendimiento.

Evite problemas:

La característica de referencias comprimidas no recibe soporte en:JVM de 64 bits de SolarisJVM de 64 bits de HP­UXJVM de 64 bits de iSeries Classic

Las siguientes opciones de línea de mandatos controlan la característica de referencias comprimidas:

­XcompressedrefsEsta opción de línea de mandatos habilita la característica de referencias comprimidas. Cuando la JVM se iniciacon esta opción de línea de mandatos utilizará referencias de memoria amplia de 32 bits completas paraocuparse del almacenamiento dinámico. Esta característica se puede utilizar hasta un determinado tamaño dealmacenamiento dinámico (unos 29 GB, en función de la plataforma) controlado por el parámetro ­Xmx.

­XnocompressedrefsEstas opciones de línea de mandatos inhabilitan la característica de referencias comprimidas. Cuando la JVM seinicia con esta opción de línea de mandatos utilizará referencias de memoria amplia de 64 bits completas paraocuparse del almacenamiento dinámico. Esta opción la puede utilizar el usuario para alterar temporalmente la

habilitación por omisión de la compresión de puntero, si es necesario.

Page 45: Ajuste_rendimiento

habilitación por omisión de la compresión de puntero, si es necesario.

7. Ajuste el proceso de actualización de configuración para la configuración de una célula grande.

En una configuración de células grande, es posible que tenga que determinar si es más importante el rendimientode la actualización de la configuración o la comprobación de coherencia. Cuando está activada la comprobación decoherencia de configuración, es posible que requiera una cantidad significativa de tiempo para guardar un cambio deconfiguración o desplegar varias aplicaciones. Los siguientes factores influyen la cantidad de tiempo necesaria:

Cuantos más servidores de aplicaciones o clústeres se hayan definido en la célula, más tiempo se tarda enguardar un cambio de configuración.Cuantas más aplicaciones se hayan desplegado en una célula, más tiempo se tarda en guardar un cambiode configuración.

Si el período de tiempo necesario para cambiar un cambio de configuración no es satisfactorio, puede añadir lapropiedad personalizada config_consistency_check a los valores de la JVM y establecer el valor de estapropiedad en false.

a. En la consola administrativa, pulse Servidores > Tipos de servidor > Servidores de aplicacionesWebSphere > nombre_servidor.

b. En la sección Infraestructura del servidor, pulse Java y gestión de procesos > Definición de procesos.c. En la sección Propiedades adicionales, pulse Máquina virtual Java > Propiedades personalizadas >

Nueva.d. Escriba config_consistency_check en el campo Nombre y false en el campo Valor.e. Pulse Aplicar.f. Pulse Guardar para guardar los cambios en la configuración maestra.g. Reinicie el servidor.

Si está utilizando el mandato wsadmin wsadmin -conntype none en la modalidad local, debe establecer la propiedadconfig_consistency_check en false antes de emitir este mandato.

Qué hacer a continuaciónSiga recopilando y analizando datos a medida que vaya ajustando cambios hasta que esté satisfecho con el rendimientode la JVM.

En esta información...

Tareas relacionadasAjuste de sistemas operativosHabilitación de los datos del perfilador deJVM (Java Virtual Machine)Ajuste del entorno de servicio deaplicaciones

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunejvm_v 61

Nombre de archiv o: tprf _tunejvm_v 61.html

Page 46: Ajuste_rendimiento

5.3.2. Ajuste de máquinas virtuales Java HotSpot (Solaris & HP­UX)La arquitectura de la JVM (Java Virtual Machine) HotSpot desarrollada por Sun e implementada por HP ha evolucionado deforma distinta al kit de desarrollo de software (SDK) de IBM. Su estructura interna, para una generación nueva o antigua yregiones permanentes, surge para principalmente dar soporte a la recogida de basura generacional, así como otrasmodalidades de recogida de basura que sean necesarias.

Antes de empezarDetermine el tipo de JVM en la que se ejecuta el servidor de aplicaciones.

Emita el mandato java –fullversion desde el directorio raíz_servidor_aplic/java/bin del servidor deaplicaciones. En respuesta a este mandato, el servidor de aplicaciones graba información sobre la JVM, incluida lainformación sobre el proveedor de JVM, en el archivo SystemOut.log. Si el servidor de aplicaciones se ejecuta enuna máquina virtual de IBM para Java, consulte el tema Ajuste de la máquina virtual para Java de IBM.

Verifique que las siguientes sentencias son verdaderas para el sistema:1. Está instalada en el sistema la versión más reciente de JVM soportada.2. Está instalada en el sistema la actualización del servicio más reciente soportada. Prácticamente, cada nuevo

nivel de servicio incluye mejoras de rendimiento de JVM.

Acerca de esta tarea

El ajuste de la JVM HotSpot de SUN es un proceso interactivo donde se desarrolla la configuración de JVM, se recopilandatos, principalmente de datos verbosegc y luego se analiza, y se aplican todas las revisiones de la configuración en elciclo siguiente. Realice uno o más de los pasos siguientes si necesita ajustar la JVM HotSpot de SUN.

Procedimiento

Proporcione suficiente memoria de almacenamiento dinámico de Java.

La memoria de almacenamiento dinámico de Java es un conjunto de direcciones contiguas reservadas. El tamañode la memoria de almacenamiento dinámico de Java es el tamaño máximo para el que se configura elalmacenamiento dinámico de Java. Estas direcciones no están disponibles para otras demandas de memoria delsistema o nativas, y las mantiene y gestiona sólo la JVM porque el almacenamiento dinámico de Java se utilizapara el almacenamiento de objetos Java mientras exista dicha JVM.

Cuando la JVM se inicializa, se asegura de que los recursos de almacenamiento dinámico de Java se obtengan deacuerdo con los valores de configuración de la JVM. Si no hay suficiente memoria disponible, la inicialización deJVM falla. Si se configura una memoria no adecuada en el almacenamiento dinámico de Java, con el tiempo elsistema fallará con un informe OutOfMemory, que normalmente va precedido de mucha actividad de recogida debasura durante la que no se produce casi ningún proceso Java.

Se debe realizar un estudio sobre las necesidades de memoria nativa de otros componentes del proceso para darcabida a las hebras en ejecución, el almacenamiento de datos para la entrada/salida y satisfacer requisitos como laalineación y el tamaño de página.

El almacenamiento dinámico de Java HotSpot de Sun consta de dos partes físicamente independientes que debetener en cuenta cuando se especifican tamaños máximos de almacenamiento dinámico de Java:

La región permanente, que es una combinación de regiones de generación viejas y jóvenes que a su vez sesubdividen en regiones ocupadas, espacios supervivientes y edén.La memoria de suministro para los componentes Java de este sistema.

Los parámetros ­XX:MaxPermSize= y ­Xmx (tamaño máximo de almacenamiento dinámico de Java),respectivamente, configuran el tamaño máximo de la región permanente, donde el código de clase y los datosrelacionados se presentan de forma lógica como parte de la región de generación antigua, pero se mantienenseparados físicamente, y el tamaño máximo del almacenamiento dinámico principal donde se almacenan losobjetos Java y sus datos en las regiones de generación antigua y nueva. La región permanente junto con elalmacenamiento dinámico principal forman el almacenamiento dinámico de Java total. Un error en la asignación encualquiera de estas regiones representa la incapacidad de dar cabida a todo el código de aplicación o todos losdatos de aplicación, siendo las dos condiciones extremas que pueden agotar el almacenamiento disponible ycausar un error OutOfMemory.

Consulte estos parámetros de ajuste:­XX:MaxPermSize (región permanente)­Xmx (tamaño máximo del almacenamiento dinámico de Java)

Inhabilite la recogida de basura explícita para elimina todos los ciclos de recogida de basura importantes que nosean necesarios e inoportunos que pueden haberse introducido en componentes de software del sistema.

Consulte el parámetro de ajuste -XX:+DisableExplicitGC.

Evite problemas: De forma predeterminada, la JVM descarga una clase de la memoria cuando no quedaninstancias activas de dicha clase. Puede utilizar ­Xnoclassgc para inhabilitar la recogida de basura de clases. No

Page 47: Ajuste_rendimiento

obstante, el impacto sobre el rendimiento de la recogida de basura de clases normalmente es mínimo y si sedesactiva la recogida de basura de clases en un sistema basado en Java EE (Java Platform, Enterprise Edition), consu uso masivo de cargadores de clases de aplicaciones, podría crear de forma efectiva una pérdida de memoria dedatos de clase, y causar que la JVM generara una excepción de falta de memoria.

Si utiliza el argumento ­Xnoclassgc, cuando tenga que volver a desplegar una aplicación, siempre debe reiniciarel servidor de aplicaciones para borrar las clases y los datos estáticos de la versión anterior de la aplicación.

Si utiliza el argumento ­Xnoclassgc, cuando tenga que volver a desplegar una aplicación, siempre debe reiniciarel servidor de aplicaciones para borrar las clases y los datos estáticos de la versión anterior de la aplicación.

Ajuste los tamaños de región para optimizar la acción de recogida de basura.

Cualquier decisión para intentar ajustar la recogida de basura se debe basar en el comportamiento de losrecopiladores de basura. Debe identificar la modalidad de recogida de basura correcta que mejor convenga a lasnecesidades operacionales de la aplicación. También debe verificar que satisface los requisitos de rendimiento yque se reciclen de forma eficaz suficientes recursos de memoria para satisfacer regularmente las necesidades de laaplicación. Todos los cambios que realice en el parámetro de recogida de basura deben producir suficientesresultados distintos y mostrar las ventajas obtenidas del aprovechamiento de distintas regiones del almacenamientodinámico de Java HotSpot.

Una elección imprudente normalmente prolonga el proceso ya que es necesario que el proceso de ajuste iterativo serepita sustancialmente. Las otras secciones presentan las dos opciones principales, rendimiento paralelo o bajapausa simultánea, y las opciones pertinentes para un ajuste adicional. Las dos modalidades ofrecen el potencial dealto rendimiento, pero el factor de rendimiento clave es que el comportamiento que se optimiza es distinto para cadamodalidad.

La actividad de ajuste dominante se ocupa del control de la utilización de recursos para la actividad de asignaciónde servicios de la aplicación, así como organizar una recogida de basura eficiente para reciclar el almacenamiento,según sea necesario. Inevitablemente estos debates del ajuste dependen de la modalidad de recogida de basuraempleada. Se tratan dos tipos de recogida de basura:

El recopilador de rendimiento que lleva a cabo la recogida de copia de barrido paralelo en la generaciónnueva. Este tipo de recogida de basura es el tipo por omisión en máquinas de clase de servidor de variosprocesadores.Un recopilador de baja pausa simultánea.

El objetivo de ajustar estos recopiladores es ofrecer el comportamiento que más convenga a los patrones deasignación y duraciones de objetos del sistema de aplicaciones, y que maximice la eficacia de sus acciones derecopilación.

Opción 1: Utilizar el recopilador de barrido de rendimiento/paralelo por omisión con el ajuste incorporadohabilitado.

A partir de la versión 5, la JVM HotSpot de Sun proporciona alguna detección del sistema operativo en el quese ejecuta el servidor, y la JVM intenta configurar una modalidad de recogida de basura generacionaladecuada, es decir paralela o en serie, según haya o no varios procesadores y el tamaño de la memoriafísica. Se supone que todo el hardware, en el que el producto se ejecuta en modalidad de preproducción yproducción, satisface los requisitos de modo que se considere una máquina de clase de servidor. Sinembargo, es posible que algún hardware de desarrollo no satisfaga estos criterios.

El comportamiento del recopilador de basura de rendimiento, tanto si se ajusta automáticamente como si no,es el mismo y muestra algunas pausas significativas, que son proporcionales al tamaño del almacenamientodinámico utilizado, en la ejecución del sistema de aplicaciones Java puesto que trata de maximizar la ventajade la recogida de basura generacional. Sin embargo, estos algoritmos automáticos no pueden determinar sila carga de trabajo es apropiada para las acciones, o si el sistema requiere o le conviene más una estrategiade recogida de basura distinta.

Consulte estos parámetros de ajuste:­XX:+UseParallelGC­XX:+UseAdaptiveSizePolicy­XX:+AggressiveHeap

Opción 2: Utilizar el recopilador de barrido de rendimiento/paralelo por omisión, con el ajuste manual

Las desventajas de utilizar el algoritmo incorporado que se establece utilizando el parámetro ­XX:+UseAdaptiveSizePolicy, incluida la limitación que otros parámetros, como el parámetro ­XX:SurvivorRatio,puede configurarse para hacerlo conjuntamente con el algoritmo incorporado. Cuando se utiliza el algoritmoincorporado, se deja de tener una parte del control sobre la determinación de las asignaciones de recursosque se utilizan durante la ejecución. Si el resultado de utilizar el algoritmo incorporado no es satisfactorio, esmás fácil configurar manualmente los recursos de JVM que probar y ajustar las acciones del algoritmo. Laconfiguración manual de recursos de JVM implica el uso de la mitad de las opciones que se utilizan paraajustar las acciones del algoritmo.

Consulte estos parámetros de ajuste:

Page 48: Ajuste_rendimiento

­XX:NewRatio=2 Es el valor predeterminado para un servidor que está configurado para la modalidad deVM­XX:MaxNewSize= y ­XX:NewSize=­XX:SurvivorRatio=­XX:+PrintTenuringDistribution­XX:TargetSurvivorRatio=

Opción 3: Utilizar el recopilador de marcado­barrido de baja pausa simultánea

Este recopilador es un punto de partida radical de la evolución de la recogida de basura que ha respaldado laarquitectura Hotspot, permitiendo que se solape el proceso de hebra de aplicación con una hebra de recogidade basura de fondo dedicada de prioridad baja. Si los datos de aplicación son incompatibles con elcomportamiento del recopilador de rendimiento por omisión, el recopilador de marcador barrido simultáneo(CMS) puede ser una estrategia viable, en concreto para los sistemas de aplicación que no toleran pausasinvasivas. Este recopilador es especialmente útil con los almacenamientos dinámicos grandes que seutilizan con la JVM de 64 bits, o las aplicaciones que tienen un conjunto grande de datos de larga duración,a los que también se hace referencia como generación de larga permanencia, y que mantienecomparativamente una buena utilización de la memoria caché, conservando en gran parte páginas degeneración joven, incluso cuando la hebra de fondo deba buscar por todas las páginas de todo elalmacenamiento dinámico.

Para emplear el recopilador de marcado y barrido simultáneo como el agente de mantenimiento en principio,añada esta opción en lugar de cualquier otra modalidad de recogida de basura, a la configuración de JVM.

Consulte estos parámetros de ajuste:

­XX:+UseConcMarkSweepGC­XX:CMSInitiatingOccupancyFraction=75­XX:SurvivorRatio=6­XX:MaxTenuringThreshold=8­XX:NewSize=128m

Entre las dificultades para realizar ajustes con CMS es que los peores tiempos de recogida de basura, quees cuando el ciclo CMS termina anormalmente, puede ser de varios segundos, que es especialmentecostoso para un sistema que utiliza CMS para evitar largas pausas. Por consiguiente, los acuerdos de nivelde servicio pueden imponer el uso de CMS, porque los tiempos de pausa promedio o medianos son muybajos y el ajuste debe realizarse de forma prudente para asegurarse de que los ciclos de CMS no terminenanormalmente. CMS sólo da resultado cuando su desencadenante anticipatorio asegura que el ciclo de CMSsiempre empieza los bastante temprano para asegurar que haya suficientes recursos libres disponibles antesde que se soliciten. Si el recopilador de CMS no puede terminar antes de que la generación veterana sellene, la recogida se completa haciendo una pausa en las hebras de aplicación, que se conoce comorecogida completa. Las colecciones completas son una señal de que es necesario realizar un ajusteadicional en el recopilador de CMS para que sea más apropiado para la aplicación.

Por último, a diferencia de otras modalidades de recogida de basura con una fase de compactación, el usode CMS teóricamente aumenta el riesgo de que se produzca fragmentación con el HotSpot. Sin embargo, enla práctica raras veces supone un problema mientras la recogida recupera una proporción de laalmacenamiento dinámico en buen estado. En los casos en que la CMS falla o termina anormalmente unarecogida, se desencadena una recogida de basura compacta alternativa. Inevitablemente cualquier otro tipode recogida de basura provoca una pausa invasiva significante en comparación con una recogida CMSnormal.

Evite problemas: Al igual que con el recopilador de rendimiento, existen bastantes más opcionesdisponibles para controlar de forma explícita CMS. Sin embargo, las mencionadas representan las opcionesprincipales que es probable piense en utilizar cuando ajuste la JVM de HotSpot.

Qué hacer a continuación

Recopile y analice los datos para evaluar la configuración, normalmente utilizando verbosegc. Siga recopilando yanalizando datos a medida que vaya ajustando cambios hasta que esté satisfecho con el rendimiento de la JVM.

En esta información...

SubtemasParámetros de ajuste de la JVM de SunHotSpot (Solaris y HP­UX)

Tareas relacionadas

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperar

Page 49: Ajuste_rendimiento

Ajuste del entorno de servicio deaplicaciones

contenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _hotspot_jvm

Nombre de archiv o: tprf _hotspot_jvm.html

Page 50: Ajuste_rendimiento

5.5. Ajuste de los servicios del canal de transporteLos servicios del canal de transporte gestionan las conexiones de cliente y el proceso de E/S para peticiones HTTP yJMS. Estos servicios de E/S se basan en las características de E/S de no bloqueo (NIO) que están disponibles en Java.Estos servicios proporcionan una infraestructura, con grandes posibilidades de escalado, para el proceso de peticiones deWebSphere Application Server. La arquitectura basada en Java NIO tiene limitaciones en cuanto al rendimiento,escalabilidad y facilidad de uso del usuario final. Por lo tanto, se implementa la integración de E/S asíncrona verdadera.Esta implementación proporciona ventajas significativas en la facilidad de uso, reduce la complejidad del proceso de E/S yreduce esa cantidad de ajuste del rendimiento que tiene que realizar.

Acerca de esta tareaLas características clave de los nuevos servicios del canal de transporte son:

Escalado, que permite al producto manejar muchas solicitudes simultáneas.Proceso de solicitudes asíncronas, que proporciona un tipo de correlación de muchos a uno de las solicitudes decliente con las hebras del contenedor Web.Posibilidad de compartir y segregar recursos, que permite compartir agrupaciones de hebras entre el contenedorWeb y un servicio de mensajería.Mayor facilidad de uso eIncorporación de funciones de ajuste y configuración autónomas.

Si cambian los valores predeterminados de uno o más de los canales de transporte asociados a una cadena de transportese puede mejorar el rendimiento de dicha cadena.

Figura 1. Servicio del canal de transporte

Procedimiento

Ajuste de los valores del canal de transporte TCP En la consola de administración, pulse Servidores > Tiposde servidor > WebSphere Application Servers > nombre_servidor > Puertos. A continuación, pulse Vertransportes asociados para el puerto correspondiente.

1. Seleccione la cadena de transporte cuyas propiedades va a modificar.

2. Pulse el canal de transporte TCP definido para dicha cadena.

3. Disminuya el valor especificado para la propiedad Máximo de conexiones abiertas. Este parámetro controlael número máximo de conexiones disponibles que un servidor utilizará. Si deja este parámetro en el valorpredeterminado, 20000, que es el número máximo de conexiones permitidas, puede provocar que los sitiosWeb se paralicen en situaciones de anomalía, porque el producto continúa aceptando conexiones, y de estemodo aumenta el registro de reserva de conexiones y el trabajo asociado. El valor predeterminado debecambiarse por un número considerablemente más bajo, como 500, y después debe realizarse ajustes ypruebas adicionales para determinar el valor óptimo que debe especificar para un despliegue de aplicación oun sitio Web específico.

4. Si se están cerrando conexiones sin se que se devuelvan datos al cliente, cambie el valor especificado parael parámetro de tiempo de espera excedido de inactividad. Este parámetro controla el número máximo de

Page 51: Ajuste_rendimiento

conexiones disponibles para uso de un servidor. Cuando se recibe una conexión nueva, el canal detransporte TCP espera a que lleguen los datos suficientes para asignar la conexión a los canales específicosdel protocolo por encima del canal de transporte TCP. Si durante el período de tiempo especificado para elparámetro de tiempo de espera excedido de inactividad no se reciben los datos suficientes, el canal detransporte TCP cierra la conexión.

El valor predeterminado para este parámetro es de 60 segundos, que es un valor adecuado para la mayorparte de las aplicaciones. Debe aumentar el valor especificado para este parámetro si la carga de trabajorequiere muchas conexiones y no se puede dar servicio a todas ellas en 60 segundos.

5. Asigne una agrupación de hebras a un puerto HTTP específico. Cada canal de transporte TCP se asigna auna agrupación de hebras determinada. Las agrupaciones de hebras se pueden compartir entre uno o varioscanales de transporte TCP al igual que con otros componentes. En los valores predeterminados para uncanal de transporte TCP todo el tráfico basado en HTTP se asigna a la agrupación de hebrasWebContainer y el tráfico restante se asigna a la agrupación de hebras De manera predeterminada.Utilice el menú desplegable Agrupación de hebras para asignar una agrupación de hebras determinada acada canal de transporte TCP. En los valores predeterminados de este parámetro todo el tráfico basado enHTTP se asigna a la agrupación de hebras WebContainer y el tráfico restante se asigna a la agrupación dehebras De manera predeterminada. La información de colección de agrupaciones de hebras describecómo crear agrupaciones de hebras adicionales.

6. Ajuste el tamaño de las agrupaciones de hebras. De manera predeterminada, una agrupación de hebraspuede tener un mínimo de 10 hebras y un máximo de 50 hebras. Para ajustar estos valores, pulseAgrupaciones de hebras > nombre_agrupación_hebras y ajuste los valores especificados para losparámetros de Tamaño mínimo y Tamaño máximo para esa agrupación de hebras.

Las aplicaciones típicas generalmente no necesitan más de 10 hebras por procesador. Una excepción es sihay alguna condición ajena al servidor, por ejemplo, si hay una solicitud de programa de fondo muy lenta quehace que la hebra del servidor deba esperar a que se complete la solicitud del programa de fondo. En talcaso, el uso de CPU suele ser bajo y aumentar la carga de trabajo no aumenta el rendimiento de CPU. Losvuelcos de hebras muestran prácticamente todas las hebras de una llamada al recurso de programa defondo. Si se da esta condición y el programa de fondo está ajustado correctamente, intente aumentar elnúmero mínimo de hebras de la agrupación hasta que observe mejoras de rendimiento y los vuelcos dehebras muestren hebras en otras áreas del tiempo de ejecución además de la llamada del programa defondo.

El valor del parámetro Crecimiento según lo necesario no se debe modificar a menos que el programa defondo pueda colgarse durante períodos de tiempo prolongados. Es posible que esta condición indique quetodas las hebras del tiempo de ejecución se han bloqueado esperando el programa de fondo en lugar depasar a procesar otro trabajo en el que no está implicado el programa de fondo que se ha colgado.

Ajuste de los valores de canal de transporte HTTP En la consola de administración, pulse Servidores > Tiposde servidor > WebSphere Application Servers > nombre_servidor > Puertos. A continuación, pulse Vertransportes asociados para el puerto correspondiente.

1. Seleccione la cadena de transporte cuyas propiedades va a modificar.

2. Pulse el canal de transporte HTTP definido para dicha cadena.

3. Ajuste de mantener activa (keep­alive) HTTP.

El valor de Utilizar conexiones persistentes (mantener activas) controla si se dejan abiertas o no lasconexiones entre solicitudes. Si se dejan abiertas las conexiones se puede ahorrar los costes de configurary eliminar los sockets si la carga de trabajo tiene clientes que envían muchas solicitudes. El valorpredeterminado es true y es habitualmente el valor óptimo.

Si los clientes sólo envían solicitudes individuales durante períodos prolongados de tiempo, es probable quelo mejor sea inhabilitar esta opción y cerrar las conexiones directamente en lugar de que sea el canal detransporte HTTP el que configure el valor de tiempo de espera excedido para cerrar la conexiónposteriormente.

4. Cambie el valor especificado para el parámetro de número máximo de peticiones persistentes de modo quese aumente el número de peticiones que pueden fluir a través de una conexión antes de cerrarla.

Cuando se ha habilitado la opción Utilizar conexiones persistentes, el parámetro Máximo de peticionespersistentes controla el número de peticiones que pueden fluir a través de una conexión antes de que secierre. El valor por omisión es 100. Este valor debe establecerse en un valor tal que la mayor parte de losclientes, si no todos, tengan siempre una conexión abierta cuando realizan varias peticiones durante lamisma sesión. Si este parámetro se establece en un valor correcto se evita la configuración y supresióninnecesaria de sockets.

Para los escenarios de prueba en los que el cliente no cerrará nunca un socket o en el que los socketssiempre son servidores proxy o Web ante el servidor de aplicaciones, un valor de ­1 inhabilitará el procesoque limita el número de peticiones a través de una sola conexión. El valor de tiempo de espera persistentehará que se cierren, de todos modos, los sockets desocupados e impedirá que se agoten los sockets

Page 52: Ajuste_rendimiento

abiertos en el servidor.

5. Cambie el valor especificado para el parámetro Tiempo de espera persistente para aumentar el período detiempo que se mantiene abierta una conexión antes de cerrarla debido a su inactividad. El parámetro Tiempode espera persistente controla el período de tiempo que se mantiene abierta una conexión antes de cerrarladebido a que dicha no conexión no presenta ninguna actividad. El valor por omisión es de 30 segundos. Esteparámetro debe establecerse en un valor que conserve abiertas el número de conexiones suficientes, demodo que la mayor parte de los clientes puedan tener disponible una conexión cuando necesiten realizar unapetición.

6. Si los clientes tienen problemas a la hora de completar una petición debido a que tardan más de 60segundos en enviar los datos, cambie el valor especificado para el parámetro Tiempo de espera de lectura.Algunos clientes efectúan una pausa de más de 60 segundos mientras envían los datos como parte de unapetición. Para garantizar que pueden completar sus peticiones, cambie el valor especificado para esteparámetro a un período de tiempo en segundos que sea suficiente para que los clientes completen latransferencia de datos. Cuando cambie este valor, compruebe que continúa protegiendo el servidor declientes que envían datos incompletos y, por lo tanto, utilizan recursos (sockets) durante un período detiempo excesivo.

7. Si algunos de los clientes requieren más de 60 segundos en recibir los datos que se están grabando paraellos, cambie el valor especificado para el parámetro Tiempo de espera de grabación. Algunos clientes sonlentos y requieren más de 60 segundos para recibir los datos que se les envía. Para garantizar que puedenobtener todos los datos, cambie el valor especificado para este parámetro en un período de tiempo ensegundos que sea suficiente para poder recibir todos los datos. Cuando cambie este valor, compruebe quecontinúa protegiendo el servidor de clientes con malas intenciones.

Ajuste los valores del canal de transporte del contenedor Web. En la consola de administración, pulse Servidores> Tipos de servidor > WebSphere Application Servers > nombre_servidor > Puertos. A continuación,pulse Ver transportes asociados para el puerto correspondiente.

1. Seleccione la cadena de transporte cuyas propiedades es necesario modificar.

2. Pulse el canal de transporte del contenedor Web definido para dicha cadena.

3. Si para manejar las respuestas al cliente se necesitan varias grabaciones, cambie el valor especificado parael parámetro Tamaño del almacenamiento intermedio de grabación en un valor que sea más adecuado paralos clientes. El parámetro Tamaño del almacenamiento intermedio de grabación controla la cantidad máximade datos por hebra que el contenedor Web guarda en el almacenamiento intermedio antes de enviar lapetición para su proceso. El valor por omisión es de 32768 bytes, que es un valor suficiente para la mayorparte de las aplicaciones. Si el tamaño de una respuesta es mayor que el tamaño del almacenamientointermedio de grabación, la respuesta se trunca y se vuelve a grabar en varias grabaciones TCP.

Si debe cambiar el valor especificado para este parámetro, asegúrese de que el nuevo valor permita que lamayor parte de las peticiones se graben en un solo proceso de grabación. Para determinar un valor adecuadopara este parámetro, observe el tamaño de las páginas que se devuelven y añada algunos bytes adicionalespara tener en cuenta las cabeceras HTTP.

Ajuste los valores para el almacenamiento intermedio limitado.

Aunque los parámetros de almacenamiento intermedio limitado por omisión son óptimos para la mayoría de losentornos, es posible que para mejorar el rendimiento sea necesario cambiar los valores predeterminados endeterminadas situaciones y para algunos sistemas operativos. La modificación de los parámetros dealmacenamiento intermedio limitado puede reducir el rendimiento. Por lo tanto, asegúrese de ajustar las otras áreasrelacionadas, como el contenedor Web y las agrupaciones de hebras de ORB antes de decidir cambiar losparámetros de almacenamiento intermedio limitado.

Para cambiar los parámetros del almacenamiento intermedio limitado:

1. En la consola administrativa, pulse Servidores > Tipos de servidor > Servidores de aplicacionesWebSphere > nombre_servidor.

2. En la sección infraestructura del servidor, pulse Java y gestión de procesos > Definición de proceso >Máquina Virtual Java.

3. Especifique uno de los siguientes parámetros en el campo Argumentos de la JVM genéricos.

4. Pulse Aplicar o Aceptar.

5. Entre una de las siguientes propiedades personalizadas en el campo Nombre y un valor adecuado en elcampo Valor y, a continuación, pulse Aplicar para guardar la propiedad personalizada y su valor.

com.ibm.ws.util.BoundedBuffer.spins_take=valor

Especifica el número de veces que una hebra de contenedor Web puede tratar de recuperar unapetición del almacenamiento intermedio antes de suspenderla y ponerla en la cola. Este parámetropermite compensar el coste de realizar intentos de recuperación posiblemente no satisfactorios, con

Page 53: Ajuste_rendimiento

el coste de suspender una hebra y volver a activarla como respuesta a una operación put.

Valor poromisión:

4

Valorrecomendado:

Están permitidos todos los valores enteros no negativos. En lapráctica, los mejores resultados se han conseguido con un enterocomprendido entre 2 y 8.

Uso: com.ibm.ws.util.BoundedBuffer.spins_take=6. Se realizan seisintentos antes de suspender la hebra.

com.ibm.ws.util.BoundedBuffer.yield_take=true o false

Especifica que una hebra desvíe la CPU hacia otras hebras una vez que se ha alcanzado un númeroestablecido de intentos de obtener una petición del almacenamiento intermedio. En general, espreferible un número de intentos bajo.

Valor poromisión:

false

Valorrecomendado:

El efecto del desvío es específico de la implementación paraplataformas individuales.

Uso: com.ibm.ws.util.BoundedBuffer.spins_take=valor booleano

com.ibm.ws.util.BoundedBuffer.spins_put=valor

Especifica el número de intentos que realiza una hebra InboundReader para colocar una petición en elalmacenamiento intermedio antes de suspenderla y ponerla en la cola. Este valor permite compensarentre el coste que suponen los intentos repetidos, posiblemente no satisfactorios, de poner unapetición en el almacenamiento intermedio y el conste de suspender una hebra y volver a activarlacomo respuesta a una operación de obtención.

Valor poromisión:

4

Valorrecomendado:

Están permitidos todos los valores enteros no negativos. En lapráctica, los mejores resultados se han conseguido con un enterocomprendido entre 2 y 8.

Uso: com.ibm.ws.util.BoundedBuffer.spins_put=6. Se realizan seisintentos antes de suspender la hebra.

com.ibm.ws.util.BoundedBuffer.yield_put=true o false

Especifica que una hebra desvíe la CPU hacia otras hebras una vez que se ha alcanzado un númeroestablecido de intentos de colocar una petición en el almacenamiento intermedio. En general, espreferible un número de intentos bajo.

Valor poromisión:

false

Valorrecomendado:

El efecto del desvío es específico de la implementación paraplataformas individuales.

Uso: com.ibm.ws.util.BoundedBuffer.yield_put=valor booleano

com.ibm.ws.util.BoundedBuffer.wait=número de milisegundos

Especifica el periodo máximo de tiempo, en milisegundos, que una petición puede retrasarseinnecesariamente si el almacenamiento intermedio está completamente lleno o si está vacío.

Valor poromisión:

10000 milisegundos

Valorrecomendado:

El valor de 10000 milisegundos normalmente funciona bien. Encontadas ocasiones, cuando el almacenamiento intermedio pasa aestar lleno o vacío, un valor más pequeño garantiza un manejocorrecto de las peticiones, aunque al utilizar un valor más pequeñoen general se produce un impacto en el rendimiento.

Uso: com.ibm.ws.util.BoundedBuffer.wait=8000. Una petición se puederetardar innecesariamente hasta 8000 milisegundos.

Pulse Aplicar y, a continuación, pulse Guardar para guardar estos cambios.

Page 54: Ajuste_rendimiento

En esta información...

Tareas relacionadasAjuste del entorno de servicio deaplicaciones

Referencia relacionadaColección de agrupación de hebras

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunechain

Nombre de archiv o: tprf _tunechain.html

Page 55: Ajuste_rendimiento

5.6. Comprobación de la configuración y los valores de hardwareCon una configuración de hardware óptima las aplicaciones pueden beneficiarse por completo del ajuste de rendimiento. Lavelocidad del hardware tiene un impacto en todas las aplicaciones y resulta crítica para el rendimiento general.

Acerca de esta tarea

Los siguientes parámetros incluyen las consideraciones para seleccionar y configurar el hardware en el que se ejecutanlos servidores de aplicaciones.

Procedimiento

Velocidad de disco optimizada

Descripción: La configuración y la velocidad del disco pueden afectar negativamente al rendimiento de losservidores de aplicaciones que ejecutan aplicaciones que dependen mucho del soporte de la base de datos yutilizan ampliamente la mensajería o procesan el flujo de trabajo. Los subsistemas de entrada y salida dedisco optimizados para el rendimiento, por ejemplo, la matriz RAID (Redundant Array of Independent Disks),las unidades de alta velocidad y las antememorias dedicadas, son componentes fundamentales para obtenerun rendimiento óptimo del servidor de aplicaciones en estos entornos.

Los servidores de aplicaciones que tienen menos requisitos de disco pueden beneficiarse de unaconfiguración de unidades de disco duplicadas que mejora la fiabilidad y presenta un rendimiento óptimo.

Recomendación: Reparta el proceso del disco en el máximo número de discos posible para evitar losproblemas de contención que se producen normalmente con sistemas de 1 o 2 discos. Si coloca las tablasde base de datos en discos que están separados de los discos utilizados para los archivos de anotacionescronológicas puede disminuir la contención del disco y aumentar la productividad.

Aumente la velocidad y la antememoria del procesadorDescripción: En ausencia de otros cuellos de botella, aumentar la velocidad del procesador ayuda en elrendimiento y los tiempos de respuesta. Un procesador con una antememoria mayor que L2 o L3 puedeconseguir una productividad mayor, aún cuando la velocidad del procesador sea igual que la de una CPU conuna antememoria L2 o L3 menor.

Aumente la memoria del sistema

Descripción: Aumente la memoria para evitar que el sistema pagine memoria en el disco y así mejorará elrendimiento. Cada procesador debe disponer de 256 MB de memoria como mínimo y cada servidor deaplicaciones 512 MB. Ajuste la memoria disponible durante la paginación del sistema y baje la utilización delprocesador debido a la paginación. La velocidad de acceso a la memoria puede depender del número y de laubicación de los módulos de memoria. Consulte el manual de hardware para asegurarse de que laconfiguración sea óptima.Recomendación: Utilice 256 MB de memoria para cada procesador y 512 MB por servidor de aplicaciones.Es posible que algunas aplicaciones requieran más memoria.

Ejecute las tarjetas de red y los conmutadores de red en dúplex completo.Descripción: Ejecute las tarjetas de red y los conmutadores de red en dúplex completo y utilice la velocidadmayor soportada. El dúplex completo es mucho más rápida que el dúplex medio. Verifique que la velocidadde red de los adaptadores, los cables, los conmutadores y otros dispositivos pueden satisfacer laproductividad necesaria. Es posible que algunos sitios Web requieran enlaces de múltiples gigabits.Recomendación: Asegúrese de que se utiliza la velocidad máxima en redes Ethernet 10/100/1000.

En esta información...

Información relacionadaAjuste de sistemas operativos

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Page 56: Ajuste_rendimiento

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunehdwcap

Nombre de archiv o: tprf _tunehdwcap.html

Page 57: Ajuste_rendimiento

5.7. Ajuste de sistemas operativosUtilice esta página para determinar el sistema operativo y configurar las especificaciones de ajuste.

Acerca de esta tareaLos siguientes parámetros de ajuste son específicos para cada sistema operativo. Debido a que estos sistemas operativosno son productos WebSphere Application Server, tenga en cuenta que los productos pueden cambiar y los resultadospueden ser diferentes.

Nota: Consulte la documentación del sistema operativo para determinar cómo convertir en permanentes los parámetros deajuste y si es necesario un reinicio.

Procedimiento1. Determine su sistema operativo.2. Seleccione su sistema operativo en la sección de enlaces relacionados.3. Configure los valores para optimizar el rendimiento de Websphere Application Server.

En esta información...

SubtemasAjuste de sistemas WindowsAjuste de sistemas LinuxAjuste de sistemas AIXAjuste de sistemas SolarisAjuste de sistemas HP­UX

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tuneopsy s

Nombre de archiv o: tprf _tuneopsy s.html

Page 58: Ajuste_rendimiento

5.7.1. Ajuste de sistemas WindowsEn este tema se describe cómo ajustar los sistemas operativos Windows 2000, Windows XP y Windows 2003 paraoptimizar el rendimiento de WebSphere Application Server. Debido a que los sistemas operativos Windows no sonproductos WebSphere Application Server, tenga en cuenta que los productos pueden cambiar y los resultados pueden serdiferentes.

Acerca de esta tareaCuando tenga algún problema de rendimiento, compruebe los valores del sistema operativo para determinar si son loscorrectos para su aplicación.

Procedimiento

Configure los siguientes valores o variables en función de las necesidades de ajuste específicas:

TcpTimedWaitDelayDescripción: Determina el tiempo que debe transcurrir antes de que el TCP/IP pueda liberar una conexióncerrada y reutilizar sus recursos. Este intervalo entre cierre y liberación se conoce como el estadoTIME_WAIT o el doble del tiempo de vida máximo del segmento (2MSL). Durante este tiempo, volver a abrirla conexión con el cliente y servidor cuesta menos que establecer una conexión nueva. Si se reduce el valorde esta entrada, TCP/IP puede liberar las conexiones cerradas más rápidamente y proporcionar másrecursos para las conexiones nuevas. Ajuste este parámetro si la aplicación en ejecución necesita que seliberen rápidamente o se creen conexiones nuevas o necesita un ajuste porque el rendimiento es bajo debidoa que hay muchas conexiones en estado TIME_WAIT.Cómo ver o establecer:

1. Utilice el mandato regedit para acceder a la subclave de registroHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters y cree un valorREG_DWORD nuevo denominado TcpTimedWaitDelay.

2. Establezca el valor en 30 (decimal) que en hexadecimal es 0x0000001e. Este valor establece eltiempo de espera en 30 segundos.

3. Detenga y reinicie el sistema.Valor por omisión: 0xF0, que establece el tiempo de espera en 240 segundos (4 minutos).Valor recomendado: Un valor mínimo de 0x1E, que establece el tiempo de espera en 30 segundos.

MaxUserPortDescripción: Determina el número de puerto TCP/IP más elevado que TCP/IP puede asignar cuando unaaplicación solicita un puerto de usuario disponible del sistema.Cómo ver o establecer:

1. Utilice el mandato regedit para acceder a la subclave de registroHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters y cree un valorREG_DWORD nuevo denominado MaxUserPort.

2. Establezca este valor al menos en 32768 (decimal).3. Detenga y reinicie el sistema.

Valor por omisión: NingunoValor recomendado: Al menos 32768 (decimal).

Registro de reserva de conexiones MaxConnectDescripción: Si se reciben muchos intentos de conexión simultáneos, aumente el número de conexionespendientes por omisión al que da soporte el sistema operativo.Cómo ver o establecer:

1. Utilice el mandato regedit para acceder a la subclave de registroHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters.

2. Cree, si es necesario, y establezca los valores siguientes:

"EnableDynamicBacklog"=dword:00000001

"MinimumDynamicBacklog"=dword:00000020

"MaximumDynamicBacklog"=dword:00001000

"DynamicBacklogGrowthDelta"=dword:00000010

3. Estos valores requieren un mínimo de 20 y un máximo de 1000 conexiones disponibles. El número deconexiones disponibles se aumenta en 10 cada vez que hay menos conexiones que el númeromínimo de conexiones disponibles.

4. Detenga y reinicie el sistema.

Reconocimientos de TPC/IP

TCP/IP pueden ser el origen de importantes retardos de método remoto. Puede aumentar el rendimiento deTCP mediante el reconocimiento inmediato de los segmentos TCP de entrada, en todas las situaciones.

Page 59: Ajuste_rendimiento

Efectúe los pasos siguientes para reconocer de forma inmediata los segmentos TCP de entrada en unservidor que se ejecuta en un sistema operativo Microsoft Windows 2000:

1. Inicie el editor del registro (regedit.exe).2. Localice y seleccione la siguiente subclave de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

3. En el menú Edición, pulse Añadir valor y cree el siguiente valor de registro:

Valor: TcpDelAckTicks Tipo de datos: REG_DWORD Datos del valor: 0 Salta del Editor del Registro.

4. Reinicie el sistema operativo Windows.

Del mismo modo, para reconocer de forma inmediata los segmentos TCP de entrada en un servidor que seejecuta en un sistema operativo Microsoft Windows XP o Windows Server 2003:

1. Inicie el editor del registro (regedit.exe).2. Localice y seleccione la siguiente subclave de registro:

Windows XP

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

Windows Server 2003

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Interface_GUID\

3. En el menú Editar, pulse Nuevo > Valor DWORD.4. Asigne al valor nuevo el nombre TcpAckFrequency y el valor 1.5. Cierre el Editor del Registro.6. Reinicie el sistema operativo Windows.

Soporte de páginas grandesDescripción: Utilizar páginas de gran tamaño puede disminuir la actividad general de CPU que significagestionar un almacenamiento dinámico de la JVM de gran tamaño.Cómo ver o establecer: De manera predeterminada, el sistema operativo Windows proporciona soporte depáginas de gran tamaño. Utilice la opción ­Xlp JVM para utilizar este soporte.

ResultadosEste procedimiento de ajuste mejora el rendimiento de WebSphere Application Server en los sistemas operativos Windows2000, Windows XP yWindows 2003.

Qué hacer a continuaciónDespués de ajustar el rendimiento del sistema operativo, consulte otros temas de ajuste para obtener diferentessugerencias sobre ajuste.

En esta información...

Tareas relacionadasAjuste de sistemas LinuxAjuste de sistemas AIXAjuste de sistemas SolarisAjuste de sistemas HP­UX

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Page 60: Ajuste_rendimiento

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunewindows

Nombre de archiv o: tprf _tunewindows.html

Page 61: Ajuste_rendimiento

5.7.2. Ajuste de sistemas LinuxEn este tema se describe cómo ajustar el sistema operativo Linux para optimizar el rendimiento de WebSphere ApplicationServer.

Acerca de esta tareaCuando tenga algún problema de rendimiento, compruebe los valores del sistema operativo para determinar si son loscorrectos para su aplicación. Debido a que el sistema operativo Linux no es un producto WebSphere Application Server,tenga en cuenta que puede cambiar y los resultados pueden variar.

Procedimiento

Configure los siguientes valores y variables según las necesidades de ajuste:

Parámetro timeout_timewaitDescripción: Determina el tiempo que debe transcurrir antes de que el TCP/IP pueda liberar una conexióncerrada y reutilizar sus recursos. Este intervalo entre cierre y liberación se conoce como el estadoTIME_WAIT o el doble del tiempo de vida máximo del segmento (2MSL). Durante este tiempo, volver a abrirla conexión al cliente y servidor cuesta menos que establecer una conexión nueva. Si se reduce el valor deesta entrada, TCP/IP puede liberar las conexiones cerradas más rápidamente y proporcionar más recursospara las conexiones nuevas. Ajuste este parámetro si la aplicación en ejecución necesita que se liberenrápidamente o se creen conexiones nuevas, y el rendimiento es bajo debido a que hay muchas conexionesen estado TIME_WAIT.Cómo ver o establecer:

Emita el mandato siguiente para establecer el parámetro timeout_timewait en 30 segundos:

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

SUSE Linux Enterprise Server 8 (SLES 8) SP2A ­ sched_yield_scale tuningDescripción: el planificador de Linux es muy sensible a los cambios excesivos de contexto, por lo que losarreglos se han integrado en la distribución del kernel de SLES8 para introducir un retardo cuando la hebraconlleva un proceso. Este arreglo se habilita automáticamente en SLES 8 SP3, pero debe habilitarse deforma explícita en SLES 8 SP2A o posterior.Cómo ver o establecer:

1. Actualice el service pack SLES 8 para SP2A.2. Emita el mandato sysctl ­w sched_yield_scale=1.

Valor por omisión: 0Valor recomendado: 1

Actualización del kernel RedHat Advanced Server 2.1Descripción: se han implementado cambios en las actualizaciones del kernel para RedHat Advanced Server2.1 que influyen en el rendimiento de WebSphere Application Server, especialmente en la duplicación desesiones HTTP de tipo memoria a memoria.Cómo ver o establecer:

1. Emita el mandato uname ­a.2. Si ejecuta un kernel anterior al 2.4.9­e.23, actualice al menos al kernel RedHat Advanced Server 2.1

pero preferiblemente al más reciente que esté soportado.Valor por omisión: 2.4.9­e.3Valor recomendado: 2.4.9­e.23

Descriptores de archivos Linux (ulimit)Descripción: Especifica el número de archivos abiertos a los que se da soporte. El valor por omisiónnormalmente es suficiente para la mayoría de aplicaciones. Si el valor establecido para este parámetro esdemasiado bajo, es posible que se visualice un error de apertura de archivo, de asignación de memoria o deestablecimiento de conexión.Cómo ver o establecer: Consulte las páginas de referencia de UNIX sobre ulimit para conocer la sintaxisde los distintos shells. Para establecer el mandato ulimit en 8000 para el shell KornShell (ksh), emita elmandato ulimit ­n 8000. Utilice el mandato ulimit ­a para que se visualicen los valores actuales para todaslas limitaciones de los recursos del sistema.Valor predeterminado: Para SUSE Linux Enterprise Server 9 (SLES 9), el valor predeterminado es 1024.Valor recomendado: 8000

Registro de reserva de conexionesDescripción: Cambie los parámetros siguientes cuando un alto índice de peticiones de conexión de entradaden como resultado errores de conexión:

echo 3000 > /proc/sys/net/core/netdev_max_backlogecho 3000 > /proc/sys/net/core/somaxconn

TCP_KEEPALIVE_INTERVAL

Page 62: Ajuste_rendimiento

Descripción: Determina el tiempo de espera entre sondeos de intervalos isAlive.Cómo ver o establecer: Emita el mandato siguiente para establecer el valor:

echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl

Valor por omisión: 75 segundosValor recomendado: 15 segundos

TCP_KEEPALIVE_PROBESDescripción: Determina el número de sondeos antes de que se supere el tiempo de espera.Cómo ver o establecer: Emita el mandato siguiente para establecer el valor:

echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes

Valor por omisión: 9 segundosValor recomendado: 5 segundos

Asignación de páginas para el almacenamiento dinámico de la JVM (Java virtual machine) (comprobadocon SLES 9)

Algunas aplicaciones requieren almacenamiento dinámico de gran tamaño para un rendimiento óptimo. Disminuyala actividad general de CPU que significa gestionar un almacenamiento dinámico de gran tamaño utilizando elsoporte de páginas grandes que proporcionan el CPU y el sistema operativo. En el ejemplo siguiente se presuponeque el tamaño de páginas grandes es de 4 MB y que el tamaño del almacenamiento dinámico deseado es de 2300MB.

1. Establezca los tres valores siguientes mediante un archivo sysctl.conf, que normalmente se encuentraen /etc/sysctl.conf.

Nota: Para modificar este archivo se deben tener privilegios de acceso root. Además, antes de realizarcambios, verifique que el archivo no esté marcado como de sólo lectura.

a. Establezca el número de páginas grandes (2300MB = 575 * 4MB) emitiendo el mandato siguiente:

vm.nr_hugepages = 575

b. Establezca el tamaño del segmento compartido máximo en 2300 MB más un poco más(aproximadamente 95 MB) (2511724800 = 2300MB * 1048576 bytes/MB + 100000000 bytes)emitiendo el siguiente mandato:

kernel.shmmax = 2511724800

c. Establezca la cantidad total de memoria que se ha de compartir emitiendo el mandato siguiente:

kernel.shmall = 2511724800

2. Establezca la opción de la JVM Xmx en 2300MB.3. Vuelva a asignar el texto del programa en una dirección de memoria virtual inferior (0x10000000) para

proporcionar más espacio de direcciones para un almacenamiento dinámico grande. En SUSE LinuxEnterprise Server 9, ejecute el mandato siguiente para volver a asignar el texto en el script que invoca la JVMo en un archivo .profile:

echo "0x10000000" > /proc/self/mapped_base

ResultadosEste procedimiento de ajuste mejora el rendimiento de WebSphere Application Server en el sistema operativo Linux.

Qué hacer a continuaciónDespués de ajustar el rendimiento del sistema operativo, consulte otros temas de ajuste para obtener diferentessugerencias sobre ajuste.

En esta información...

Tareas relacionadasAjuste de sistemas Windows

Redbooks de IBM,demostraciones, formación ymucho más

Page 64: Ajuste_rendimiento

5.7.3. Ajuste de sistemas AIXEn este tema se describe cómo ajustar el sistema operativo AIX para optimizar el rendimiento de WebSphere ApplicationServer.

Acerca de esta tareaHay varios cambios de configuración y variables que pueden establecerse para ajustar el rendimiento de Websphere deforma que se adapte a sus necesidades. Debido a que el sistema operativo AIX no es un producto WebSphere ApplicationServer, tenga en cuenta que puede cambiar y los resultados pueden variar.

Procedimiento

Cambie los siguientes valores o variables de configuración en función de sus necesidades:

TCP_TIMEWAITDescripción: Determina el tiempo que debe transcurrir antes de que el TCP/IP pueda liberar una conexióncerrada y reutilizar sus recursos. Este intervalo entre cierre y liberación se conoce como el estadoTIME_WAIT o el doble del tiempo de vida máximo del segmento (2MSL). Durante este tiempo, volver a abrirla conexión con el cliente y servidor cuesta menos que establecer una conexión nueva. Si se reduce el valorde esta entrada, TCP/IP puede liberar las conexiones cerradas más rápidamente y proporcionar másrecursos para las conexiones nuevas. Ajuste este parámetro si la aplicación en ejecución necesita que seliberen rápidamente o se creen conexiones nuevas y si el rendimiento es bajo debido a que hay muchasconexiones en estado TIME_WAIT.Cómo ver o establecer:

Emita el mandato siguiente para establecer el estado TCP_TIMEWAIT en 15 segundos:

/usr/sbin/no –o tcp_timewait =1

Sistemas operativos AIX con DB2Descripción: La separación de los archivos de anotaciones cronológicas DB2 de los archivos físicos de basede datos puede aumentar el rendimiento. También puede separar los archivos de anotaciones cronológicas yde base de datos de la unidad que contiene el servicio JFS (Journaled File System). AIX utiliza sistemas dearchivos y grupos de volumen específico para el registro cronológico de JFS.Cómo ver o establecer: Utilice el programa de utilidad filemon de AIX para ver la entrada y la salida detodos los sistemas de archivos, y seleccionar estratégicamente el sistema de archivos de las anotacionescronológicas de DB2. Establezca la ubicación de registro de DB2 según la información de registrocronológico de DB2.Valor predeterminado: la ubicación predeterminada de los archivos de anotaciones cronológicas de DB2suele ser la misma unidad de disco donde se almacenan las tablas de base de datos.Valor recomendado: cambie los archivos a un disco aparte de los datos de DB2 y que tenga un mínimo deactividad de entrada o salida.

Descriptores de archivo de AIX (ulimit)Descripción: Especifica las distintas restricciones sobre el uso de recursos en la cuenta de usuario. Elmandato ulimit -a muestra todos los límites de ulimit. El mandato ulimit -a especifica sólo el número dearchivos abiertos permitidos. El número por omisión de archivos abiertos (2000) normalmente es suficientepara la mayoría de aplicaciones. Si se establece este parámetro en un valor muy bajo, se pueden producirerrores al abrir archivos o establecer conexiones. Dado que este valor limita el número de descriptores dearchivo que un proceso de servidor puede abrir, un valor demasiado bajo impedirá un rendimiento óptimo.Cómo ver o establecer: Efectúe los siguientes pasos para cambiar el límite de archivos abiertos por 10.000archivos:

1. Abra la ventana de mandatos.1. Edite el archivo /etc/security/limits. Añada las siguientes líneas a la cuenta de usuario en la

que se ejecuta el proceso de WebSphere Application Server:

nofiles = 10000 nofiles_hard = 10000

2. Guarde los cambios.3. Reinicie el sistema AIX.4. Para verificar el resultado, escriba el mandato ulimit -a en la línea de mandatos. Por ejemplo, escriba# ulimit -a.

Valor predeterminado: En sistemas operativos AIX, el valor predeterminado es 2000.Valor recomendado: el valor depende de la aplicación y se aplica exclusivamente a los datos del programade aplicación y a la pila de aplicación.

Si aumenta los límites del descriptor de archivo ulimit puede mejorar el rendimiento. Es posible que seanecesario aumentar alguno de los otros límites en función de la aplicación. Cualquier cambio realizado en losvalores ulimit de los datos o la pila deben garantizar que datos+pila < 256 MB (sólo para WebSphereApplication Server de 32 bits).

Page 65: Ajuste_rendimiento

Se recomienda cambiar los valores ulimit para los datos por "unlimited".

AIX TCP_KEEPIDLEDescripción: el paquete keepAlive garantiza que la conexión permanezca en estado active/ESTABLISHED.Cómo ver o establecer: utilice el mandato no para determinar el valor actual o para establecer el valor. Elcambio es efectivo hasta la próxima vez que se reinicia la máquina. Para cambiar el valor de formapermanente, añada el mandato no al directorio /etc/rc.net. Por ejemplo:

no ­o tcp_keepidle=600

Valor por omisión: 14400 medio segundos (2 horas).Valor recomendado: 600 medio segundos (5 minutos).

TCP_KEEPINTVLDescripción: Especifica el intervalo entre los paquetes enviados para validar la conexión.Cómo ver o establecer: Utilice el mandato siguiente para establecer el valor en 5 segundos:

no ­o tcp_keepintvl=10

Valor por omisión: 150(1/2 segundos)Valor recomendado: 10(1/2 segundos)

TCP_KEEPINITDescripción: Especifica el valor de tiempo excedido inicial para la conexión TCP.Cómo ver o establecer: Utilice el mandato siguiente para establecer el valor en 20 segundos:

no ­o tcp_keepinit=40

Valor por omisión: 150(1/2 segundos)Valor recomendado: 40(1/2 segundos)

Asignación de páginas grandes (16 MB) para el almacenamiento dinámico de JVM (Java VirtualMachines)

Algunas aplicaciones requieren almacenamiento dinámico de gran tamaño para un rendimiento óptimo. Disminuyala actividad general de CPU que significa gestionar un almacenamiento dinámico de gran tamaño utilizando elsoporte de páginas grandes que proporcionan el CPU y el sistema operativo. Los pasos siguientes asignan 4 GB deRAM como páginas grandes (16 MB):

1. Como usuario root, ejecute los mandatos siguientes para reservar 4 GB de páginas grandes:

vmo ­r ­o lgpg_regions=256 ­o lgpg_size=16777216 bosboot ­ad /dev/ipldevice reboot ­q

2. Después del reinicio, ejecute el mandato siguiente para dar soporte a páginas grandes en sistemasoperativos AIX:

vmo ­p ­o v_pinshm=1

3. Como usuario root, añada las posibilidades siguientes para el usuario:

chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE $USER

4. Añada las opciones ­Xlp de Java al mandato Java.a. Pulse Servidores > Tipos de servidorServidores de aplicaciones WebSphere >

nombre_servidor.b. En Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso >

Máquina virtual Java.c. En el campo Argumentos genéricos de JVM, añada ­Xlp.

5. Añada la propiedad personalizada EXTSHM y establezca OFF.a. Pulse Servidores > Tipos de servidorServidores de aplicaciones WebSphere >

nombre_servidor.b. En Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso >

Entradas de entorno > Nueva.c. En el campo Nombre, escriba EXTSHM.d. En el campo Valor, escriba OFF.

6. Valide que se está utilizando el soporte de páginas grandes con el mandato siguiente:

vmstat ­l 1

Nota: El valor de la columna "alp" no es cero cuando se ejecuta la aplicación.

Page 66: Ajuste_rendimiento

Hay varios asuntos preocupantes al habilitar las páginas grandes, que pueden hacer que se produzcan sucesosgraves en la máquina cuando se habilitan páginas grandes. Para obtener más información sobre las páginasgrandes de AIX, consulte la sección que trata sobre las consideraciones para utilizar páginas grandes("Considerations for using large pages") en la siguiente dirección:http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/large_page_ovw.htm.

Si no desea utilizar la opción de páginas grandes, hay también una opción de página media. La opción de tamañode página media, que es similar y tiene los mismos beneficios de rendimiento que las páginas grandes. Sinembargo, no incluye los problemas de reserva de memoria física para un usuario o proceso específico. Si deseamás información, consulte la información sobre cómo Ajustar JVM(Java Virtual Machines).

Información adicional sobre AIX

Tenga en cuenta que existen otros valores del sistema operativo AIX que no entran dentro del ámbito de estedocumento. Puede ajustar los siguientes valores adicionales:

Cola de recepción y transmisión de adaptadorAlmacenamiento intermedio de socket TCP/IPRendimiento de la agrupación mbuf de protocolo IPActualizar descriptores de archivosActualizar el planificador

Para obtener más información sobre los sistemas operativos AIX, consulte la información sobre el rendimiento:recursos para el aprendizaje.

ResultadosEste procedimiento de ajuste mejora el rendimiento de WebSphere Application Server en el sistema operativo AIX.

Qué hacer a continuaciónDespués de ajustar el rendimiento del sistema operativo, consulte otros temas de ajuste para obtener diferentessugerencias sobre ajuste.

En esta información...

Tareas relacionadasAjuste de sistemas WindowsAjuste de sistemas LinuxAjuste de sistemas SolarisAjuste de sistemas HP­UXAjuste de la máquina virtual para Java deIBM

Referencia relacionada

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tuneaix

Nombre de archiv o: tprf _tuneaix.html

Page 67: Ajuste_rendimiento

5.7.4. Ajuste de sistemas SolarisLos siguientes parámetros de ajuste son específicos del sistema operativo Solaris. Debido a que el sistema operativoSolaris no es un producto WebSphere Application Server, tenga en cuenta que puede cambiar y los resultados puedenvariar.

Acerca de esta tareaEn el sistema operativo Solaris, WebSphere Application Server se ejecuta en la JVM (Java Virtual Machine) HotSpot deSun. Es importante utilizar los parámetros de ajuste correctos con la JVM de Sun para poder utilizar sus características deoptimización de rendimiento. Consulte la información sobre el ajuste de la JVM. Asimismo, puede utilizar los parámetrossiguientes que son específicos del sistema operativo Solaris para asegurarse de que WebSphere Application Server tengarecursos suficientes.

Procedimiento

Configure los siguientes valores o variables en función de sus necesidades de ajuste:

Descriptores de archivo de Solaris (ulimit)Descripción: Especifica el número máximo de archivos abiertos soportados. Si el valor de este parámetro esdemasiado bajo, se visualiza el error Demasiados archivos abiertos en el archivo stderr.log deWebSphere Application Server.Cómo ver o establecer: consulte las páginas de referencia de UNIX sobre los límites del descriptor dearchivo para ver los parámetros y mandatos utilizados. Para KornShell (ksh), el mandato ulimit ­n puedeutilizarse para establecer el valor de descriptor de archivo deseado y el mandato ulimit ­a para visualizartodos los valores actuales de ulimit en su lugar.Valor predeterminado: 1024Valor recomendado: 8000

TCP_TIME_WAIT_INTERVAL de SolarisDescripción: Notifica a TCP/IP durante cuánto tiempo deben mantenerse cerrados los bloques de control deconexiones. Una vez que las aplicaciones completan la conexión TCP/IP, los bloques de control semantendrán durante el intervalo de tiempo especificado. Cuando se alcanzan altas cadencias de conexión,se acumula un gran registro de reserva de las conexiones TCP/IP, y puede ralentizar el rendimiento delservidor. El servidor se puede quedar parado en determinados periodos de mucho trabajo. Si el servidor separa, el mandato netstat muestra que muchos de los sockets abiertos en el servidor HTTP están en estadoCLOSE_WAIT o FIN_WAIT_2. Se pueden producir retrasos notables de hasta 4 minutos, durante los cualesel servidor no envía respuesta alguna, pero la utilización de la CPU se mantiene alta, con toda su actividad enprocesos del sistema.Cómo ver o establecer: Utilizar el mandato get para determinar el intervalo actual y el mandato set paraespecificar un intervalo de 30 segundos. Por ejemplo:

ndd ­get /dev/tcp tcp_time_wait_interval ndd ­set /dev/tcp tcp_time_wait_interval 30000

Valor por omisión: el intervalo de tiempo de espera por omisión para un sistema operativo Solaris es de2400000 milisegundos, que es igual a 4 minutos.Valor recomendado: 60000 milisegundos

TCP_FIN_WAIT_2_FLUSH_INTERVAL de SolarisDescripción: Especifica el intervalo del temporizador que no permite una conexión en estado FIN_WAIT_2para mantenerse en ese estado. Cuando se alcanzan altas cadencias de conexión, se acumula un granregistro de reserva de las conexiones TCP/IP, y puede ralentizar el rendimiento del servidor. El servidor sepuede quedar parado durante periodos de mucho trabajo. Si el servidor se para, al utilizar el mandato netstatmuestra que muchos de los sockets abiertos en el servidor HTTP están en estado CLOSE_WAIT oFIN_WAIT_2. Se pueden producir retrasos visibles de hasta 4 minutos, durante los cuales el servidor no envíarespuesta alguna, pero la utilización de la CPU se mantiene alta, con toda su actividad en procesos delsistema.Cómo ver y establecer: Utilice el mandato get para determinar el intervalo actual y el mandato set paraespecificar un intervalo de 67,5 segundos. Por ejemplo:

ndd ­get /dev/tcp tcp_fin_wait_2_flush_intervalndd ­set /dev/tcp tcp_fin_wait_2_flush_interval 67500

Valor por omisión: 675000 segundosValor recomendado: 67500 milisegundos

TCP_KEEPALIVE_INTERVAL de SolarisDescripción: El paquete keepAlive garantiza que la conexión permanezca activa y esté establecida.Cómo ver o establecer: utilice el mandato ndd para determinar el valor actual o para establecer el valor.Por ejemplo:

ndd ­set /dev/tcp tcp_keepalive_interval 300000

Page 68: Ajuste_rendimiento

Valor por omisión: 7200000 milisegundosValor recomendado: 15000 milisegundos

Solaris ­ parámetro del kernel semsys:seminfo_semopmDescripción: Es posible que exista una entrada en el archivo /etc/system para este parámetro de ajuste.Este número es el valor máximo de las operaciones de semáforo del sistema V por cada llamada semop. Elvalor predeterminado para esta opción es muy bajo para sistemas con muchas conexiones simultáneas.Cómo ver o establecer: Establezca este parámetro a través de la entrada /etc/system:semsys:seminfo_semopm = 200Valor por omisión: NingunoValor recomendado: 200 (100 es adecuado para la mayoría de los sistemas, aunque en algunos casospuede ser necesario el valor 200.)

Nota: Este parámetro se ha sustituido en el sistema operativo Solaris 10 por el control de recurso process.max­sem­ops, que ahora tiene el valor predeterminado 512 por proceso. Este valor predeterminado es suficiente para lamayoría de las aplicaciones. Para obtener más información sobre los controles de recursos y parámetros de Solaris10, busque los "parámetros ajustables" y el "control de recursos" en el sitio web de Sun Microsystems en:http://docs.sun.com.

Registro de reserva de conexionesDescripción: Cambie los parámetros siguientes cuando un alto índice de peticiones de conexión de entradaden como resultado errores de conexión:

ndd ­get /dev/tcp tcp_conn_req_max_q ndd ­set /dev/tcp tcp_conn_req_max_q 8000

Valor predeterminado: En Solaris 8, el valor predeterminado es 128.Valor predeterminado: para Solaris 9 y Solaris 10, el valor predeterminado es 128.Valor recomendado: 8000

Soporte de páginas grandes

Al utilizar páginas grandes se reduce la actividad general de CPU necesaria para gestionar un almacenamientodinámico de la JVM de gran tamaño. .

Con Solaris 9 y Solaris 10, se proporciona el soporte a páginas grandes por omisión. No son necesarios parámetrosdel sistema operativo o de la JVM para utilizar páginas de gran tamaño para el almacenamiento dinámico de la JVM

ResultadosEste procedimiento de ajuste mejora el rendimiento de WebSphere Application Server en el sistema operativo Solaris.

Qué hacer a continuaciónDespués de ajustar el rendimiento del sistema operativo, consulte otros temas de ajuste para obtener diferentessugerencias sobre ajuste.

En esta información...

Tareas relacionadasAjuste de sistemas WindowsAjuste de sistemas LinuxAjuste de sistemas AIXAjuste de sistemas HP­UXAjuste de la máquina virtual para Java de IBM

Información relacionadahttp://www.redbooks.ibm.com/redbooks/SG247584/wwhelp/wwhimpl/js/html/wwhelp.htm

Redbooks deIBM,demostraciones,formación ymucho más

(Índice)

Utilice las sugerenciasde IBM para recuperarcontenido relacionadode ibm.com y otro tipode contenidoidentificado comocontenido de interés.

Esta característicarequiere acceso a

Page 69: Ajuste_rendimiento

Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunesolaris

Nombre de archiv o: tprf _tunesolaris.html

Page 70: Ajuste_rendimiento

5.7.5. Ajuste de sistemas HP­UXEn este tema se describe cómo ajustar el sistema operativo HP­UX para optimizar el rendimiento de WebSphereApplication Server. Debido a que el sistema operativo HP­UX no es un producto WebSphere Application Server, tenga encuenta que puede cambiar y los resultados pueden variar

Antes de empezarEn el sistema operativo HP­UX, WebSphere Application Server se ejecuta en la JVM (Java Virtual Machine) que estábasado en la tecnología JVM HotSpot de Sun. Si se ajusta correctamente esta JVM se mejora de forma significativa elrendimiento de WebSphere Application Server ya que se utilizan por completo sus características de optimización delrendimiento. Consulte la configuración de JVM en la información del sistema HP­UX. También es importante cambiaralgunos parámetros específicos del sistema operativo HP­UX para evitar que WebSphere Application Server se quede sinrecursos.

Acerca de esta tareaCuando tenga algún problema de rendimiento, compruebe los valores del sistema operativo para determinar si son loscorrectos para su aplicación.

Procedimiento

Configure los siguientes valores y variables según las necesidades de ajuste:

Ajuste del sistema operativo HP con el controlador JDBC de DB2 de tipo 2

Cuando utilice el controlador JDBC (Java Database Connectivity) de tipo 2 en el sistema operativo HP conDB2, puede mejorar el rendimiento de WebSphere Application Server si asigna previamente el segmento derastreo de DB2. Efectúe los pasos siguientes:

1. Antes de iniciar el servidor de aplicaciones, cambie al usuario asociado a la instancia de DB2.2. Ejecute el mandato db2trc alloc.3. Inicie el servidor de aplicaciones.

Nota de uso: Utilice el controlador de tipo 4 para obtener el mejor rendimiento y compatibilidad.

Otra cuestión relacionada con el controlador JDBC de tipo 2 en el sistema operativo HP es la conversión dela página de códigos. Si crea la base de datos utilizando el juego de códigos UTF­8 se evita este problema yaumenta de manera significativa el rendimiento. Consulte en la documentación de la base de datos lasinstrucciones sobre cómo crear bases de datos con un juego de códigos específico. Lea la información sobrelos parámetros de ajuste de DB2.

Los parámetros de ajuste de rendimiento de HP

Modifique los valores de HP­UX 11i para mejorar significativamente el rendimiento de WebSphere ApplicationServer. Para obtener información adicional sobre los parámetros de ajuste de rendimiento de HP, consulte lainformación sobre el rendimiento: recursos para el aprendizaje.

Anotaciones cronológicas de JVM (Máquina virtual Java)Descripción: establece la instrucción de la JVM y los tamaños de la página de datos en 64 MB paramejorar el rendimiento.Cómo ver o establecer: Utilice el mandato WASHOME/java/bin/SYSTEM_ARCH_PATH/java. Lasalida del mandato proporciona al sistema operativo características del ejecutable del proceso.Valor por omisión: 4 MB, si no está asignadoValor recomendado: 64 MB

HP­UX 11i TCP_CONN_REQUEST_MAXDescripción: Especifica el número máximo de peticiones de conexión que el sistema operativo puedeponer en cola cuando el servidor no tiene disponible ninguna hebra. Cuando se alcanzan altascadencias de conexión, se acumula un gran registro de reserva de peticiones de conexión TCP/IP, yse desactivan las conexiones de cliente. Ajuste este valor cuando los clientes empiecen a superar eltiempo de espera de conexión. Verifique esta situación utilizando el mandato netstat ­p tcp. Busqueel siguiente valor: peticiones de conexión desactivadas porque la cola está llenaCómo ver o establecer: Establezca este parámetro utilizando el mandato ndd ­set /dev/tcptcp_conn_request_max 8192.Valor por omisión: 4096Valor recomendado: en la mayoría de los casos el valor por omisión es suficiente. Puede ajustareste valor en 8192, si el valor por omisión resulta inadecuado.

Recomendaciones sobre los parámetros de kernel de HP­UX 11i

Consulte la tabla de los parámetros de kernel que aparece en el tema "Preparación de sistemas HP­UX parala instalación" del Information Center.

TCP_KEEPALIVE_INTERVALDescripción: Determina el intervalo entre sondeos.

Page 71: Ajuste_rendimiento

Cómo ver o establecer: utilice el mandato ndd para determinar el valor actual o para establecer elvalor. Por ejemplo:

ndd ­set /dev/tcp tcp_keepalive_interval 7200000

Valor por omisión: NingunoValor recomendado: 7200000 milisegundos

TCP_KEEPALIVES_KILLDescripción: Determina el número máximo de veces que se ha de sondear antes de desactivar.Cómo ver o establecer: utilice el mandato ndd para determinar el valor actual o para establecer elvalor. Por ejemplo:

ndd ­set /dev/tcp tcp_keepalives_kill 5000

Valor por omisión: 1Valor recomendado: 5000 milisegundos

Para optimizar el rendimiento de un servidor es muy importante mantener los parches Java y de sistema operativoactualizados. Para obtener los parches Java más recientes, visite el siguiente sitio Web:

HP­UX Patch Information

Asimismo, para obtener el pack de calidad del sistema operativo más reciente, visite el siguiente sitio Web:

Support Plus: Quality Pack Bundles

ResultadosEste procedimiento de ajuste mejora el rendimiento de WebSphere Application Server en el sistema operativo HP­UX.

Qué hacer a continuaciónDespués de ajustar el rendimiento del sistema operativo, consulte otros temas de ajuste para obtener diferentessugerencias sobre ajuste.

En esta información...

Tareas relacionadasAjuste de sistemas WindowsAjuste de sistemas LinuxAjuste de sistemas AIXAjuste de sistemas SolarisAjuste de la máquina virtual para Java deIBM

Referencia relacionada

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunehp

Nombre de archiv o: tprf _tunehp.html

Page 72: Ajuste_rendimiento

5.8. Ajuste de servidores WebWebSphere Application Server proporciona plug­ins para varias marcas y versiones de servidores Web. Cada combinaciónde sistema operativo de servidor Web tiene unos parámetros de ajuste específicos que afectan al rendimiento de laaplicación.

Acerca de esta tarea

La siguiente es una lista de parámetros de ajuste específicos de los servidores Web. Los parámetros enumerados puedeque no se apliquen a todos los servidores Web admitidos. Compruebe la documentación del servidor Web antes de utilizarninguno de estos parámetros.

Procedimiento

Ajuste de IBM HTTP Server 2.0.47.1, Apache 2.0.48, IBM HTTP Server 6.0 e IBM HTTP Server 6.1. Supervisarel uso de CPU y comprobar los archivos error_log y http_plugin.log de IBM HTTP Server le ayudarán a diagnosticarlos problemas de rendimiento del servidor Web.

También puede configurar IBM HTTP Server para mostrar una página de estado:

Edite el archivo httpd.conf de IBM HTTP Server y suprima el carácter de comentario (#) de las siguienteslíneas de este archivo:

#LoadModule status_module, modules/ApacheModuleStatus.dll,#<Location/server­status>#SetHandler server­status#</Location>

Guarde los cambios y reinicie IBM HTTP Server.En un navegador Web, vaya a http://host/server­status. Alternativamente puede pulsar Volver a cargar paraactualizar el estado.

(Opcional) Si el navegador soporta la renovación, vaya a http://su_host/server­status?refresh=5 para renovarcada cinco segundos.

(Opcional) Si el navegador permite renovar, vaya a http://host/server­status?refresh=5 para que se renuevecada cinco segundos.

Todos estos servidores Web asignan una hebra para manejar cada conexión de cliente. Si se asegura de que esténdisponibles un número de hebras suficiente para el número máximo de conexiones de cliente simultáneas evitaráque esta capa se convierta en un cuello de botella. Los valores de estos servidores Web se pueden ajustarrealizando cambios en el archivo httpd.conf del sistema del servidor Web.

Puede comprobar en el archivo error_log de IBM HTTP Server si hay mensajes de aviso relacionados con haberalcanzado el número máximo de clientes (MaxClients). Dependiendo de la plataforma específica del sistemaoperativo, hay varios parámetros que determinan el número máximo de clientes a los que da soporte el servidorWeb. Consulte http://httpd.apache.org/docs­2.0/mod/mpm_common.html#maxclients para obtener una descripciónde los parámetros MaxClients.

Soporte de miles de clientes simultáneos. No es normal que un solo sistema IBM HTTP Server dé soporte amiles de clientes simultáneos. Si necesita dar soporte a más clientes simultáneos que el número de hebras quesoporta el hardware y el sistema operativo del servidor Web, puede utilizar varios servidores Web.

Respuesta a un mensaje de error de rechazo de la conexión. Es posible que algunos clientes reciban unmensaje de error indicando que se ha rechazado la conexión si se aumenta repentinamente el número de clientes.Si se aumentan los parámetros ListenBacklog y StartServer se puede disminuir o eliminar este error.

El parámetro ListenBacklog indica al sistema operativo el número máximo de conexiones pendientespermitido. Aunque el valor predeterminado de IBM HTTP Server es 511, el valor real puede ser mucho másalto o mucho más bajo dependiendo del parámetro del sistema operativo correspondiente. Para manejargrandes cantidades de conexiones simultáneas, es posible que sea necesario establecer este parámetro y elparámetro del sistema operativo correspondiente en el número (probablemente miles) de conexionessimultáneas previstas. (Consulte la información sobre el ajuste de sistemas operativos para obtenerinformación adicional acerca de cómo ajustar el sistema operativo.)El parámetro StartServers indica el número de procesos de IBM HTTP Server que se arrancan inicialmente.Con un arranque previo de estos procesos/hebras de IBM HTTP Server se disminuye la posibilidad de que unusuario tenga que espera a que comience un nuevo proceso. Debe establecer este parámetro en un valorigual al parámetro MinSpareServers, de modo que se inicien de forma inmediata el número mínimo deprocesos de IBM HTTP Server necesarios para que se cargue este cliente.

Evite que se creen y destruyan frecuentemente hebras/procesos de cliente a medida que varía el númerode usuarios. Puede utilizar MinSpareServers y MaxSpareServers para especificar el número mínimo y máximo deservidores (hebras/procesos cliente) que pueden existir en un estado de inactividad. Para evitar que se creen ydestruyan frecuentemente hebras/procesos de cliente a medida que varía el número de usuarios, establezca este

rango de modo que sea lo suficientemente grande para incluir el número máximo de usuarios simultáneos.

Page 73: Ajuste_rendimiento

rango de modo que sea lo suficientemente grande para incluir el número máximo de usuarios simultáneos.

Cambie el valor del parámetro de registro cronológico de acceso para disminuir la carga en el servidorWeb. Si no necesita anotar cronológicamente cada acceso al servidor de aplicaciones, cambie el valor por omisióndel parámetro de registro cronológico de acceso del servidor Web. Este cambio disminuirá la carga en el servidorWeb.

Modifique los valores de la opción de equilibrio de carga e intervalo de reintento de las propiedades delplug­in del servidor Web para mejorar el rendimiento. Puede mejorar el rendimiento de IBM HTTP Server (conel plug­in del servidor Web de WebSphere) modificando las siguientes propiedades de configuración del plug­in delservidor Web:

La opción de equilibrio de carga que especifica la opción de equilibrio de carga que utiliza el plug­in cuandoenvía peticiones a los distintos servidores de aplicaciones asociados con el servidor Web.

El objetivo de la opción de equilibrio de carga por omisión, turno circular, es distribuir de forma equilibrada lacarga de trabajo entre los miembros del clúster. El turno circular funciona mejor con servidores Web quetienen un proceso individual para el envío de peticiones al servidor de aplicaciones. Si el servidor Web utilizavarios procesos para enviar peticiones al servidor de aplicaciones, la opción Aleatorio puede proporcionar, enalgunas ocasiones, una distribución más equilibrada del trabajo en el clúster.

Valor de intervalo de reintentos, que especifica la cantidad de tiempo que se debe esperar antes deintentar conectar con un servidor que está temporalmente marcado como no disponible.

¿Cómo afecta la reducción del intervalo de reintentos a la productividad? Si el plug­in se intenta conectar aun servidor de aplicaciones concreto y que el servidor de aplicaciones está fuera de línea o en el proceso dereiniciar, las peticiones debe esperar un período de tiempo de espera. Este proceso causa respuestasretardadas para aquellas peticiones. Si establece un valor de intervalo de reintentos demasiado alto, no seutiliza un servidor de aplicaciones disponible.

Especifique el valor de intervalo de reintentos en función de los siguientes factores:Cuánto tiempo tardarán los servidores de aplicaciones en reiniciarseCuál es su grado de aversión al retardo causado por una frecuencia de reintentos excesivaLa importancia que tiene utilizar todos los servidores de aplicaciones

Realizar estos cambios permitirá que IBM HTTP Server dé soporte a más usuarios del producto. Para modificarestas propiedades, en la consola administrativa, pulse Servidores > Tipos de servidor > Servidores web >nombre_servidor_web > Propiedades del plug­in > Direccionamiento de peticiones.

En esta información...

Tareas relacionadasComunicación con los servidores webAjuste de sistemas operativosAjuste del entorno de servicio deaplicaciones

Referencia relacionadaSugerencias de ajuste del plug­in delservidor Web

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tunewebserv

Nombre de archiv o: tprf _tunewebserv .html

Page 74: Ajuste_rendimiento

5.10. Ajuste del servidor de aplicaciones mediante plantillas de ajustepredefinidasPuede utilizar el script de ajuste basado en python, applyPerfTuningTemplate.py, junto con uno de sus archivos deplantilla, para aplicar plantillas de ajuste de rendimiento predefinidas para el servidor de aplicaciones o clúster. El script yestos archivos de plantilla basados en propiedades se encuentran en el directorio<WAS_HOME>/scriptLibraries/perfTuning/V70.

Antes de empezar

Procedimientos recomendados: Los valores de configuración aplicados por este script y las plantillas de ajusteasociadas deben verse como opciones potenciales de ajuste de rendimiento para que las explore o utilice como puntoinicial para realizar un ajuste adicional. Los valores de configuración que cada una de las plantillas predefinidos aplicaestán orientados a la optimización de escenarios o entornos de servidor de aplicaciones comunes. Normalmente, estosvalores mejoran el rendimiento de muchas aplicaciones.

Debido a que la optimización del rendimiento a menudo implica ventajas y desventajas con las características,prestaciones o comportamiento funcional, algunos de estos valores pueden afectar a la corrección de las aplicaciones,mientras que otros valores pueden no ser adecuados para el entorno. Revise la documentación siguiente y estudie larepercusión de estos valores en el inventario de aplicaciones y la infraestructura.

Al igual que con cualquier ejercicio de ajuste del rendimiento, los valores configurados por las plantillas predefinidas,especialmente la plantilla de producción, deben evaluarse en un entorno de prueba de pre­producción controlado. Acontinuación, puede crear una plantilla personalizada para refinar los valores de ajuste para satisfacer las necesidadesespecíficas de las aplicaciones y el entorno de producción.

Normalmente, cuando se ejecuta el script applyPerfTuningTemplate.py, especificará el archivo de plantillaproduction.properties o el archivo de plantilla development.properties para aplicar al servidor de destino o clúster.

Si especifica el archivo de plantilla production.properties al ejecutar el script applyPerfTuningTemplate.py, el scriptaplica los valores de configuración que son adecuados para un entorno de producción donde los cambios de lasaplicaciones son raros y el rendimiento óptimo en tiempo de ejecución es importante.Si especifica el archivo de plantilla development.properties al ejecutar el script applyPerfTuningTemplate.py, el scriptaplica los valores de configuración que son adecuados para un entorno de desarrollo donde se realizanactualizaciones frecuentes de las aplicaciones y los recursos del sistema están al mínimo.

Además de estas dos plantillas comunes, un tercer archivo de plantilla, default.props, se proporciona para permitirle revertirlos valores de configuración del servidor a los valores predeterminados de fábrica.

También puede crear su propia plantilla de ajuste personalizada. Para crear una plantilla de ajuste personalizada, copieuna de las plantillas existentes, modifique los valores de configuración para que se ajusten mejor a las necesidades de lasaplicaciones y el entorno y, a continuación, utilice el script applyPerfTuningTemplate.py para aplicar estos valorespersonalizados. Los archivos de script y propiedades aprovechan las características de gestión de configuración dearchivos de propiedades que proporciona wsadmin, y se pueden aumentar fácilmente para ajustar los componentes deservidor adicionales. Consulte el tema Utilización de archivos de propiedades para gestionar la configuración del sistemapara obtener más información.

Acerca de esta tarea

Revise la tabla siguiente para ver los cambios de configuración que se producen basados en el archivo de plantilla queespecifique al ejecutar el script applyPerfTuningTemplate.py. Una celda en blanco en esta tabla indica que el parámetro dela lista no está configurado, o se ha configurado con los valores predeterminados para los valores predeterminados delservidor.

Tabla 1.

Parámetro

Valorpredeterminadode servidor(archivo deplantilladefault.properties)

Entorno de producción (archivode plantillaproduction.properties)

Entorno de desarrollo (archivode plantilladevelopment.properties)

Tamaño dealmacenamientodinámico JVM (MB)

Consulte el temaAjuste de la máquinavirtual para Java de IBMpara obtener másinformación acerca de

este valor.

50 mín / 256 máx 512 mín / 512 máx 256 mín / 512 máx

Page 75: Ajuste_rendimiento

este valor.

GC verbosa

Consulte el temaAjuste de la máquinavirtual para Java de IBMpara obtener másinformación acerca deeste valor.

disabled disabled enabled

Rastreo de diagnósticoJVM (argumentos JVMgenéricos)

Consulte el temaAjuste de la máquinavirtual para Java de IBMpara obtener másinformación acerca deeste valor.

­Xtrace:none ­Dcom.ibm.xml.xlxp.jaxb.opti.level=3

­Xtrace:none ­Dcom.ibm.xml.xlxp.jaxb.opti.level=3

Canal HTTP (9080) yHTTPS (9443)maxKeepAliveRequests

Consulte el temaPropiedadespersonalizadas detransporte HTTP paraobtener másinformación sobre estevalor.

100 10000 10000

Modalidad de desarrollo

Consulte el temaValores de servidor deaplicaciones paraobtener másinformación sobre estevalor.

disabled enabled

Suministro decomponentes deservidor

Consulte el TemaValores de servidor deaplicaciones para másinformación acerca deeste valor.

disabled enabled enabled

PMI

Consulte el temaHabilitación de lacolección de datos PMIpara obtener másinformación sobre estevalor.

enabled disabled disabled

Tiempo de espera dememoria caché deautenticación

Consulte el temaValores de memoriacaché de autenticaciónpara obtener másinformación sobre estevalor.

10 minutos 60 minutos 60 minutos

Page 76: Ajuste_rendimiento

Tamaño de laagrupación deconexiones de origende datos*

Consulte el temaValores de agrupaciónde conexiones paraobtener másinformación acerca deeste valor.

1 mín / 10 máx 10 mín / 50 máx

Tamaño de la caché desentencia preparada deorigen de datos*

Consulte el temaPropiedades de origende datos deWebSphere ApplicationServer para obtenermás información acercade este valor.

10 50

Paso por referenciaORB**

Consulte el temaValores del ObjectRequest Broker paraobtener másinformación sobre estevalor.

disabled enabled enabled

Agrupaciones dehebras (ContenedorWeb, ORB, valorpredeterminado)

Consulte el temaValores de agrupaciónde hebras para obtenermás información acercade este valor.

50 mín / 50 máx, 10mín / 50 máx, 20mín / 20 máx

5 mín / 10 máx

Notas de tabla :

* Indica elementos que se ajustan sólo si existen en la configuración. Por ejemplo, una agrupación de conexiones deorigen de datos normalmente no existe hasta que una aplicación está instalada en el servidor de aplicaciones. Si estoselementos se crean después de ejecutar el script, se les da los valores predeterminados de servidor estándar a menos queespecifique otros valores.** La habilitación del paso por referencia ORB puede causar un comportamiento incorrecto de la aplicación en algunoscasos, porque el estándar de Java EE supone una semántica de paso por valor. No obstante, habilitar esta opción puedemejorar el rendimiento hasta en un 50% o más si el cliente y servidor EJB están instalados en la misma instancia y laaplicación se escribe para aprovechar estas características. El tema Valores del servicio Object Request Broker puedeayudarle a determinar si este valor es adecuado para el entorno.

A continuación figuran algunas diferencias sutiles de ajuste específicas de la plataforma:

Plataforma Solaris Los siguientes argumentos de JVM genérica se utilizan tanto para el entorno de producción como para el de desarrollo:

­XX:­UseAdaptiveSizePolicy­XX:+UseParallelGC­XX:+AggressiveOpts­XX:+UnlockDiagnosticVMOptions ­server­Dcom.ibm.xml.xlxp.jaxb.opti.level=3

Plataforma HP­UX Los siguientes argumentos de JVM genérica se utilizan tanto para el entorno de producción como para el de desarrollo:

­XX:+AggressiveOpts

Page 77: Ajuste_rendimiento

­XX:+ForceMmapReserved­XX:SurvivorRatio=16­Xoptgc­XX:+UseParallelGC­Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.DevPollSelectorProvider­XX:­ExtraPollBeforeRead ­XX:+UseSpinning­Dcom.ibm.xml.xlxp.jaxb.opti.level=3

Procedimiento

Inicie la herramienta wsadmin, si no está ya en ejecución y, a continuación, complete una de las accionessiguientes para ajustar un servidor de aplicaciones o todos los servidores de aplicaciones de un clúster.

Ejecute el script applyPerfTuningTemplate.py para ajustar un servidor específico o un clúster de servidores que seejecutan en un entorno de producción.

wsadmin ­f applyPerfTuningTemplate.py [­nodeName nombre_nodo ­serverName nombre_servidor][clusterName nombre_clúster] ­templateFile production.properties

Ejecute el script applyPerfTuningTemplate.py para ajustar un servidor específico o un clúster de servidores que seejecutan en un entorno de desarrollo.

wsadmin ­f applyPerfTuningTemplate.py [­nodeName nombre_nodo ­serverName nombre_servidor][clusterName nombre_clúster] ­templateFile development.properties

Ejecute el script applyPerfTuningTemplate.py para devolver los valores para un servidor o clúster a los valores deconfiguración predeterminados de fábrica estándar.

wsadmin ­f applyPerfTuningTemplate.py [­nodeName nombre_nodo ­serverName nombre_servidor][clusterName nombre_clúster] ­templateFile default.properties

Qué hacer a continuación

Realice una evaluación del rendimiento y un ejercicio de ajuste para determinar si debe ajustar con mayor precisión elservidor para sus aplicaciones específicas.

En esta información...

Tareas relacionadasAjuste de servidores de aplicacionesAjuste de la máquina virtual para Java deIBMHabilitación de la colección de datos PMIUtilización de archivos de propiedades paragestionar la configuración del sistemaHabilitación de la colección de datos PMIAjuste del entorno de servicio deaplicaciones

Referencia relacionadaPropiedades personalizadas de la JVM (JavaVirtual Machine­ Máquina virtual Java)Propiedades personalizadas del transporteHTTPValores del servidor de aplicacionesValores de memoria caché de autenticaciónValores de agrupación de conexionesPropiedades del origen de datos de

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Page 78: Ajuste_rendimiento

WebSphere Application ServerValores de agrupación de hebrasValores de servicio de ORB (ObjectRequest Broker)

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _tuneappserv _script

Nombre de archiv o: tprf _tuneappserv _script.html

Page 79: Ajuste_rendimiento

6. Resolución de problemas de rendimientoEn este tema se describe que la resolución de un problema de rendimiento es un proceso iterativo y se muestra cómosolucionar problemas de rendimiento.

Antes de empezarSe recomienda que revise la página Lista de parámetros de ajuste más importantes antes de leer este tema.

Acerca de esta tarea

Generalmente, la resolución de un problema de rendimiento es un proceso iterativo que requiere la:

Medición del rendimiento del sistema y recopilación de datos de rendimientoLocalización de un cuello de botellaEliminación de un cuello de botella

Generalmente se trata de un proceso iterativo debido a que cuando se suprime un cuello de botella, la limitación delrendimiento se encuentra en otra parte del sistema. Por ejemplo, si se sustituyen discos duros lentos por otros másrápidos, el cuello de botella se puede trasladar al CPU de un sistema.

Medición del rendimiento del sistema y recopilación de datos de rendimiento

Comience por seleccionar pruebas comparativas, esto es, un conjunto de operaciones estándar que se ha deejecutar. Estas pruebas comparativas se aplican a esas funciones de las aplicaciones que sufren problemas derendimiento. Generalmente, los sistemas complejos requieren un período de calentamiento para guardar objetos enantememoria, optimizar las vías de acceso a código, etc. El rendimiento del sistema durante el período decalentamiento es mucho más lento que después del mismo. Las pruebas comparativas deben poder generar trabajoque caliente el sistema antes de registrar las medidas que se utilizan para el análisis de rendimiento. Dependiendode la complejidad del sistema, un período de calentamiento puede variar de algunos miles de transacciones a unperíodo de más de 30 minutos.Si el problema de rendimiento que se está produciendo sólo ocurre cuando un número muy grande de clientesutilizan el sistema, entonces las pruebas comparativas deben simular también varios usuarios. Otro requisito clavees que las pruebas comparativas pueda generar resultados repetibles. Si los resultados varían por encima de unligero porcentaje de una ejecución a otra, es posible que el estado inicial del sistema no sea el mismo en cadaejecución o que las medidas se estén realizando durante el período de calentamiento o que el sistema estéejecutando cargas de trabajo adicionales.Hay varias herramientas para facilitar el desarrollo de las pruebas comparativas. Estas herramientas son desde lasherramientas que invocan un URL a productos basados en scripts que pueden interactuar con datos dinámicosgenerados por la aplicación. IBM Rational tiene herramientas que pueden generar interacciones complejas con elsistema bajo prueba y simular miles de usuarios. Generar pruebas comparativas útiles requiere un esfuerzo y debeformar parte del proceso de desarrollo. No espere hasta que la aplicación entre en producción para determinar elmodo de medir el rendimiento.Las pruebas comparativas registran los resultados de rendimiento y tiempo de respuesta y permiten realizar gráficosy otras técnicas de análisis. Los datos de rendimiento proporcionados por WebSphere Application ServerPerformance Monitoring Infrastructure (PMI) ayuda a supervisar y ajustar el rendimiento del servidor de aplicaciones.La página de tareas de request metrics es otra fuente de datos de rendimiento proporcionada por WebSphereApplication Server. Request metrics permite realizar una medición del tiempo dentro de los límites de loscomponentes de WebSphere Application Server, lo que permite determinar el tiempo empleado en cadacomponente principal.

Localización de un cuello de botella

Consulte los ejemplos siguientes y las soluciones que se sugieren:

Escenario: El rendimiento es bajo con sólo un usuario.

Solución sugerida: utilice la página de concepto de request metrics para determinar cuánto contribuye cadacomponente al tiempo de respuesta global. Concéntrese en el componente que está ocupando la mayor parte deltiempo. Utilice Tivoli Performance Viewer para comprobar el consumo de recursos, incluyendo la frecuencia de lasrecogidas de basura. Es posible que tenga que codificar herramientas de creación de perfiles para aislar el problemaen un método específico.

Escenario: El rendimiento sólo es bajo con varios usuarios.

Solución sugerida: Determine si hay algún sistema con un nivel elevado de uso de CPU, red o disco yconcéntrese en estos sistemas. En las configuraciones en clúster, compruebe si entre los miembros del clúster hayuna descompensación de la carga.

Escenario: Ninguno de los sistemas parece tener una limitación de CPU, memoria, red o disco pero se producenproblemas de rendimiento con varios usuarios.

Soluciones sugeridas:Compruebe que el trabajo esté llegando al sistema que está comprobando. Asegúrese de que algunodispositivo externo no limite la cantidad de trabajo que llega al sistema. Tivoli Performance Viewer le ayuda adeterminar el número de solicitudes del sistema.

Page 80: Ajuste_rendimiento

determinar el número de solicitudes del sistema.Si se realiza un vuelco de hebras puede descubrir un cuello de botella en un método sincronizado o un grannúmero de hebras que está a la espera de un recurso.Asegúrese de que haya hebras suficientes para procesar el trabajo tanto en IBM HTTP Server, la base dedatos como los servidores de aplicaciones. Por el contrario, muchas hebras pueden aumentar la contenciónde recursos y disminuir el rendimiento.Supervise la recogida de basura con Tivoli Performance Viewer o con la opción verbosegc de la JVM (JavaVirtual Machine). Un exceso de recogida de basura puede limitar el rendimiento.

Eliminación de un cuello de botella

Tenga en cuenta los métodos siguientes para eliminar un cuello de botella:Disminuya la demandaAumente los recursosMejore la distribución de la carga de trabajoDisminuya la sincronización

Puede disminuir la demanda de recursos de varios modos. El almacenamiento en antememoria puede disminuir de formaimportante el uso de los recursos del sistema ya que devuelve una respuesta guardada en antememoria anteriormente y seevita, por lo tanto, el trabajo necesario para crear la respuesta original. El almacenamiento en antememoria está soportadoen varios puntos de los sistemas siguientes:

IBM HTTP ServerMandatoEnterprise beanSistema operativo

Los perfiles de código de aplicación pueden llevar a una reducción de la demanda de CPU destacando las zonas activasque puede optimizar. IBM Rational y otras empresas tienen herramientas para perfiles de código. Si se analiza laaplicación se pueden detectar las áreas en las que se puede disminuir el trabajo para algunos tipos de transacciones.

Cambie los parámetros de ajuste para aumentar algunos recursos, por ejemplo, el número de descriptores de contexto dearchivos, mientras que otros recursos pueden necesitar un cambio de hardware, por ejemplo, un número mayor de CPU oCPU más rápidas o servidores de aplicaciones adicionales. Se describen los parámetros de ajuste claves de cadacomponente principal de WebSphere Application Server para facilitar la resolución de problemas de rendimiento. Además,la página de asesores de rendimiento puede proporcionar consejo sobre cómo ajustar un sistema de producción bajo unacarga real y simulada.

La distribución de la carga de trabajo puede afectar el rendimiento cuando algunos recursos se utilizan poco y otros estánsobrecargados. Las funciones de gestión de carga de trabajo de WebSphere Application Server proporciona varios modosde determinar cómo se distribuye el trabajo. La distribución de la carga de trabajo se aplica tanto a un solo servidor como aconfiguraciones de varios servidores y nodos.

Es necesario sincronizar algunas secciones críticas de la aplicación y del código del servidor para impedir que variashebras ejecuten simultáneamente este código y produzcan resultados incorrectos. La sincronización conserva el estadocorrecto pero también puede disminuir el rendimiento cuando varias hebras deben esperar a que una hebra salga de lasección crítica. Cuando varias hebras esperan entrar a una sección crítica, un vuelco de hebras muestra estas hebrasesperando en el mismo procedimiento. Generalmente, se puede reducir la sincronización: modificando el código de modoque sólo se utilice la sincronización cuando sea necesario; disminuyendo la longitud de la vía de acceso del códigosincronizado o disminuyendo la frecuencia con que se invoca el código sincronizado.

En esta información...

Conceptos relacionadosPerformance Monitoring Infrastructure (PMI)Datos que se pueden recopilar con Request MetricsPor qué se utilizan los asesores de rendimiento

Tareas relacionadas¿Por qué debe utilizarse request metrics?Registro cronológico de los datos de rendimiento con TPV

Referencia relacionadaLista de parámetros de ajuste más importantes

Información relacionada

Redbooks de IBM,demostraciones,formación y muchomás

(Índice)

Utilice las sugerencias deIBM para recuperarcontenido relacionado deibm.com y otro tipo decontenido identificadocomo contenido de interés.

Esta característica requiereacceso a Internet.

Page 81: Ajuste_rendimiento

http://www.redbooks.ibm.com/abstracts/sg246392.html?Openhttp://www­306.ibm.com/software/webservers/appserv/was/performance.htmlhttp://www.spec.org/jAppServer2004/results/jAppServer2004.html

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tprf _troubleshoot

Nombre de archiv o: tprf _troubleshoot.html

Page 82: Ajuste_rendimiento

7. Ajuste de perfilado de aplicacionesEsta página proporciona un punto de partida para buscar información sobre el perfilado de aplicaciones, que es unaextensión de WebSphere para definir estrategias para controlar dinámicamente la simultaneidad, las búsquedas previas yla lectura hacia adelante.

El perfilado de aplicaciones y el intento de acceso proporcionan un método flexible para ajustar con precisión elrendimiento de las aplicaciones de los enterprise beans sin repercusión alguna en el código de origen. Distintos enterprisebeans, e incluso métodos distintos de un enterprise bean, pueden tener su propio intento de acceso a recursos. Lacreación de perfiles de los componentes a partir de su intento de acceso aumenta el rendimiento del tiempo de ejecucióndel servidor de aplicaciones.

Ajuste de perfil de aplicaciones

Consideraciones de rendimiento para el perfilado de aplicaciones

El perfilado de aplicaciones habilita técnicas de configuración de ensamblaje que mejoran el tiempo de ejecución, elrendimiento y la escalado de las aplicaciones. Puede configurar tareas que identifiquen las solicitudes entrantes, losintentos de acceso que determinan la simultaneidad y otras características de acceso a datos, así como los perfilesque correlacionan las tareas con los intentos de acceso.

Información relacionadaVías de acceso de extremo a extremo para perfilado de aplicacionesMigración de perfilado de aplicacionesAdministración de perfilado de aplicacionesDesarrollo de perfilado de aplicacionesPerfilado de aplicacionesResolución de problemas de perfilado de aplicaciones

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_appprof _tun

Nombre de archiv o: welc6tech_appprof _tun.html

Page 83: Ajuste_rendimiento

7.1. Ajuste de perfil de aplicacionesLa función de impresión rápida no da soporte a este tipo de documento o sitio externo.

Page 84: Ajuste_rendimiento

8. Ajuste de aplicaciones de clienteEsta página proporciona un punto de partida para buscar información sobre los clientes de aplicaciones y las aplicacionescliente. Los clientes de aplicaciones proporcionan una infraestructura en la que se ejecuta el código de aplicación, demodo que las aplicaciones cliente pueden acceder a la información sobre el servidor de aplicaciones.

Por ejemplo, una compañía de seguros puede utilizar clientes de aplicaciones para facilitar la descarga de trabajo en elservidor y realizar tareas específicas. Suponga que un agente de seguros desea acceder y compilar informes diariamente.Los informes se basan en las tasas de seguro que se encuentran en el servidor. El agente utiliza los clientes deaplicaciones para acceder al servidor de aplicaciones donde se encuentran las tasas de seguros. Más introducción...

Adición de rastreos y registros cronológicos para clientes autónomos

Puede añadir rastreos y registros cronológicos para facilitar el análisis del rendimiento y el diagnóstico deproblemas en clientes autónomos.

Información relacionadaVías de acceso de extremo a extremo para aplicaciones de clienteAdministración de aplicaciones de clienteProtección de aplicaciones de clienteDesarrollo de aplicaciones de clienteAplicaciones clienteResolución de problemas de aplicaciones de cliente

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_cli_tun

Nombre de archiv o: welc6tech_cli_tun.html

Page 85: Ajuste_rendimiento

8.1. Adición de rastreos y registros cronológicos para clientes autónomosPuede añadir rastreos y registros cronológicos para facilitar el análisis del rendimiento y el diagnóstico de problemas enclientes autónomos.

Acerca de esta tareaEsta información se refiere a los siguientes clientes autónomos de WebSphere Application Server:

Cliente ligero para JMS con WebSphere Application ServerCliente ligero para EJB con WebSphere Application ServerCliente ligero para JAX­WS con WebSphere Application ServerCliente ligero para JAX­RPC con WebSphere Application Server

Procedimiento

Para habilitar el rastreo, utilice una propiedad del sistema de formato largo o corto.

Nota: Los valores de rastreo se determinan a partir de los valores de propiedades del sistema la primera vez que sellama a un cliente de WebSphere Application Server. Entonces se fijan los valores de rastreo. Por lo tanto, loscambios posteriores en los valores de propiedades del sistema no cambiarán los valores de rastreo que utiliza elcliente de WebSphere Application Server.

Para obtener más información, consulte Interfaz de usuario de rastreo para los clientes autónomos.

Para habilitar el FFDC (First Failure Data Capture), utilice una propiedad del sistema de formato largo o corto.

Nota: Los valores FFDC se determinan a partir de los valores de propiedades del sistema la primera vez que uncliente de WebSphere Application Server realiza una acción FFDC. Entonces se fijan los valores FFDC. Por lotanto, los cambios posteriores en los valores de propiedades del sistema no cambiarán los valores FFDC que utilizael cliente de WebSphere Application Server.

Para obtener más información, consulte Interfaz de usuario First Failure Data Capture para los clientes autónomos.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tcli_standaloneclient_trace

Nombre de archiv o: tcli_standaloneclient_trace.html

Page 86: Ajuste_rendimiento

9. Ajuste de recursos de acceso a datosEsta página proporciona un punto de partida para buscar información sobre el acceso a datos. Sistemas EIS (Sistemas deinformación empresarial) distintos utilizan métodos distintos para almacenar datos. Estos almacenes de datos deprograma de fondo podrían ser bases de datos relacionales, programas de transacciones de procedimiento o bases dedatos orientadas a objetos.

El producto IBM WebSphere Application Server flexible proporciona varias opciones para acceder a almacenes de datos deprograma de fondo del sistema de información:

Programación directa a la base de datos mediante la API de JDBC 4.0, la API de JDBC 3.0 o la API del paqueteopcional de JDBC 2.0.Programación a la transacción de programa de fondo de procedimiento mediante distintos conectores compatiblescon JCA (J2EE Connector Architecture) 1.0 ó 1.5.Programación en el bean de persistencia gestionada por bean (BMP) o acceso indirecto de los servlets al almacénde programa de fondo mediante la API JDBC o conectores compatibles con JCA.Uso de beans con persistencia gestionada por contenedores (CMP).Uso de los beans de acceso a datos de IBM, que también utilizan la API de JDBC, pero proporcionan un conjuntoamplio de funciones que ocultan gran parte de la complejidad asociada con el acceso a bases de datosrelacionales.

Los objetos SDO (Service Data Objects) simplifican la experiencia del programador con una abstracción universal demensajes y datos, mientras que el programador piensa en los datos en términos de documentos XML u objetos Java. Paralos programadores, los SDO eliminan la complejidad de la tecnología subyacente del acceso a datos (JDBC, RMI/IIOP,JAX­RPC, JMS, etc.) y de la tecnología del transporte de mensajes (java.io.Serializable, objetos DOM, SOAP, JMS, etc.).

Ajuste de datos

Información relacionadaVías de acceso de extremo a extremo para recursos de acceso a datosMigración de recursos de acceso a datosAdministración de recursos de acceso a datosScripts de recursos de acceso a datosProtección de recursos de acceso a datosDesarrollo de recursos de acceso a datosRecursos de acceso a datosResolución de problemas de recursos de acceso a datos

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_dat.dita_tun

Nombre de archiv o: welc6tech_dat_tun.html

Page 87: Ajuste_rendimiento

9.1. Ajuste de datos

Qué hacer a continuación

Ajuste de las agrupaciones de conexiones

Utilización de las agrupaciones de conexiones para aliviar la actividad general de la gestión de conexiones ydisminuir las tareas de desarrollo para el acceso de datos. Cada vez que una aplicación intenta acceder a unalmacén de programa de fondo como, por ejemplo, una base de datos, necesita recursos para crear, mantener yliberar una conexión en ese almacén de datos. Para reducir el trabajo que añade este proceso a los recursos deaplicación generales, el servidor de aplicaciones permite a los administradores establecer una agrupación deconexiones de programa de fondo en un servidor de aplicaciones que las aplicaciones pueden compartir. Laagrupación de conexiones distribuye la carga de la conexión entre varias peticiones de usuarios, con lo que seconservan los recursos de aplicación para futuras peticiones.

Soporte de throttle del flujo de mensajes para beans controlados por mensajes JCA 1.5

En este tema se describe cómo configurar el soporte de throttle para la entrega de mensajes de beans controladospor mensajes (MDB) que se despliegan como puntos finales de mensaje para los adaptadores de recursos deentrada JCA (Java EE (Java Platform, Enterprise Edition) Connector Architecture) Versión 1.5.

Ajuste de rendimiento de base de datos

El ajuste de rendimiento de base de datos puede influir drásticamente en la capacidad de proceso de la aplicación.Por ejemplo, si la aplicación requiere una gran simultaneidad (varias interacciones simultáneas con datos deprograma de fondo), una base de datos ajustada incorrectamente puede producir un cuello de botella. Las hebras deacceso a base de datos se acumulan en un registro de reserva cuando la base de datos no está configurada paraaceptar un número suficiente de solicitudes entrantes.

Parámetros de ajuste de acceso a datos

Para obtener un mayor rendimiento de la aplicación, puede ajustar algunos recursos de acceso a datos mediante laconsola administrativa de WebSphere Application Server.

Convenios de directorios

Las referencias en la información del producto a raíz_servidor_aplic, raíz_perfil y otros directoriosinfieren ubicaciones específicas de directorios por omisión. En este tema se describen los convenios que se utilizanpara WebSphere Application Server.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_data_tuning

Nombre de archiv o: container_data_tuning.html

Page 88: Ajuste_rendimiento

9.1.1. Ajuste de las agrupaciones de conexionesUtilización de las agrupaciones de conexiones para aliviar la actividad general de la gestión de conexiones y disminuir lastareas de desarrollo para el acceso de datos. Cada vez que una aplicación intenta acceder a un almacén de programa defondo como, por ejemplo, una base de datos, necesita recursos para crear, mantener y liberar una conexión en esealmacén de datos. Para reducir el trabajo que añade este proceso a los recursos de aplicación generales, el servidor deaplicaciones permite a los administradores establecer una agrupación de conexiones de programa de fondo en un servidorde aplicaciones que las aplicaciones pueden compartir. La agrupación de conexiones distribuye la carga de la conexiónentre varias peticiones de usuarios, con lo que se conservan los recursos de aplicación para futuras peticiones.

Acerca de esta tareaLa agrupación de conexiones puede reducir el tiempo de respuesta de cualquier aplicación que requiera conexiones,especialmente las aplicaciones basadas en Web. Si un usuario realiza una solicitud a un recurso a través de la Web, elrecurso accede a un origen de datos. Como los usuarios se conectan y desconectan con frecuencia con aplicaciones enInternet, las solicitudes de aplicación de acceso a datos pueden alcanzar un volumen considerable. Por lo tanto, la cargaadicional total del almacén de datos aumenta rápidamente para las aplicaciones basadas en Web y el rendimientodisminuye. No obstante, cuando se utilizan las posibilidades de agrupación de conexiones, las aplicaciones Web puedenaumentar el rendimiento hasta 20 veces sobre los resultados normales.

Evite problemas: No se da soporte a la agrupación de conexiones en un cliente de aplicaciones. El cliente deaplicaciones llama a la base de datos directamente y no a través de un origen de datos. Si desea utilizar la solicitudgetConnection() desde el cliente de aplicaciones, configure el proveedor JDBC en los descriptores de despliegue de clientede aplicaciones, utilizando Rational Application Developer o una herramienta de ensamblaje. La conexión se estableceentre el cliente de aplicaciones y la base de datos. Los clientes de aplicaciones no tienen ninguna agrupación deconexiones, pero es posible configurar valores de proveedor JDBC en los descriptores de despliegue de clientes.

Procedimiento

Evite un punto muerto de conexión. Puede producirse un punto muerto si la aplicación requiere más de unaconexión simultánea por hebra, y si la agrupación de conexiones de la base de datos no es suficientemente grandepara el número de hebras. Suponga que cada una de las hebras de aplicación requiere dos conexiones simultáneasde base de datos y el número de hebras es igual al tamaño máximo de la agrupación de conexiones. Los puntosmuertos pueden producirse cuando se cumple a la vez que:

Cada hebra tiene su primera conexión de base de datos y se utilizan todas.Todas las hebras están esperando una segunda conexión de la base de datos, y ninguna estaría disponibleporque todas las hebras están bloqueadas.

Para impedir el punto muerto en este caso, aumente el valor de número máximo de conexiones de la agrupación deconexiones de la base de datos al menos en una unidad. De esta forma se da soporte al menos a una de lashebras en espera para obtener una segunda conexión de base de datos y evitar así el escenario de punto muerto.

Para prevenir de forma general el punto muerto de la conexión, codifique las aplicaciones para utilizar sólo unaconexión por hebra. Si codifica la aplicación de forma que precise de C conexiones de bases de datos simultáneaspor hebra, la agrupación de conexiones debe tener soporte para al menos el número de conexiones siguiente,donde T es el número máximo de hebras:

T * (C ­ 1) + 1

Los valores de la agrupación de conexiones están directamente relacionados con el soporte del número deconexiones que ha especificado en la configuración del servidor de bases de datos. Si aumenta el número máximode conexiones en la agrupación y los valores correspondientes de la base de datos no se aumentan de acuerdo aello, la aplicación podría fallar. Los errores de excepciones SQL resultantes se mostrarán en las ubicacionessiguientes:

el archivo stderr.logUna causa común de conexión de punto muerto es el uso de la misma agrupación de conexiones por los servlets ypor los EJB (Enterprise JavaBeans) y si el servlet invoca el bean directa o indirectamente. Por ejemplo, un servletque obtiene una conexión JMS de la agrupación de conexiones, envía un mensaje al bean controlado por mensajes(MDB) y espera una respuesta. El MDB se ha configurado para utilizar la misma agrupación de conexiones que elservlet, por lo tanto, se necesita otra conexión de la agrupación para que el MDB envíe una respuesta al servlet. Losservlets y enterprise beans no comparten la misma agrupación de conexiones. Éste es un ejemplo clásico dehebras simultáneas (C), donde C=2 y T es el tamaño máximo de las agrupaciones de hebras de servlet y EJB.

Inhabilite la agrupación de conexiones.Para los adaptadores de recursos relacionales (RRAs), añada la propiedad personalizadadisableWASConnectionPooling para los orígenes de datos.

1. Pulse JDBC > Orígenes de datos.2. Pulse el nombre del origen de datos que desea configurar.3. Pulse Propiedades personalizadas bajo la cabecera Propiedades adicionales.4. Pulse Nuevo.5. Complete los campos necesarios con la siguiente información:

Nombre: disableWASConnectionPooling

Page 89: Ajuste_rendimiento

Valor: truePara otros adaptadores de recursos, consulte las especificaciones de enlace correspondientes al adaptadorde recursos a fin de configurar las aplicaciones para inhabilitar la agrupación de conexiones.

1. Inhabilite de forma programática la agrupación de conexiones mediante el adaptador de recursos.2. El servidor de aplicaciones utiliza el código siguiente para detectar la excepción

javax.resource.NotSupportedException e inhabilitar la agrupación de conexiones:

_managedFactory.matchManagedConnections(s,subject,cri); // 169059 174269 catch(javax.resource.NotSupportedException e)

Habilitación de la inclusión diferida. En el entorno del servidor de aplicaciones, el término inclusión diferida hacereferencia a la técnica en la que el servidor de aplicaciones espera hasta que se utilice una conexión antes deincluirla en el ámbito de la unidad de trabajo (UOW) de la aplicación.

Observe la ilustración siguiente de inclusiones diferidas:Un componente de aplicación que utiliza las inclusiones diferidas invoca el método getConnection desdeuna transacción global.El componente de aplicación no utiliza de modo inmediato la conexión.Cuando la aplicación emita la llamada de uso inicial de la conexión, el gestor de transacciones intercepta lallamada.El gestor de transacciones incluye el recurso XA para la conexión e invoca el método XAResource.start.El gestor de conexiones asociado al recurso XA envía la llamada a la base de datos.

En un escenario similar pero en el que el componente de aplicación no utiliza la inclusión diferida, el contenedor delcomponente incluye inmediatamente la conexión en la transacción. Esto supone una carga adicional sin motivoalguno para el servidor de aplicaciones debido a la actividad general asociada a dicha transacción. Para lasconexiones XA, esta actividad general incluye el protocolo de compromiso de dos fases, P2C, con el gestor derecursos.

La inclusión diferida permite un mayor rendimiento en el caso de que se obtenga una conexión, pero no se utilice,en el ámbito de UOW. Este método evita el coste que supone la participación de la transacción hasta el UOW enque se produzca la participación.

Consulte al proveedor del adaptador de recursos si debe saber si el adaptador de recursos proporciona esta función.El adaptador de recursos relacional del servidor de aplicaciones da soporte automáticamente a la inclusión diferida.

Incorporación de la inclusión diferida en el código:

La especificación JCA (Java EE (Java Platform, Enterprise Edition) Connector Architecture) Versión 1.5 denomina ala técnica de inclusión diferida la optimización de inclusión de transacciones poco activas. Este soporte seproporciona mediante una interfaz de marcador (LazyEnlistableManagedConnection) y un nuevo método en el gestorde conexiones (LazyEnlistableConnectionManager()):

package javax.resource.spi; import javax.resource.ResourceException; import javax.transaction.xa.Xid; interface LazyEnlistableConnectionManager // application server void lazyEnlist(ManagedConnection) throws ResourceException; interface LazyEnlistableManagedConnection // resource adapter

Controle el compartimiento de la agrupación de conexiones.

Puede utilizar la propiedad personalizada de agrupación de conexiones defaultConnectionTypeOverride oglobalConnectionTypeOverride para una fábrica de conexiones o un origen de datos determinado para controlar elcompartimiento de conexiones, o para establecer globalmente un tipo de conexión de origen de datos.

La propiedad defaultConnectionTypeOverride cambia el valor de compartimiento predeterminado de una agrupaciónde conexiones. Esta propiedad permite controlar el compartimiento de conexiones para búsquedas directas. Si lasreferencias de recursos se han configurado para este origen de datos y la fábrica de conexiones tienen prioridadsobre esta propiedad y se utilizan los valores de referencias de recursos. Por ejemplo: si una aplicación estáefectuando búsquedas directas, y no desea que se comparta la agrupación de conexiones, establezca estapropiedad en el valor para no compartir.

El valor especificado para la propiedad personalizada globalConnectionTypeOverride tiene prioridad sobre todos losotros valores de compartimiento de conexiones. Por ejemplo, si establece esta propiedad en no compartir, todas lassolicitudes de conexión tienen el valor no compartir para búsquedas directas y búsquedas de referencias derecursos. Esta propiedad le proporciona una forma rápida de probar las consecuencias de mover todas lasconexiones de una fábrica de orígenes de datos/conexiones al valor no compartir o compartir sin cambiar el valor delas referencias de recursos en todos los descriptores de despliegue de una aplicación. La propiedadglobalConnectionTypeOverride también permite desplazarse entre las conexiones compartidas y las no compartidaspara una fábrica de conexiones o un origen de datos determinado sin cambiar ninguna referencia de recurso.

Si especifica valores para las propiedades defaultConnectionTypeOverride y globalConnectionTypeOverride, sólo seutilizan los valores especificados para la propiedad globalConnectionTypeOverride para determinar el tipo de

compartimiento de conexión.

Page 90: Ajuste_rendimiento

compartimiento de conexión.

Para añadir estas nuevas propiedades personalizadas a los valores de una agrupación de conexiones de origen dedatos o de fábrica de conexiones, una propiedad personalizada nueva en la agrupación de conexiones, pulse en laconsola administrativa Proveedores de JDBC > Proveedor de controlador JDBC de DB2 Universal > Orígenesde datos > Origen de datos de controlador de JDBC de DB2 Universal > > Propiedades personalizadas >Nueva. A continuación, especifique defaultConnectionTypeOverride oglobalConnectionTypeOverride en el campo Nuevo y shared (compartir) o unshared (sin compartir) en elcampo Valor.

En esta información...

Conceptos relacionadosAgrupación de conexionesTipo de transacciones y comportamiento delas conexiones

Tareas relacionadasConfiguración de fábricas de conexiones deconectores Java EE en la consolaadministrativaInhabilitación de la agrupación de sentenciasConfiguración de un origen de datos con laconsola administrativa

Referencia relacionadaValores de agrupación de conexionesEstadísticas de conexiones y de agrupaciónde conexiones

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tdat_conpoolman

Nombre de archiv o: tdat_conpoolman.html

Page 91: Ajuste_rendimiento

9.1.2. Soporte de throttle del flujo de mensajes para beans controlados pormensajes JCA 1.5En este tema se describe cómo configurar el soporte de throttle para la entrega de mensajes de beans controlados pormensajes (MDB) que se despliegan como puntos finales de mensaje para los adaptadores de recursos de entrada JCA(Java EE (Java Platform, Enterprise Edition) Connector Architecture) Versión 1.5.

Antes de empezar

La regulación de mensajes como se describe en este tema no se aplica a los dos proveedores de mensajería compatiblescon JCA 1.5 que se proporcionan con WebSphere Application Server:

El proveedor de mensajería predeterminado.El proveedor de mensajería de WebSphere MQ.

Para el proveedor de mensajería predeterminado, configure la regulación de mensajes como se describe en las tareasrelacionadas. Para el proveedor de mensajería de WebSphere MQ, configure la regulación de mensajes estableciendo lapropiedad maximum server sessions en el panel de especificaciones de activación del proveedor de mensajería deWebSphere MQ, o la propiedad maxPoolSize al utilizar los mandatos wsadmin createWMQActivationSpec omodifyWMQActivationSpec.

Si tiene un proveedor de mensajería JMS compatible con JCA 1.5 de terceros, consulte a su proveedor si el método deregulación de mensajes descrito en este tema es adecuado para su proveedor de mensajería.

Acerca de esta tarea

En las instalaciones que utilizan adaptadores de recursos que implementan el soporte de entrega de mensajes JCA (JavaEE Connector Architecture) Versión 1.5, WebSphere Application Server proporciona el soporte de throttle de mensajespara controlar la entrega de mensajes a los beans controlados por mensajes (MDB) de punto final. Puede utilizar estesoporte para no sobrecargar el servidor con un flujo de mensajes de entrada.

El soporte de throttle de la entrega de mensajes se efectúa en base a cada bean controlado por mensajes limitando elnúmero máximo de instancias de punto final que puede crear el adaptador al que está enlazado MDB. Cuando el adaptadorintenta crear una instancia de punto final, se crea un proxy para la instancia MDB y se devuelve como permitido por laarquitectura JCA 1.5. Hay una correspondencia de uno a uno entre los proxies y las instancias de MDB y, al igual que enlas instancias de MDB, los proxies se agrupan en base a los valores máximo y mínimo del tamaño de la agrupaciónasociados al bean controlado por mensajes. El soporte de throttle se ejecuta a través de la gestión de la agrupación deproxies.

En el momento que el adaptador intenta crear un punto final, si el número de proxies de punto final creados es igual altamaño máximo de la agrupación, el proceso del adaptador createEndPoint devuelve una excepción de tipo Unavailable.Cuando esto sucede, el adaptador no puede emitir más solicitudes createEndPoint() hasta que se ha liberado comomínimo un punto final y se ha devuelto al servidor para que pueda volver a utilizarlo. De este modo, las instalacionespueden controlar el throttle de la entrega de mensajes en un MDB de JCA 1.5 basándose en el valor del tamaño máximode la agrupación asociada a cada bean controlado por mensajes JCA 1.5.

Puede especificar el tamaño de la agrupación mediante la propiedad del sistemacom.ibm.websphere.ejbcontainer.poolsize jvm para definir el tamaño mínimo y máximo de la agrupación de beans deentidad y beans controlados por mensajes sin estado. En el caso de un bean controlado por mensajes que dé soporte aJCA 1.5, el valor máximo del tamaño de la agrupación especificado limita el número de instancias de punto final demensajes que se pueden crear para dicho bean controlado por mensajes. Por ejemplo, si la instalación establece eltamaño máximo de una agrupación MDB de JCA 1.5 en 5, entonces como máximo se pueden entregar simultáneamente 5mensajes a 5 instancias del bean controlado por mensajes. Esta propiedad puede especificarse utilizando la herramientade scripts wsadmin o especificándola bajo la consola administrativa como una variable de entorno.

Procedimiento

1. Abra la consola administrativa.

2. Seleccione Servidores.

3. Seleccione Servidores de aplicaciones.

4. Seleccione el servidor que desee configurar.

5. En Infraestructura de servidor, pulse Java y gestión de procesos.

6. Seleccione Definición de proceso.

7. En Propiedades adicionales, seleccione Máquina virtual Java.

8. En Propiedades adicionales, seleccione Propiedades personalizadas.

9. Seleccione Nueva. Aparece un panel con tres campos de propiedades generales. Aquí es donde establece la

propiedad.

Page 92: Ajuste_rendimiento

propiedad.

10. En el campo Nombre, escriba com.ibm.websphere.ejbcontainer.poolsize.

11. Para rellenar el campo Valor, consulte en Propiedades de sistema del contenedor de EJB los valores posibles.

12. Después de definir el valor de la propiedad, seleccione Aceptar. Ahora se le solicitará que guarde los cambios queacaba de realizar.

13. Seleccione Guardar.

En esta información...

Tareas relacionadasAjuste de mensajeríaPropiedades avanzadas de la especificaciónde activación del proveedor de mensajeríade WebSphere MQConfiguración del soporte de throttle para elproveedor de mensajería por omisión

Referencia relacionada

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tdat_throttle

Nombre de archiv o: tdat_throttle.html

Page 93: Ajuste_rendimiento

10. Ajuste de aplicaciones EJBEsta página proporciona un punto de partida para buscar información sobre los enterprise beans.

Basados en la especificación EJB (Enterprise JavaBeans), los enterprise beans son componentes Java que generalmenteimplementan la lógica de empresa de las aplicaciones J2EE (Java 2 Platform, Enterprise Edition) además de los datos deacceso.

Ajuste del contenedor de EJB 2.1

Ajuste de aplicaciones Enterprise JavaBeans

Ajuste de aplicaciones que utilizan JPA (Java Persistence API)

Información relacionadaVías de acceso de extremo a extremo para aplicaciones EJBMigración de aplicaciones EJBAdministración de aplicaciones EJBProtección de aplicaciones EJBDesarrollo de aplicaciones EJBAplicaciones EJBResolución de problemas de aplicaciones EJB

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_ejb_tun

Nombre de archiv o: welc6tech_ejb_tun.html

Page 94: Ajuste_rendimiento

10.1. Ajuste del contenedor de EJB 2.1

Qué hacer a continuación

Ajuste del contenedor de EJB 2.1

Si utiliza las aplicaciones que afectan el tamaño de la memoria caché del contenedor de EJB (EnterpriseJavaBeans), es posible que el rendimiento de las aplicaciones se vea afectado por un valor de tamaño incorrecto. Lapersistencia gestionada por contenedor (CMP) se describe en este tema, aunque es importante saber que losbeans de entidad no están soportados en un módulo EJB 3.0.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_ejb_tuningejb21container

Nombre de archiv o: container_ejb_tuningejb21container.html

Page 95: Ajuste_rendimiento

10.1.1. Ajuste del contenedor de EJB 2.1Si utiliza las aplicaciones que afectan el tamaño de la memoria caché del contenedor de EJB (Enterprise JavaBeans), esposible que el rendimiento de las aplicaciones se vea afectado por un valor de tamaño incorrecto. La persistenciagestionada por contenedor (CMP) se describe en este tema, aunque es importante saber que los beans de entidad noestán soportados en un módulo EJB 3.0.

Conceptos relacionadosContenedores de EJB

Tareas relacionadasAjuste del entorno de servicio de aplicacionesGestión de contenedores de EJBVisión general de tareas: utilización de enterprise beans en aplicacionesAjuste de la memoria caché de EJB utilizando el servicio de rastreo

Tamaño de la memoria caché de EJB

La supervisión de TPV (Tivoli Performance Viewer) es un excelente modo de diagnosticar si el valor de tamaño de lamemoria caché de contenedor de EJB está ajustado correctamente para la aplicación.

Si la aplicación ha llenado la memoria caché dando lugar a desalojos, TPV mostrará una cadencia muy elevada del métodoejbStores llamado y, probablemente, una utilización de la CPU más baja de lo esperado en la máquina del servidor deaplicaciones.

Todas las aplicaciones que utilizan enterprise beans deben tener este valor ajustado a partir del valor predeterminado si lasiguiente fórmula da un resultado superior a 2000.

Tamaño_memoria_caché_EJB =(Número mayor de beans de entidad de opción B o C incluidos en una transacción * númeromáximo de transacciones simultáneas) + (Número mayor de beans de entidad de opción A exclusivos al que se espera que se acceda durante una carga detrabajo típica de la aplicación) +(Número de beans de sesión con estado activos durante una carga de trabajotípica) + (Número de tipos de SessionBean sin estado utilizados durante una carga detrabajo típica)

Donde:los beans de entidad de opción B y C sólo se mantienen en la memoria caché de EJB durante la duración de la transacciónen la que están incluidos. Por lo tanto, el primer términode la formula calcula el promedio de los requisitos de memoria caché de EJB para estostipos beans.

Los beans de entidad de opción A se mantienen en la memoria caché de EJB indefinidamentey sólo se eliminan de la memoria caché si empieza a haber más beans en la memoria cachéque el tamaño de memoria caché establecido. Si la aplicación utiliza beans de sólo lectura, considere estos beans como la Opción A para el cálculo del ajuste.

Los beans de sesión con estado se mantienen en la memoria caché de EJB hasta que laaplicación los elimina o se excede el valor de tiempo de espera de sesión.

Sólo se mantiene en la memoria caché una única instancia de bean de sesión sin estadopara cada tipo de EJB durante el tiempo en que cualquier método se ejecute en ese bean desesión sin estado. Si dos o más métodos se ejecutan simultáneamente en el mismo tipo debean de sesión sin estado, cada método se ejecuta en su propia instancia de bean, perosólo se utiliza una única ubicación para todas estas instancias.

Con esta formula se calcula el límite superior del número máximo posible de enterprise beans activos simultáneamente enel servidor de aplicaciones. Como la memoria caché del contenedor de EJB está diseñada para contener todos estosbeans con el fin de lograr la optimización del rendimiento, el mejor rendimiento sólo podrá alcanzarse estableciendo estetamaño de memoria caché en un valor mayor que el número que resulte del cálculo anterior.

<Parámetro de ajuste>Este valor puede encontrarse bajo Servidores > Servidores de aplicaciones >nombre_servidor > Contenedor EJB > Valores de memoria caché de EJB

Page 96: Ajuste_rendimiento

Asimismo, mientras se ajusta el tamaño de memoria caché de EJB, el parámetro de hebra de gestión de contenedor deEJB puede ajustarse para satisfacer las necesidades de la aplicación. La hebra de gestión se controla mediante el valor deIntervalo de limpieza. Este valor controla la frecuencia con la que una hebra de daemon incluida en el producto intentaeliminar instancias de bean de la memoria caché que no se han utilizado recientemente con el fin de mantener el númerode instancias de bean igual al tamaño de memoria caché o por debajo. Esto garantiza que el contenedor de EJB coloque ybusque elementos en la memoria caché rápidamente. Generalmente lo mejor es dejar este intervalo establecido en el valorpredeterminado; sin embargo, en algunos casos, se recomienda comprobar si existe alguna ventaja en la reducción deeste intervalo.

Para obtener más información sobre cómo ajustar aún más la memoria caché de EJB utilizando el servicio de rastreo dememoria caché de EJB, consulte el tema que trata sobre el ajuste de la memoria caché de EJB y el uso del servicio derastreo.

Ajuste de bean de sesión con estado de EJB

Los valores de tiempo de espera excedido del bean de sesión con estado se pueden configurar utilizando una herramientade ensamblaje. Para WebSphere Application Server Versión 5.1 y posterior, el valor predeterminado es de 600 segundos.Si este valor predeterminado no es aceptable, puede cambiarlo en el editor del descriptor de despliegue EJB de laherramienta. Los beans de sesión sin estado no tienen un valor de tiempo de espera excedido porque no tienen estadoconversacional y no están dedicados a ningún cliente específico.

No puede establecer el valor de tiempo de espera excedido de manera global, o en el servidor, de modo que el valor seaplique a todos los beans de sesión con estado. Sólo puede establecer el tiempo de espera en base a cada bean.

Dcom.ibm.websphere.ejbcontainer.poolSize

Si la aplicación está utilizando la mayor parte de las instancias de la agrupación, TPV lo indica. Cuando es así, el tamañode las agrupaciones de beans que se están agotando debe incrementarse. Esta acción se puede realizar mediante laadición de este parámetro en el distintivo de propiedades personalizadas de la JVM.

­Dcom.ibm.websphere.ejbcontainer.poolSize=<nombre_aplicación>#<nombre_módulo>#<nombre_enterprisebean>=<tamañoMín>,<tamañoMáx>

donde: <nombre_aplicación> es el nombre de aplicación J2EE como se define en el descriptor de despliegue del archivo .ear de la aplicación, para el bean cuyo tamañode agrupación se está estableciendo

<nombre_módulo> es el nombre del archivo .jar del módulo EJB para el bean cuyotamaño de agrupación se está estableciendo,

<nombre_bean> es el nombre de J2EE Enterprise Bean como se define en el módulo EJB para el bean cuyo tamañode agrupación se está estableciendo

<tamañoMín> es el número de instancias de bean que el contenedor mantiene en laagrupación, independientemente de la longitud que los beanshayan tenido en la agrupación (los beans que superan este número se eliminan de la agrupación tarde o temprano para optimizar la utilización de la memoria)

<tamañoMáx> es el número de instancias de bean de la agrupación en la que nose colocan más instancias de beans una vez utilizadas (esto es, una vez la agrupación tiene este tamaño, se descartan los beans adicionales en lugar de añadirlos a la agrupación; de este modo, se garantiza que los beans de la agrupación tienen un límite superior y, por lo tanto, el uso de la memoria no aumenta de forma ilimitada.

Para mantener el número de instancias de una agrupación en un tamaño fijo, tamañoMín ytamañoMáx pueden establecerse en el mismo número. Tenga en cuenta que existe unaagrupación de instancias independiente para cada tipo EJB que se ejecute en el servidorde aplicaciones y que cada agrupación carece de instancias inicialmente, es decir, elnúmero de instancias crece a medida que los beans se utilizan y se colocan en laagrupación. Cuando el contenedor necesita una instancia de bean y no hay ningún beandisponible en la agrupación, el contenedor crea una nueva instancia de bean, la utiliza yla coloca en la agrupación (a menos que ya existan instancias tamañoMáx en laagrupación).

Por ejemplo, la sentencia­Dcom.ibm.websphere.ejbcontainer.poolSize=ivtApp#ivtEJB.jar#ivtEJBObject=125,1327

establecería tamañoMín en 125 y tamañoMáx en 1327 en el bean denominado "ivtEJBObject"

Page 97: Ajuste_rendimiento

del archivo ivtEJB.jar de la aplicación "ivtApp".

Donde ivtApp se sustituye por el nombre de aplicación actual, el archivo ivtEJB.jar se sustituye por el archivo JAR quecontenga el bean para el que sea necesario un aumento del tamaño de agrupación y ivtEJBObject es el nombre de beandel enterprise bean cuyo tamaño de agrupación debe aumentarse. El número mínimo de beans que se mantienen en laagrupación es 125. El número máximo de beans que se mantienen en la agrupación es 1327. Estos deben establecersepara que no se produzcan más desalojos en la agrupación y, en la mayoría de los casos, deben establecerse en el mismovalor si la memoria está muy llena, ya que así no se produce un aumento ni reducción de la agrupación.

Dcom.ibm.websphere.ejbcontainer.noPrimaryKeyMutation

Debe tener buenos conocimientos sobre cómo la aplicación maneja la creación de objetos de clave primaria para que losutilicen los beans CMP y los beans BMP (persistencia gestionada por bean) dentro del producto. El contenedor de EJB deIBM utiliza la clave primaria de un bean de entidad como identificador dentro de numerosas estructuras de datos internaspara optimizar el rendimiento. Sin embargo, el contenedor de EJB debe copiar estos objetos de clave primaria en el primeracceso al bean para garantizar que los objetos almacenados en las memorias caché internas estén separados de los quese utilizan en una aplicación para mantener la coherencia de las estructuras internas, en caso de que la aplicaciónmodifique la clave primaria. Si la aplicación no modifica ninguna de las claves primarias para crear beans de entidad yacceder a ellos después de su creación, se puede utilizar un distintivo especial que permite al contenedor de EJB pasarpor alto la copia del objeto de clave primaria, ahorrando ciclos de la CPU y un rendimiento creciente. Este mecanismopuede habilitarse bajo su responsabilidad añadiendo la propiedad –D al campo de propiedades personalizadas de la JVM.

<Parámetro de ajuste>­Dcom.ibm.websphere.ejbcontainer.noPrimaryKeyMutation=true

Las ventajas de rendimiento de esta optimización dependen de la aplicación. Si la aplicación utiliza tipos primitivos paralas claves primarias de los enterprise beans, no se logra nada ya que estos objetos ya son inmutables y el mecanismo decopia los tiene en cuenta. No obstante, si la aplicación utiliza numerosas claves primarias complejas, es decir, un objetopara una clave primaria o varios campos, este parámetro puede dar lugar a importantes mejoras.

Dcom.ibm.ws.pm.deferredcreate

El contenedor de EJB utiliza el gestor de persistencia para que persistan los datos en la base de datos de los beans deentidad CMP. Al crear beans de entidad llamando al método ejbCreate, el gestor de persistencia por omisión insertainmediatamente la fila vacía sólo con la clave primaria en la base de datos. En la mayoría de los casos, después de lacreación del bean, debe modificar los campos del bean creado o de otros beans incluidos en la misma transacción. Sidesea posponer la inserción en la base de datos hasta el final de la transacción para evitar un viaje a la base de datos,establezca el distintivo –D en el campo de propiedades personalizadas de la JVM. Los datos se insertan en la base dedatos y se conserva la coherencia.

<Parámetro de ajuste>­Dcom.ibm.ws.pm.deferredcreate=true

Las ventajas de rendimiento de esta optimización dependen de la aplicación. Si las transacciones de aplicaciones EJBrealizan numerosas inserciones, la aplicación puede beneficiarse de esta optimización. Si la aplicación realiza pocasinserciones, las ventajas de esta optimización serán menores.

Dcom.ibm.ws.pm.batch

Cuando una aplicación EJB accede a varios beans CMP incluidos en una única transacción, y en función de lasoperaciones realizadas en los beans (como actualizaciones, inserciones y lecturas), el número de operaciones emitidas ala base de datos se corresponde directamente con las operaciones realizadas en los beans CMP. Si el sistema de basede datos que está utilizando da soporte al proceso por lotes de sentencias actualizadas, puede habilitar este distintivo yaumentar el rendimiento en todas las interacciones con la base de datos que impliquen más de dos actualizaciones enuna única transacción.

Este distintivo permite que el gestor de persistencia reúna todas las sentencias en una única sentencia por lotes, que seemite seguidamente a la base de datos. Esta acción evita recorridos completos a la base de datos, aumentando elrendimiento. Si está al corriente de que la aplicación puede actualizar varios beans CMP en una única transacción y deque la base de datos da soporte a las actualizaciones por lotes, puede establecer el distintivo –D en el campo depropiedades personalizadas de la JVM.

<Parámetro de ajuste>­Dcom.ibm.ws.pm.batch=true

Las ventajas de rendimiento de esta optimización dependen de la aplicación. Si la aplicación nunca o casi nunca actualizalos beans CMP o sólo actualiza un único bean por transacción, no se produce una mejora del rendimiento. Si la aplicaciónactualiza varios beans por transacción, este parámetro mejora el rendimiento de las aplicaciones.

Tabla 1. Bases de datos de programa de fondo que soportan una actualización por lotes. La tabla siguientelista las bases de datos de programa de fondo que dan soporte a la actualización por lotes.

Soporta la

Page 98: Ajuste_rendimiento

Base de datosactualización porlotes

Soporta la actualización por lotes con el control desimultaneidad optimista

DB2 sí no

Oracle sí no

Controlador DB2Universal

sí sí

Informix sí sí

SQLServer sí sí

Apache Derby sí sí

Nota: La actualización por lotes con OCC no se puede realizar para las bases de datos que no dan soporte a la misma,incluso si ha especificado mediante el intento de acceso.

com.ibm.ws.pm.useLegacyCache

Especifica el nombre de la clase Java que utiliza el producto para implementar la interfaz javax.rmi.CORBA.UtilDelegate.

El gestor de persistencia tiene dos tipos de mecanismos de memoria caché: memoria caché de legado y memoria cachéde dos niveles. Normalmente la memoria caché de dos niveles tiene un mejor rendimiento que la memoria caché de legadodebido a las optimizaciones de esta modalidad. El valor por omisión es la memoria caché de legado, aunque serecomienda la memoria caché de dos niveles. Establezca esta configuración mediante la propiedad del sistema

com.ibm.ws.pm.useLegacyCache=false

com.ibm.ws.pm.grouppartialupdate and com.ibm.ws.pm.batch

La característica de actualizaciones parciales mejora el rendimiento de las aplicaciones con enterprise beans endeterminados casos. El gestor de persistencia tiene dos mecanismos de almacenamiento en memoria caché disponibles,la memoria caché de legado y la memoria caché de dos niveles. Normalmente la memoria caché de dos niveles tiene unmejor rendimiento que la memoria caché de legado debido a las optimizaciones de esta modalidad.

En determinadas aplicaciones en las que necesita realizar actualizaciones por lotes y actualizaciones parciales, debeconfigurar las siguientes propiedades del sistema para beneficiarse de ambas:

‘com.ibm.ws.pm.grouppartialupdate=true'y ‘com.ibm.ws.pm.batch=true'

Tema de referencia

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=rprf _ejbcontainer

Nombre de archiv o: rprf _ejbcontainer.html

Page 99: Ajuste_rendimiento

10.2. Ajuste de aplicaciones Enterprise JavaBeans

Qué hacer a continuación

Ajuste de la memoria caché de EJB utilizando el servicio de rastreo

El tamaño de su memoria caché de Enterprise JavaBeans (EJB) puede afectar el rendimiento del servidor deaplicaciones. Uno de los pasos al ajustar el contenedor EJB para obtener niveles de rendimiento óptimos es ajustarla memoria caché de EJB.

Colas de invocación del método EJB

Las invocaciones de métodos a enterprise beans sólo se ponen en cola para clientes remotos, haciendo unallamada de método. Un ejemplo de cliente remoto es un cliente EJB (Enterprise JavaBean) que se ejecuta en unamáquina virtual Java (JVM) distinta (otro espacio de direcciones) de la del enterprise bean. Por el contrario, no seutilizan colas si el cliente EJB, ya sea un servlet u otro enterprise bean, está instalado en la misma JVM en la quese ejecuta el método EJB y en la misma hebra de ejecución que el cliente EJB.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_ejb_tuning

Nombre de archiv o: container_ejb_tuning.html

Page 100: Ajuste_rendimiento

10.2.1. Ajuste de la memoria caché de EJB utilizando el servicio de rastreoEl tamaño de su memoria caché de Enterprise JavaBeans (EJB) puede afectar el rendimiento del servidor de aplicaciones.Uno de los pasos al ajustar el contenedor EJB para obtener niveles de rendimiento óptimos es ajustar la memoria caché deEJB.

Acerca de esta tareaA continuación se describe cómo utilizar el servicio de rastreo de diagnóstico para ayudarle a determinar el tamaño dememoria caché más adecuado para su equipo.

Procedimiento

1. Habilite el rastreo de memoria caché de EJB. Para obtener información sobre cómo trabajar con el servicio derastreo, consulte el tema Trabajar con el rastreo. Para obtener información sobre los valores del servicio de rastreo,consulte el tema Valores del servicio de rastreo de diagnóstico.

Configure el rastreo para utilizar esta serie de rastreo:

com.ibm.ejs.util.cache.BackgroundLruEvictionStrategy=all=enabled:com.ibm.ejs.util.cache.CacheElementEnumerator=all=enabled

Establezca Tamaño máximo de archivo en 200 MB o más. Si deja el valor predeterminado de 20 MB, podríallenar el registro cronológico de rastreo único de 20 MB y perder algunos datos debido a la acomodación del rastreo.

Establezca Número máximo de archivos históricos en 5. Cinco archivos deben ser suficientes, pero si ve quelos cinco archivos están llenos y se produce una acomodación del rastreo, aumente este valor.

2. Detenga el servidor, suprima los archivos de registros cronológicos existentes y, a continuación, inicie el servidor.

3. Ejecute casos de ejemplo corrientes para capturar los datos de rastreo de memoria caché. Mediante la ejecuciónde un caso de ejemplo corriente con el rastreo habilitado, obtendrá los datos de rastreo de memoria caché de EJBpara analizar en los pasos siguientes.

4. Visualice y analice la salida del rastreo.

a. Abra el registro cronológico de rastreo. Busque una o las dos series de rastreo siguientes que aparecen:

BackgroundLru 3 EJB Cache: Sweep (1,40) ­ Cache limit not reached : 489/2053BackgroundLru > EJB Cache: Sweep (16,40) ­ Cache limit exceeded : 3997/2053 Entry

En las series de rastreo que incluyen las palabras Cache limit (Límite de memoria caché) encontrará unaproporción. Por ejemplo, 3997/2053. El primer número es el número de enterprise beans que actualmenteestán en la memoria caché de EJB (se denomina capacidad). El segundo número es el valor de memoriacaché de EJB (en pasos posteriores aparece más información sobre esto). Utilizará esta proporción,particularmente la capacidad, en el análisis.

Además, busque las sentencias Cache limit not reached (No alcanzado el límite de memoria caché) y Cachelimit exceeded (Superado el límite de memoria caché).

Cache limit not reached (No alcanzado el límite de memoria caché)La memoria caché tiene un tamaño mayor o igual que el adecuado. Si es mayor, está malgastandomemoria y debe reducir el tamaño de memoria caché a un valor más adecuado, como se describe másabajo.

Cache limit exceeded (Superado el límite de memoria caché)El número de beans actualmente en uso es mayor que la capacidad especificada, que indica que lamemoria caché no está ajustada adecuadamente. La capacidad puede superar el valor de memoria cachéde EJB porque éste no tiene un límite estricto. El contenedor de EJB no deja de añadir beans a la memoriacaché cuando se alcanza el límite. Hacerlo podría significar que cuando la memoria caché está llena, nose satisfaría una solicitud de un bean o se retardaría al menos hasta que la memoria caché estuviera pordebajo del límite. En su lugar, se puede superar el límite de memoria caché, pero el contenedor de EJBintenta limpiar la memoria caché y conservarla por debajo del tamaño de memoria caché de EJB.

En el caso donde se supera el límite de memoria caché, podría ver un punto de rastreo similar a este:

BackgroundLru < EJB Cache: Sweep (64,38) ­ Evicted = 50 : 3589/2053 Exit

Fíjese en la serie Evicted =. Si ve esta serie, está utilizando beans de sesión con estado o beans deentidad configurados para la opción A o B de colocación en memoria caché. Objetos desalojados (Evicted)significa que no está aprovechando completamente la opción de colocación en memoria caché que haelegido. El primer paso es intentar aumentar el tamaño de memoria caché de EJB. Si la ejecucióncontinuada de la aplicación provoca más desalojos, significa que la aplicación accede o crea más beansnuevos entre barridos de memoria caché de EJB de los que la memoria caché puede contener y NO

Page 101: Ajuste_rendimiento

reutiliza los beans existentes. En este punto, quizá prefiera considerar utilizar la opción C de colocaciónen memoria caché para los beans de entidad o comprobar la aplicación para ver si no elimina los beans desesión con estado cuando ya no los necesita.

Nota: Los beans de entidad configurados con la opción C de colocación en memoria caché sólo están enmemoria caché mientras se está en una transacción y es necesario conservarlos en la memoria cachédurante toda la transacción. Por lo tanto, nunca se desalojan durante un barrido de memoria caché, perose eliminan de memoria caché cuando finaliza la transacción. Además, si utiliza sólo beans de sesión sinestado o beans de entidad con la opción C de colocación en memoria caché (o ambas), quizá prefieraaumentar el intervalo de limpieza de la memoria caché de EJB en un número mayor. El intervalo delimpieza se puede establecer tal como se describe en los valores de memoria caché DE EJB. Los beansde sesión sin estado NO están en la memoria caché de EJB y dado que los beans de entidad que utilizanla opción C de colocación en memoria caché nunca se desalojan mediante la estrategia de colocación enmemoria caché (LRU), realmente no es necesario realizar el barrido muy a menudo. Cuando se utilizansólo los beans de sesión sin estado o la opción C de colocación en memoria caché, sólo debe aparecer"Evicted = 0" en el ejemplo de rastreo mostrado antes.

b. Analice el registro cronológico de rastreo. Busque la serie de rastreo Cache limit exceeded (Superado ellímite de memoria caché).

Podría encontrar más de una instancia de esta serie. Revíselas todas para encontrar el valor demáxima capacidad de beans en la memoria caché de EJB. Vuelva a establecer el tamaño de memoriacaché de EJB aproximadamente en un 110% de este número. En un paso posterior se describe cómose establece el tamaño de memoria caché de EJB.Puede que no encuentre ninguna instancia de esta serie. Esto significa que no ha superado lacapacidad de la memoria caché de EJB (que es su objetivo final), pero no haberlo visto durante suanálisis inicial también podría significar que la memoria caché es demasiado grande y utiliza memoriainnecesaria. En este caso, todavía tendrá que ajustar la memoria caché disminuyendo el tamaño dememoria caché hasta que se supere el límite de ésta y luego aumentarlo hasta el valor óptimo. En unpaso posterior se describe cómo se establece el tamaño de memoria caché de EJB.

Su objetivo último es establecer el límite de memoria caché en un valor que no malgaste recursos, pero quetampoco esté en exceso. De modo que, una buena configuración proporciona un rastreo en el que sóloaparece el mensaje Cache limit not reached (No se ha alcanzado el límite de memoria caché) y un númerode capacidad de proporción puede estar próximo, pero por debajo de, el 100% del valor de memoria caché deEJB.

Nota: Se recomienda no establecer el tamaño de memoria caché en un valor inferior al que toma por omisiónde 2053.

5. Modifique los valores de memoria caché basándose en el análisis. Consulte los valores de memoria caché de EJBpara obtener información sobre cómo hacerlo.

6. Detenga el servidor, suprima todos los archivos de registros cronológicos y, a continuación, reinicie el servidor.

7. Repita los pasos anteriores hasta que esté satisfecho con los valores.

8. Inhabilite el rastreo de memoria caché de EJB. Con la memoria caché correctamente ajustada, puede eliminar elrastreo, eliminar los archivos de registros cronológicos anteriores y reiniciar el servidor.

Qué hacer a continuación

Desde el análisis, se puede establecer la memoria caché de EJB de forma óptima desde una perspectiva de contenedor deEJB, pero quizá no de forma óptima desde una perspectiva de WebSphere Application Server. Un tamaño de memoriacaché mayor proporciona más coincidencias y mejor rendimiento de memoria caché de EJB, pero utiliza más memoria. Lamemoria utilizada por la memoria caché no está disponible para otras áreas del producto, que potencialmente provocanque se vea afectado el rendimiento global. En un sistema con una amplia memoria, esto no sería un problema y si seajusta correctamente la memoria caché de EJB podría aumentar el rendimiento global. No obstante, debe tener en cuentaeste rendimiento del sistema frente al rendimiento de la memoria caché de EJB al configurar la memoria caché.

En esta información...

Tareas relacionadasCómo trabajar con el rastreo

Referencia relacionadaValores de antememoria de EJB

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Page 102: Ajuste_rendimiento

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tejb_tunecash

Nombre de archiv o: tejb_tunecash.html

Page 103: Ajuste_rendimiento

10.3. Ajuste de aplicaciones que utilizan JPA (Java Persistence API)

Qué hacer a continuación

Configuración de la antememoria dinámica OpenJPA para mejorar el rendimiento

La implementación OpenJPA ofrece a los usuarios la opción de almacenar en la memoria los datos utilizados confrecuencia a fin de mejorar el rendimiento. OpenJPA proporciona antememorias de datos y de consultasconcurrentes que permiten que las aplicaciones guarden en la memoria los datos de los objetos persistentes y losresultados de las consultas para que se compartan entre las hebras o para su uso en consultas futuras.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_jpa_tuning

Nombre de archiv o: container_jpa_tuning.html

Page 104: Ajuste_rendimiento

10.3.1. Configuración de la antememoria dinámica OpenJPA para mejorar elrendimientoLa implementación OpenJPA ofrece a los usuarios la opción de almacenar en la memoria los datos utilizados confrecuencia a fin de mejorar el rendimiento. OpenJPA proporciona antememorias de datos y de consultas concurrentes quepermiten que las aplicaciones guarden en la memoria los datos de los objetos persistentes y los resultados de lasconsultas para que se compartan entre las hebras o para su uso en consultas futuras.

Antes de empezar

Acerca de esta tarea

Funciones de la antememoria de datos OpenJPA

La memoria caché OpenJPA es una memoria caché de datos de objetos persistentes que funciona a nivel deEntityManagerFactory. Esta memoria caché de uso opcional está diseñada para aumentar el rendimiento y es totalmentecompatible con el estándar JPA (Java Persistence API). Esto significa que cuando se habilita la opción de antememoria sepuede mejorar el rendimiento de la aplicación, sin cambios en el código. La antememoria de datos OpenJPA se hadiseñado para proporcionar un rendimiento mucho mejor en las operaciones sin antememoria y garantiza uncomportamiento idéntico en las operaciones habilitadas para antememoria y en las operaciones sin antememoria.

Cuando se habilita, se examina la antememoria antes de acceder al almacén de datos. La antememoria almacena losdatos cuando se comprometen los objetos y cuando se cargan los objetos persistentes desde el almacén de datos. Sitrabaja en un entorno JVM (Java Virtual Machine), la JVM mantiene y comparte una memoria caché de datos entre todaslas instancias de EntityManager obtenidas de una EntityManagerFactory concreta. La antememoria de datos OpenJPA nopuede hacerlo en un entorno distribuido debido a que las antememorias de las JVM diferentes, creadas a partir de objetosEntityManagerFactory diferentes, no se sincronizarán. Para utilizar la memoria caché OpenJPA en un entorno de variasJVM es necesario utilizar la infraestructura de notificación de sucesos o la integración personalizada con programas deutilidad de memoria caché distribuida de terceros como, por ejemplo, IBM ObjectGrid.

Habilitación e inhabilitación de la memoria caché de datos OpenJPA

Puede habilitar la memoria caché de datos OpenJPA para uno o para varios entornos de JVM, establecer su tamaño deelementos por omisión, incluidas las referencias a software y especificar valores de tiempo de espera.

Para establecer y configurar la memoria caché de datos OpenJPA, efectúe lo siguiente:1. Para habilitar la memoria caché de una sola JVM, establezca la propiedad openjpa.DataCache en true y establezca

la propiedad openjpa.RemoteCommitProvider en sjvm:

<property name="openjpa.DataCache" value="true"/><property name="openjpa.RemoteCommitProvider" value="sjvm"/>

Para habilitar la memoria caché en un entorno distribuido, se debe configurar openjpa.RemoteCommitProvider deforma específica para el entorno o se puede utilizar un programa de utilidad de gestión de memoria caché deterceros.

2. El tamaño máximo de la memoria caché se puede ajustar estableciendo la propiedad CacheSize:

<property name="openjpa.DataCache" value=true(CacheSize=5000...

De manera predeterminada, la memoria caché de datos OpenJPA contiene 1000 elementos. Los objetos que seasocian a la memoria caché no se cuentan cuando se determina si el tamaño de la memoria caché supera eltamaño máximo. Si se desborda la memoria caché, se desalojan los elementos aleatorios. Puede conservar loselementos desalojados durante más tiempo con la propiedad SoftReferenceSize. De manera predeterminada, lasreferencias de software son ilimitadas. Si es necesario, puede limitar el número de referencias de software oestablecer el valor en 0 para inhabilitar por completo las referencias de software:

<property name="openjpa.DataCache" value="true(CacheSize=5000 SoftReferenceSize=0 ...

3. Puede especificar que una memoria caché se debe borrar en determinados momentos. La propiedadEvictionSchedule de la implementación de la memoria caché OpenJPA acepta una planificación de desalojo de tipocron. El formato cron especifica el minuto, la hora del día, el día del mes y el día de la semana, comenzando por 1para domingo. El símbolo de asterisco (*) indica una coincidencia completa. Para planificar una memoria caché demodo que realice el desalojo a las 3 horas y 45 minutos PM del domingo cada mes, debe añadir esta propiedad:

<property name="openjpa.DataCache" value="true(CacheSize=5000 SoftReferenceSize=0 EvictionSchedule='15,45 * * 1'")/>

Nota: También puede especificar un valor de tiempo de espera de memoria caché para una clase individualestableciendo la extensión de los metadatos de tiempo de espera en la cantidad de tiempo en milisegundos queson válidos los datos de la clase. Consulte el Javadoc org.apache.openjpa.persistence.DataCache para obtener más

información.

Page 105: Ajuste_rendimiento

información.

Después de configurar la memoria caché de datos, puede utilizarla para reiniciar la aplicación.

Renovar con DataCache activo

Renovar una entidad puede generar diversas reacciones en función de si se utiliza o no DataCache cuando se actualiza ose suprime el registro correspondiente en la base de datos de un proceso independiente o una parte de la mismaaplicación. De manera predeterminada, las entidades se renuevan desde la base de datos cuando DataCache está activo.Por lo tanto, con la configuración predeterminada, la renovación se comporta del mismo modo con o sin DataCache. Sinembargo, se puede configurar una unidad de persistencia para renovar las actividades de DataCache con la propiedadopenjpa.RefreshFromDataCache para obtener un mayor rendimiento. Con esta configuración, las modificacionesfuera de banda que se produzcan en el registro de la base de datos no aparecerán en el estado renovado de la entidad.

Nota: Independientemente del valor openjpa.RefreshFromDataCache, DataCache siempre se omite de la renovacióncuando los bloqueos están activos, como en el caso de una transacción pesimista en un contexto de persistencia. Unaaplicación puede activar openjpa.RefreshFromDataCache, pero aún así puede omitir DataCache al renovar unaentidad, si desaloja explícitamente dicha entidad de DataCache antes de la renovación.

Funciones de almacenamiento en memoria caché de consultas

OpenJPA proporciona una memoria caché de consultas concurrente que permite que las aplicaciones guarden los datosde los objetos persistentes y los resultados de las consultas en la memoria para que se compartan entre las hebras y parautilizarlos en las consultas futuras. La memoria caché de consultas almacena los ID de objeto que devuelven lasejecuciones de las consultas. Cuando se ejecuta una consulta, OpenJPA ensambla una clave basándose en laspropiedades de la consulta y en los parámetros utilizados durante la ejecución y comprueba si existe un resultado de laconsulta almacenado en la memoria caché. Si no se encuentra ninguno, se buscan los ID de objeto del resultadoalmacenado en la memoria caché y se devuelven los objetos resultantes con capacidad de persistencia. De lo contrario, laconsulta se ejecuta en la base de datos y los ID de objeto que ha cargado la consulta se colocan en la memoria caché.

Configuración o inhabilitación de la memoria caché de consulta

Puede configurar los valores de la memoria caché de consulta del mismo modo que para la memoria caché de datos. Lainterfaz proporcionada para la memoria caché de consultas es la claseorg.apache.openjpa.persistence.QueryResultCache. Puede acceder a esta clase a través deOpenJPAEntityManagerFactory.

La implementación de la memoria caché de consultas por omisión almacena en la memoria caché 100 ejecuciones deconsultas en la memoria caché menos utilizada recientemente. Esto se puede modificar estableciendo el tamaño de lamemoria caché en la propiedad del plugin CacheSize. Al igual que la memoria caché de datos, la memoria caché deconsultas también tiene una correlación de referencias de software de respaldo que se puede modificar utilizando lapropiedad SoftReferenceSize. Para mantener las consultas en la memoria caché en todo momento, puede asociarlas auna memoria caché. Para cambiar las propiedades de la memoria caché de consultas, efectúe lo siguiente:

1. Modifique la propiedad CacheSize de openjpa.QueryCache:

<property name="openjpa.QueryCache" value=("CacheSize=1000, ...

2. Cambie la propiedad SoftReferenceSize para habilitar y controlar el tamaño de esta correlación:

<property name="openjpa.QueryCache" value=("CacheSize=1000,SoftReferenceSize=100")/>

La tabla SoftReferenceSize está inhabilitada por omisión. Al establecer el tamaño, éste se habilita.3. Asocie o desasocie consultas a la memoria caché mediante QueryResultCache utilizando esta sintaxis:

public void pin(Query q);public void unpin(Query q);

Si modifica estas propiedades podrá utilizar mejor la memoria caché de consultas.

Ampliación de una antememoria

OpenJPA proporciona clases que se pueden ampliar para mejorar las funciones.Como se ha mencionado anteriormente, si desea implementar una memoria caché distribuida que utiliza un métodono soportado para comunicaciones, cree una implementación de org.apache.openjpa.event.RemoteCommitProvider.Si está añadiendo un comportamiento nuevo, debe ampliar org.apache.openjpa.datacache.DataCacheImpl.Para utilizar su propio mecanismo de almacenamiento, amplíe org.apache.openjpa.datacache.AbstractDataCache.Para añadir funciones de consulta, puede ampliar org.apache.openjpa.datacache.QueryCacheImpl por omisión.Implemente su propio mecanismo de almacenamiento para los resultadosorg.apache.openjpa.datacache.AbstractQueryCache

Memoria caché SQL de la consulta OpenJPA

OpenJPA ofrece una memoria caché que proporciona el almacenamiento en caché de series SQL utilizadas por las

operaciones de búsqueda que se realizan en el gestor de entidades y de algunas consultas para gestionar eficazmente las

Page 106: Ajuste_rendimiento

operaciones de búsqueda que se realizan en el gestor de entidades y de algunas consultas para gestionar eficazmente lasrelaciones extraídas. Cuando esta memoria caché está habilitada, las consultas SQL utilizadas por estas operaciones segeneran una vez por cada fábrica del gestor de entidades y se pueden reutilizar. Esta memoria caché está habilitada demanera predeterminada, pero también se puede configurar mediante la propiedad de configuraciónopenjpa.jdbc.QuerySQLCache.

Configuración o inhabilitación de la memoria caché de la consulta SQL

La memoria caché SQL de la consulta se puede configurar o inhabilitar mediante lapropiedadopenjpa.jdbc.QuerySQLCache. De forma predeterminada, esta propiedad se establece en true. Cuando seestablece en true, la memoria caché se habilita y utiliza la clase org.apache.openjpa.util.CacheMap para sualmacén de memoria caché. CacheMap es una memoria caché gestionada, lo que implica que limita el número deentradas de la memoria caché y tiene un esquema de desalojo de memorias caché para gestionar el uso de memorias. Sila memoria caché se establece en true, toda la clase org.apache.openjpa.lib.util.ConcurrentHashMap seutiliza como almacenamiento en caché. ConcurrentHashMap no es una memoria caché gestionada, por lo que lasentradas se mantienen en la memoria caché mientras exista la fábrica del gestor de entidades. Este mecanismo dealmacenamiento en caché puede proporcionar un mayor rendimiento si utiliza una mayor cantidad de memoria. También sepuede especificar una clase de almacenamiento en caché, siempre que implemente la interfaz java.util.Map. Parainhabilitar la memoria caché, especifique el valor false. Consulte los ejemplos siguientes sobre cómo configurar o inhabilitarla memoria caché de consultas SQL:

Para utilizar una memoria caché no gestionada:

<property name="openjpa.jdbc.QuerySQLCache" value="all"/>

Para especificar una clase de memoria caché personalizada:

<property name="openjpa.jdbc.QuerySQLCache" value="com.mycompany.MyCustomCache"/>

Para utilizar una memoria caché no gestionada:

<property name="openjpa.jdbc.QuerySQLCache" value="false"/>

Qué hacer a continuaciónConsulte el capítulo 10, Almacenamiento en memoria caché de la referencia OpenJPA.

En esta información...

SubtemasDesarrollo y empaquetado de aplicacionesJPA para un entorno Java SE

Tareas relacionadasVisión general de la tarea: almacenamiento yrecuperación de datos persistentes con JPA(Java Persistence API)

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tejb_datcacheconf ig.dita

Nombre de archiv o: tejb_datcacheconf ig.html

Page 107: Ajuste_rendimiento

11. Ajuste de recursos de mensajeríaEsta página proporciona un punto de partida para obtener información acerca de cómo utilizar los recursos de mensajeríaasíncrona para las aplicaciones de empresa con WebSphere® Application Server.

WebSphere Application Server ofrece soporte a la mensajería asíncrona basándose en las especificaciones JMS (JavaTMMessage Service) y Java EE Connector Architecture (JCA), que proporcionan un procedimiento común para los programasJava (clientes y aplicaciones Java EE) para crear, enviar recibir y leer solicitudes asíncronas, como mensajes.

El soporte de JMS permite que las aplicaciones intercambien mensajes de forma asíncrona con otros clientes JMSutilizando destinos de JMS (colas o temas). Algunos proveedores de mensajería también permiten que las aplicaciones deWebSphere Application Server utilicen el soporte JMS para intercambiar asíncronamente mensajes con aplicaciones queno son JMS; por ejemplo, las aplicaciones de WebSphere Application Server necesitan a menudo intercambiar mensajescon aplicaciones WebSphere MQ. Las aplicaciones pueden sondear explícitamente mensajes de destinos JMS o puedenutilizar beans controlados por mensajes para recuperar automáticamente mensajes de destinos JMS sin sondearmensajes explícitamente.

WebSphere Application Server ofrece soporte a los siguientes proveedores de mensajería:

Proveedor de mensajería predeterminado de WebSphere Application Server (utiliza la integración de servicios comoproveedor)El proveedor de mensajería de WebSphere MQ (que utiliza como proveedor el sistema WebSphere MQ)Otros proveedores de mensajería que implementan un adaptador de recursos JCA Versión 1.5 o el componente ASFde la especificación JMS Versión 1.0.2.

Más introducción...

Ajuste de mensajería

Pasos que deben seguirse para ajustar la mensajería asíncrona.

Información relacionadaVías de acceso de extremo a extremo para recursos de mensajeríaMigración de recursos de mensajeríaAdministración de recursos de mensajeríaScripts para recursos de mensajeríaProtección de recursos de mensajeríaDesarrollo de recursos de mensajeríaRecursos de mensajeríaResolución de problemas de recursos de mensajería

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_msg

Nombre de archiv o: welc6tech_msg_tun.html

Page 108: Ajuste_rendimiento

11.1. Ajuste de mensajeríaPasos que deben seguirse para ajustar la mensajería asíncrona.

Acerca de esta tarea

Para ajustar la mensajería asíncrona, siga uno o varios de los pasos siguientes.

Procedimiento

Configure el throttle de MDB para un proveedor de mensajería compatible con JCA 1.5.Para el proveedor de mensajería predeterminado, realice la tarea Configuración de MDB del proveedor demensajería predeterminado.Para el proveedor de mensajería de WebSphere MQ, establezca la propiedad de número máximo de sesionesde servidor en el panel de especificaciones de activación del proveedor de mensajería de WebSphere MQ ola propiedad maxPoolSize al utilizar los mandatos wsadmin createWMQActivationSpec omodifyWMQActivationSpec.Para un proveedor de mensajería JMS compatible con JCA 1.5 de terceros, consulte el método genérico deregulación de mensajes descrito en Soporte de throttle del flujo de mensajes para beans controlados pormensajes JCA 1.5.

Dimensionamiento de las agrupaciones de hebras que utiliza el proveedor de mensajería de WebSphere MQ.

Este paso no es necesario para el fixpack 5 o posterior puesto que la agrupación de hebrasWMQCommonServices ya no se utiliza.

En esta información...

SubtemasAjuste del tamaño de las agrupaciones dehebras utilizadas por el proveedor demensajería de WebSphere MQSoporte de throttle del flujo de mensajespara beans controlados por mensajes JCA1.5

Tareas relacionadasConfiguración del soporte de throttle de MDBpara el proveedor de mensajeríapredeterminado

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tmj_tuning

Nombre de archiv o: tmj_tuning.html

Page 109: Ajuste_rendimiento

11.1.1. Ajuste del rendimiento de mensajería con las tecnologías deintegración de serviciosPara ayudarle a optimizar el rendimiento, puede establecer las propiedades de ajuste que controlan el rendimiento de losbeans controlados por mensajes y otras aplicaciones de mensajería desplegadas para utilizar las tecnologías deintegración de servicios.

Acerca de esta tarea

Para optimizar el rendimiento de la mensajería con las tecnologías de integración de servicios, puede utilizar la consolaadministrativa para establecer distintos parámetros, tal como se describe en los pasos que aparecen a continuación.También puede establecer estos parámetros utilizando la herramienta wsadmin.

Procedimiento

Visualice el recuento de mensajes disponibles en un destino.

Visualizar el recuento de mensajes disponibles en un destino permite determinar si los consumidores de mensajespueden manejar la carga de trabajo actual. Si el recuento de mensajes disponibles en un destino determinado esdemasiado alto, o aumenta con el tiempo, debería tener en cuenta las recomendaciones de ajusta de este tema.

1. Habilite las estadísticas AvailableMessageCount para una cola. Si reinicia el servidor administrativo, vuelva ahabilitar las estadísticas AvailableMessageCount porque dichos valores de ejecución no se conservan cuandose reinicia el servidor.

a. En el panel de navegación, pulse Supervisión y ajuste > Performance Monitoring Infrastructure(PMI).

b. En el panel de contenido, pulse nombre_servidor.c. Pulse la pestaña Tiempo de ejecución.d. En el conjunto de estadísticas supervisadas actualmente, pulse Personalizar.e. En el panel Personalizar nivel de supervisión, pulse Servicio SIB > Motores de mensajería SIB >

nombre_motor > Destinos > Colas > nombre_cola.f. Seleccione la opción AvailableMessageCount.g. Pulse Habilitar en la parte superior del panel.

2. Visualice el recuento de mensajes disponibles para una cola.a. En el panel de navegación, pulse Supervisión y ajuste > Visor de rendimiento > Actividad

actual.b. En el panel de contenido, pulse nombre_servidor.c. Pulse Módulos de rendimiento > Servicio SIB > Motores de mensajería SIB > nombre_motor

> Destinos > Colas > nombre_cola.d. Pulse Ver módulo(s) en la parte superior del panel Selección de recursos, situado en el lado

izquierdo. Se visualizan los datos de AvailableMessageCount en el panel Supervisión de datos,situado en el lado derecho.

Puede utilizar el panel Supervisión de datos para gestionar la recopilación de datos de supervisión; porejemplo, puede utilizar los botones para iniciar o detener los registros cronológicos o modificar losdatos visualizados como tabla o gráfico.

Supervise el tamaño de la agrupación de hebras de los MDB para el proveedor de mensajería predeterminado

Es posible que se produzca un cuello de botella en el rendimiento, si no hay disponibles suficientes hebras para losbeans controlados por mensajes. Hay un intercambio entre suministrar hebras suficientes para maximizar laproductividad de mensajes y configurar demasiadas hebras, lo que puede conducir a una carencia de CPU de lashebras del servidor de aplicaciones. Si observa que la productividad de mensajería express no persistente, fiable nopersistente, o fiable persistente ha caído como resultado del aumento del tamaño de la agrupación de hebraspredeterminada, debe reducir el tamaño de la agrupación de hebras y reevaluar la productividad de mensajes.

1. Visualice o modifique el número de hebras en la agrupación de hebras predeterminada para un servidor deaplicaciones. De forma predeterminada,los beans controlados por mensajes utilizan la agrupación de hebraspredeterminada.

a. Pulse Servidores > Tipos de servidor > WebSphere Application Servers > nombre_servidor> [Propiedades adicionales] Agrupaciones de hebras > Predeterminado. De formapredeterminada,el valor de Tamaño mínimo se establece en 5 y el valor de Tamaño máximo seestablece en 20. El mejor rendimiento se obtiene estableciendo el valor de Tamaño máximo en laconcurrencia máxima esperada para todos los beans controlados por mensajes. Para una altaproductividad utilizando un bean controlado por mensajes, se ha encontrado que 41 es el valor óptimode tamaño máximo.

b. Cambie el valor de tamaño máximo y, a continuación, pulse Aceptar.

2. Opcional: Cree su propia agrupación de hebras. La agrupación de hebras predeterminada también esutilizada por otros componentes WebSphere Application Server, de forma que es posible que desee definir

Page 110: Ajuste_rendimiento

una agrupación de hebras diferente para los beans controlados por mensajes. Esto reduce la contienda dehebras para la agrupación de hebras predeterminada.

a. Pulse Servidores > Tipos de servidor > WebSphere Application Servers > nombre_servidor> [Propiedades adicionales] Agrupaciones de hebras.

b. Cree una nueva agrupación de hebras.c. Cree hebras suficientes para soportar la cantidad máxima de trabajo simultáneo para los beans

controlados por mensajes.d. Cambie el adaptador de recursos JMS SIB para utilizar la nueva agrupación de hebras:

i. Pulse Recursos > Adaptadores de recursos > Adaptadores de recursos.ii. Si no puede ver ninguna instancia del adaptador de recursos JMS SIB en la lista, expanda

Preferencias y habilite Mostrar recursos incorporados.iii. Seleccione el Adaptador de recursos JMS SIB con el ámbito apropiado en función del ámbito

de las fábricas de conexiones.iv. Añada el nombre de la nueva agrupación de hebras en el recuadro Alias de agrupación de

hebras.v. Pulse Aplicar.

3. Guarde los cambios en la configuración maestra.

Ajuste el rendimiento MDB con el proveedor de mensajería predeterminado.

1. Pulse Recursos > JMS > Especificaciones de activación > nombre_especificación_activación.

2. Establezca el tamaño de lote máximo para esta especificación de activación.

La entrega de lotes de mensajes a cada punto final MDB puede mejorar el rendimiento, especialmente,cuando se utiliza con la modalidad de reconocimiento establecida en Reconocimiento automáticocorrecto de duplicados. Sin embargo, si se debe conservar el orden de los mensajes en las entregascon anomalías, establezca este parámetro en 1.

3. Establezca el número máximo de puntos finales simultáneos para esta especificación de activación.

El parámetro máximo de puntos finales simultáneos controla la cantidad de trabajo simultáneo que puede serprocesado por un bean de mensaje. El parámetro se utiliza con los beans controlados por mensajes. Siaumenta el número de puntos finales simultáneos puede mejorar el rendimiento pero puede aumentar elnúmero de hebras que se utilizan al mismo tiempo. Para que modificar este parámetro resulte recomendable,debe haber suficientes hebras disponibles en la agrupación de hebras del MDB que admitan el trabajosimultáneo. Sin embargo, si se debe conservar el orden de los mensajes en las entregas con anomalías,establezca este parámetro en 1.

4. Guarde los cambios en la configuración maestra.

Si desea información adicional sobre el ajuste de regulación de los beans controlados por mensajes, incluido elcontrol del número máximo de instancias de cada bean de mensajes y el tamaño del lote de mensajes para laentrega en serie, consulte Configuración de la regulación de del proveedor de mensajería predeterminado.

Asegúrese de que los servidores de aplicaciones que alojan uno o varios motores de mensajería se proporcionancon una cantidad apropiada de memoria para la productividad de mensajes que necesita.

Puede ajustar los tamaños inicial y máximo del almacenamiento dinámico de la máquina virtual Java (JVM) cuandoañada un servidor a un bus de mensajería, es decir, cuando cree un motor de mensajería. Tiene la opción de hacerloen cualquiera de los siguientes casos:

Al añadir un solo servidor a un busAl añadir un clúster a un busAl añadir un nuevo servidor a un clúster existente que, a su vez, es un miembro de bus.

Para un servidor de aplicaciones que es un miembro de bus de al menos un bus, o un miembro de un clúster que esun miembro de bus de al menos un bus, los tamaños inicial y máximo recomendados del almacenamiento dinámicoson 768 MB.

Cuando se añade un clúster a un bus, se recomienda aumentar los tamaños inicial y máximo del almacenamientodinámico de la JVM para cada servidor del clúster a 768 MB.

Aumentar el tamaño inicial del almacenamiento dinámico mejora el rendimiento para tamaños de mensajemedios pequeñosAumentar el tamaño máximo del almacenamiento dinámico mejora el rendimiento para tamaños de mensajemedios altos

Reduzca la aparición de excepciones OutOfMemoryError

Si el tamaño acumulativo del conjunto de mensajes que el bus de integración de servicios procesa en unatransacción es lo suficientemente grande para agotar el almacenamiento dinámico de la JVM, se producenexcepciones de OutOfMemoryError. Considere una de las siguientes opciones para reducir la aparición deexcepciones OutOfMemoryError al procesar un conjunto grande de mensajes dentro de una transacción.

Page 111: Ajuste_rendimiento

Aumente los tamaños del almacenamiento dinámico de la JVM para el servidor de aplicaciones.Reduzca el tamaño acumulativo del conjunto de mensajes que se procesan en la transacción.

Cambie el número máximo de conexiones en una fábrica de conexiones para el proveedor de mensajeríapredeterminado.

El parámetro Número máximo de conexiones limita el número de conexiones locales. Toma de formapredeterminada 10. Este parámetro debe establecerse en un número igual o mayor que el número de hebras(enterprise beans) que envían mensajes simultáneamente.

1. Pulse Recursos > JMS > Fábricas de conexiones de tema > nombre_fábrica > [Propiedadesadicionales] Propiedades de agrupación de conexiones.

2. Especifique el valor necesario en el campo Número máximo de conexiones.3. Pulse Aplicar.4. Guarde los cambios en la configuración maestra.

Ajuste los niveles de fiabilidad para los mensajes.

El nivel de fiabilidad elegido para los mensajes tiene un impacto significativo en el rendimiento. Con objeto dedisminuir el rendimiento (primero los más rápidos), los niveles de fiabilidad son:

Mejor esfuerzo no persistente

Express no persistente

Fiable no persistente

Fiable persistente

Seguro persistente

Para la mensajería punto a punto MDB, el rendimiento del mejor esfuerzo no persistente es más de seis vecesmayor que la de seguro persistente. Para obtener más información sobre los niveles de fiabilidad, consulte Nivelesde fiabilidad de mensajes: modalidad de entrega JMS y calidad de servicio de integración de servicios.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjn0026_

Nombre de archiv o: tjn0026_.html

Page 112: Ajuste_rendimiento

11.1.2. Configuración de la regulación de del proveedor de mensajeríapredeterminadoUtilice esta tarea para configurar la regulación de mensajes para beans controlados por mensajes que se ha desplegadocomo recursos JCA 1.5 en el proveedor de mensajería predeterminado.

Antes de empezar

El soporte de regulación que se describe en este tema sólo se aplica al proveedor de mensajería predeterminado (eladaptador de recursos JMS de integración de servicios).

Para el proveedor de mensajería de WebSphere MQ, configure la regulación de mensajes mediante el establecimiento dela propiedad Número máximo de sesiones de servidor en el panel de especificaciones de activación del proveedor demensajería de WebSphere MQ, o la propiedad maxPoolSize si utiliza los mandatos createWMQActivationSpec omodifyWMQActivationSpec de wsadmin.

Si tiene un proveedor de mensajería JMS compatible con JCA 1.5 de terceros, consulte Regulación del flujo de mensajesde entrada para los beans controlados por mensaje JCA 1.5.

Acerca de esta tarea

Utilice esta tarea si desea regular los mensajes para un bean controlado por mensajes desplegado como un recurso J2EEConnector Architecture (JCA) 1.5 en el proveedor de JMS de mensajería predeterminado.

El proveedor de mensajería predeterminado (el adaptador de recursos JMS de integración de servicios) utiliza un tipoespecial de regulación de mensajes. Puede dejar las agrupaciones de beans controlados por mensajes en el valorpredeterminado, que es 500.

El proveedor de mensajería predeterminado permite la regulación de la entrega de mensajes a un bean controlado pormensajes a través de la opción de configuración Máximo de puntos finales simultáneos en la especificación deactivación JMS que se utiliza para desplegar el bean.

El número máximo de instancias de cada bean controlado por mensajes está controlado por el valor de Máximo depuntos finales simultáneos en la especificación de activación utilizada para desplegar el bean controlado pormensajes. Este límite máximo de simultáneos ayuda a evitar que una acumulación temporal de mensajes inicie undemasiadas instancias de MDB. De forma predeterminada, el número máximo de instancias de MDB simultáneasse establece en 10.

El campo Máximo de puntos finales simultáneos limita el número de puntos finales (instancias de un beancontrolado por mensajes determinado) que procesa mensajes de forma simultánea. Si se ha alcanzado el máximo,no se aceptarán nuevos mensajes en el motor de mensajería para su entrega hasta que un punto final finalice suproceso actual.

Si el recuento de mensajes disponibles (profundidad de cola) asociado con un bean controlado por mensajes esfrecuentemente algo y si el servidor puede manejar más trabajo simultáneamente, puede beneficiarse de unaumento del valor máximo de simultaneidad.

Si se establece un valor máximo de simultaneidad para un bean controlado por mensajes, asegúrese de queespecifica un valor más pequeño que el número máximo de instancias de punto final que el adaptador al que estáenlazado el bean controlado por mensajes puede crear. Si es necesario, aumente el límite de instancias de puntofinal.

Una especificación de activación también tiene un Tamaño máximo de lote que hace referencia a cuántosmensajes se pueden asignar a un punto final en un lote para la entrega en serie. Por ejemplo, si ha establecido lapropiedad Máximo de puntos finales simultáneos en 10 y la propiedad Tamaño máximo de lote en 3, puede haber unmáximo de 10 puntos finales, cada uno de los cuales procesará un máximo de 3 mensajes, lo que da un total de 30mensajes asignados a ese bean controlado por mensajes. Si hay varios beans controlados por mensajesdesplegados para una sola especificación de activación, estos valores máximos se aplicarán a cada beancontrolado por mensajes individualmente.Asegúrese de establecer siempre la propiedad Máximo de puntos finales simultáneos en un valor inferior al tamañode agrupación JCA.

Nota: Es posible que desee ajustar la regulación de los beans controlados por mensajes, que es especialmenteimportante en z/OS. La carga de trabajo que llega al destino del que consume el bean controlado por mensajes podríautilizar más recursos de servidor y, por lo tanto, obstruir otras actividades. Un ejemplo de esto sería al reiniciaraplicaciones de MDB que se encuentran en los registros cronológicos de reserva de mensajes. Se puede regular el númerode mensajes de modo que el bean controlado por mensajes los pueda procesar de la manera más eficaz.

Para configurar el soporte de regulación de los mensajes del proveedor de mensajería predeterminado, (el adaptador derecursos JMS del bus de integración de servicios), utilice la consola administrativa para completar los pasos siguientes.

Procedimiento

Ajuste el número máximo de instancias de un bean controlado por mensajes.

Page 113: Ajuste_rendimiento

El valor máximo de simultaneidad se establece en la especificación de activación utilizada para desplegar el beancontrolado por mensajes.

1. Pulse Recursos > Adaptadores de recursos > Especificaciones de activación J2C >nombre_especificación_activación > > [Propiedades adicionales] Propiedadespersonalizadas de la especificación de activación J2C.

2. Visualice la propiedad personalizada maxConcurrency. El valor predeterminado es 10. Según las pruebas deMDB primitivas de alta productividad, se ha encontrado que 40 es un valor óptimo.

3. Opcional: Para cambiar el valor de maxConcurrency, pulse el campo de valor. Se visualiza un panel paraque escriba un nuevo valor. En el campo Valor, escriba el nuevo valor y, a continuación, pulse Aceptar.Guarde los cambios en la configuración maestra.

Ajuste el tamaño máximo de lote para un bean controlado por mensajes.

De forma predeterminada, sólo se entrega un mensaje a una instancia de bean controlado por mensajes cada vez.Puede mejorar el rendimiento procesando los mensajes por lotes en el bean controlado por mensajes. Cadainstancia de bean controlado por mensajes recibe un número (entre 1 y el tamaño de lote) de mensajes cada vez.Es probable que un cambio en el número máximo de simultaneidad sea beneficioso si el recuento de mensajesdisponibles (profundidad de cola) asociados con el bean controlado por mensajes es frecuentemente alto. Si deseamás información sobre el recuento de mensajes disponibles, consulte Visualización del recuento de mensajesdisponibles en un destino. El tamaño máximo de lote se establece en la especificación de activación utilizada paradesplegar el bean controlado por mensajes.

1. Pulse Recursos > Adaptadores de recursos > Especificaciones de activación J2C >nombre_especificación_activación > > [Propiedades adicionales] Propiedadespersonalizadas de la especificación de activación J2C.

2. Visualice la propiedad personalizada maxBatchSize. El valor predeterminado es 1. Para las pruebas de MDBprimitivas de alta productividad, se ha encontrado que 5 es el valor óptimo (que proporciona una ganancia del20 por cierto sobre el tamaño de lote 1).

3. Opcional: Para cambiar el valor de maxBatchSize, pulse el campo de valor. Se visualiza un panel para queescriba un nuevo valor. En el campo Valor, escriba el nuevo valor y, a continuación, pulse Aceptar. Guardelos cambios en la configuración maestra..

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjn0027_

Nombre de archiv o: tjn0027_.html

Page 114: Ajuste_rendimiento

11.1.3. Ajuste del tamaño de las agrupaciones de hebras utilizadas por elproveedor de mensajería de WebSphere MQUtilice esta tarea para calcular el número de agrupaciones de hebras que requiere el proveedor de mensajería deWebSphere MQ.

Acerca de esta tarea

Esta tarea no es necesaria para el fixpack 5 o posterior desde la agrupación de hebras WMQCommonServicesya no se utiliza.

Prácticamente todo el trabajo que realiza el proveedor de mensajería de WebSphere MQ utiliza las hebras de la agrupaciónde hebras de WMQCommonServices. De manera predeterminada, esta agrupación de hebras tiene un tamaño máximo de40 hebras en un entorno de servidor de aplicaciones y 10 hebras en un entorno de cliente. Si se supera el número dehebras, es posible que el trabajo sometido por el proveedor de mensajería de WebSphere MQ no se complete y queaparezcan errores en la salida de los archivos de anotaciones cronológicas. Si los registros cronológicos del sistemacontienen uno o más mensajes con una clave de mensaje CWSJY0011W, la agrupación de hebras está alcanzando sucapacidad máxima. Cuando la agrupación de hebras alcanza su capacidad máxima, uno o más mensajes con una clavede CWSJY0010E se envían a los registros cronológicos.

Para evitar que se agote la capacidad de la agrupación de hebras, utilice las directrices siguientes para dimensionarcorrectamente la agrupación de hebras para el entorno de aplicación.

Procedimiento

1. Entorno de servidor de aplicaciones

Si está utilizando una fábrica de conexiones de proveedores de menssajería de WebSphere MQ, una fábrica deconexiones de temas o una fábrica de conexiones de la cola y se dan las condiciones siguientes:

La fábrica de conexiones se ha habilitado para la confirmación de dos fases.La modalidad de transporte es bindings, o la modalidad de transporte es bindings, then client yse utiliza una conexión de modalidad de enlaces

entonces:Se requiere una hebra para cada conexión. Permita suficientes hebras para llenar la agrupación deconexiones, que tiene un tamaño máximo predeterminado de 10.Se requiere una hebra para cada sesión. Permita suficientes hebras para llenar la agrupación de sesiones,que tiene un tamaño máximo predeterminado de 10. Hay una agrupación de sesiones para cada conexión dela agrupación de conexiones.

Por ejemplo, cada fábrica de conexiones del proveedor de mensajería de WebSphere MQ, cuya modalidad detransporte es bindings y está habilitada para el compromiso en dos fases, requiere 110 hebras.

Nota: La información anterior no es aplicable a WebSphere Application Server para z/OS, aunque utilice una fábricade conexiones que se haya habilitado para confirmación de dos fases.

Si está utilizando una fábrica de conexiones del proveedor de mensajería de WebSphere MQ, una fábrica deconexiones de temas o una fábrica de conexiones de la colas y se da alguna de las condiciones siguientes:

La modalidad de transporte es cliente.La modalidad de transporte es enlaces sino cliente y se utiliza una conexión de modalidad decliente.

entonces:Se requiere una hebra para cada conexión. Permita suficientes hebras para llenar la agrupación deconexiones, que tiene un tamaño máximo predeterminado de 10.Se requiere una hebra para cada sesión. Permita suficientes hebras para llenar la agrupación de sesiones,que tiene un tamaño máximo predeterminado de 10. Hay una agrupación de sesiones para cada conexión dela agrupación de conexiones.

Por ejemplo, cada fábrica de conexiones del proveedor de mensajes de WebSphere MQ con una modalidad detransporte de bindings, then client, y que utilice una conexión de modalidad cliente, necesita 110 hebras.

Si utiliza las especificaciones de activación del proveedor de mensajería deWebSphere MQ en cualquiera de lascircunstancias siguientes:

Entregar mensajes a beans controlados por mensajes dentro de una transacción con cualquier tipo detransporte.Utiliza una modalidad de transporte de cliente y no existe ninguna transacción.Utiliza una modalidad de transporte de enlaces sino cliente, una conexión de modalidad de cliente, yno existe ninguna transacción.

entonces:Se requiere una hebra para cada instancia de bean controlado por mensajes (MDB) en ejecución. El númerode instancias lo determina el valor de número máximo de sesiones en una especificación de activación del

Page 115: Ajuste_rendimiento

proveedor de mensajería de WebSphere MQ. El valor predeterminado es 10.Se requiere una hebra para cada cinco instalaciones de MDB, si todos se conectan al mismo gestor decolas. El valor por omisión para el valor connectionConcurrency del proveedor de mensajería de WebSphereMQ es 5. Para obtener más información acerca de cómo establecer el valor de connectionConcurrency,consulte el centro de información de WebSphere MQ.Se requiere una hebra adicional para llevar a cabo el envío de mensajes si la modalidad de transporte escliente, o la modalidad de transporte es enlaces sino cliente y se utiliza una conexión demodalidad de cliente.

Por ejemplo, cada especificación de activación del proveedor de mensajería de WebSphere MQ, cuya modalidad detransporte es client y está habilitada para el compromiso en dos fases, requiere 12 hebras.

Si utiliza los puertos de escucha de mensajes que utilizan los recursos del proveedor de mensajería deWebSphereMQ para entregar mensajes a los MDB, debe tener en cuenta la agrupación de hebras para las conexiones ysesiones que utilizan las instancias del puerto de escucha de mensajes.

el puerto de escucha de mensajes utiliza una sesión para cada sesión de servidor. Por omisión, existe una sesiónde servidor para cada instancia de puerto de escucha de mensajes.

Si se dan las dos condiciones siguientes:El puerto de escucha de mensajes utiliza una fábrica de conexiones del proveedor de mensajería deWebSphere MQ habilitada para el compromiso en dos fases.La modalidad de transporte es enlaces o enlaces sino cliente y se utiliza una conexión demodalidad de enlaces.

entonces:Se requiere una hebra para cada conexión que se utiliza en una instancia del puerto de escucha demensajes. Esta hebra es para la escucha de excepciones con la que está registrada.Se requiere una hebra para cada sesión.

Si la fábrica de conexiones del proveedor de mensajería de WebSphere MQ tiene una modalidad de transporteclient, o tiene una modalidad de transporte o bindings, then client y se utiliza una conexión demodalidad de cliente, se requiere una hebra independientemente de si la fábrica de conexiones está habilitada paraconfirmación de dos fases.

Se requiere una hebra para cada instancia del puerto de escucha de mensajes de la hebra de envío que utiliza elobjeto de consumidor de conexión, si se cumplen las condiciones de puerto de escucha de mensajes siguientes:

El puerto de escucha de mensajes utiliza una fábrica de conexión del proveedor de mensajería deWebSphere MQLa modalidad de transporte es de cliente, o la modalidad de transporte es de enlaces sino clientey se utiliza la modalidad de conexión de cliente.

Nota: Para cada MDB instalado que se configura para utilizar un puerto de escucha de mensajes determinado, hayuna única instancia del puerto de escucha de mensajes. Por ejemplo, si se han configurado tres MDB para utilizarel mismo puerto de escucha de mensajes, habrá tres instancias del puerto de escucha de mensajes.

Si instala un único MDB para que utilice un puerto de escucha de mensajes que utiliza una fábrica de conexionesdel proveedor de mensajería de WebSphere MQ en modalidad bindings, y que está habilitada para laconfirmación de dos fases, necesitará al menos cuatro hebras:

Una hebra para la conexión.Una hebra para la sesión que se utiliza dentro de la sesión de servidor, utilizada por el puerto de escucha demensajes.Una hebra para la escucha de excepciones.Una hebra para el consumidor de conexión.

No obstante, si se detiene y se inicia el MDB, puede que se recupere otra conexión diferente y, por tanto, otroconjunto de sesiones de la agrupación. Debe permitir 112 hebras: 10 para la agrupación de conexión, 100 para lasagrupaciones de sesiones, una para la escucha de excepciones y una para el consumidor de conexión.

2. Entorno de cliente de aplicaciones

En un entorno de cliente de aplicaciones, las reglas de los requisitos de hebras son parecidas a las del entorno deservidor de aplicaciones. No obstante, las reglas se simplifican porque no se utilizan las agrupaciones deconexiones y sesiones, y las fábricas de conexiones no pueden participar en una transacción. Para la mayoría delos clientes de aplicaciones, el tamaño máximo predeterminado de la agrupación de hebras de 10 debería sersuficiente.

Si utiliza una fábrica de conexiones, una fábrica de conexiones de cola o una fábrica de conexiones de tema delproveedor de mensajería de WebSphere MQ, y se cumplen cualquiera de las condiciones siguientes:

La modalidad de transporte es cliente.La modalidad de transporte es enlaces sino cliente y se utiliza una conexión de modalidad decliente.

entonces:

Page 116: Ajuste_rendimiento

Se requiere una hebra para cada conexión.Se requiere una hebra para cada sesión.

Si está registrando una implementación de escucha de mensajes con una sesión para el envío asíncrono demensajes, se requiere una hebra adicional si la fábrica de conexiones del proveedor de mensajería de WebSphereMQ que ha creado la sesión tiene una modalidad de transporte client, o tiene una modalidad de transportebindings, then client y se utiliza una conexión de modalidad de cliente.

Si registra una implementación de escucha de excepciones con una conexión, necesita una hebra adicional.

Consideremos el escenario siguiente:

Una instalación de servidor de aplicaciones IBM AIX tiene un único MDB instalado. El MDB tiene transaccionesgestionadas por contenedor EJB (Enterprise JavaBeans) y tiene un atributo de transacciones de requerido, demodo que los mensajes se envían al MDB en una transacción XA. El MDB se ha configurado para utilizar laespecificación de activación del proveedor de mensajería de WebSphere MQ con la modalidad de transporte debindings. Cuando se recibe un mensaje, el MDB realiza procesos y envía un mensaje de respuesta mediante lafábrica de conexiones del proveedor de mensajería de WebSphere MQ con una modalidad de transporte deenlaces. La fábrica de conexiones tiene los valores predeterminados de agrupación de conexiones y sesiones.

El número de hebras que se utiliza en este caso de ejemplo es 121 y se compone de las hebras siguientes:10 (una hebra * el número máximo predeterminado de instancias de MDB)1 (la hebra que se comparte en los despliegues)10 (las hebras que utiliza la conexión agrupada * el tamaño predeterminado de la agrupación de 10)100 (la hebra utilizada por la sesión agrupada * el tamaño predeterminado de la agrupación de conexiones(10) * por el tamaño predeterminado de la agrupación de sesiones (10))

3. Configuración del tamaño de la agrupación de hebras WMQCommonServices en un servidor de aplicaciones

Debe configurar cada servidor de aplicaciones que utiliza recursos del proveedor de mensajería de WebSphere MQ yel tamaño predeterminado de la agrupación de hebras WMQCommonServices no es suficiente. Por ejemplo, si elMDB que se utiliza en el ejemplo anterior se despliega en un entorno en clúster con dos servidores, complete elprocedimiento siguiente en los dos servidores de aplicaciones para establecer el tamaño de la agrupación de hebrasWMQCommonServices en 121, como mínimo.

Para configurar el tamaño máximo de la agrupación de hebras WMQCommonServices en el servidor deaplicaciones, realice los pasos siguientes utilizando la consola administrativa:

a. Pulse Servidores > Tipos de servidor > Servidores de aplicación WebSphere > nombre_servidor.b. En Propiedades adicionales, pulse Agrupaciones de hebras > WMQCommonServices.c. Actualice el valor del campo Tamaño máximo al valor correspondiente y pulse Aceptar.d. Pulse Guardar y reinicie el servidor de aplicaciones.

4. Configuración del tamaño de la agrupación de hebras WMQCommonServices en un cliente de aplicaciones

Para configurar el tamaño máximo de la agrupación de hebras WMQCommonServices en el contenedor de clientede aplicaciones, siga estos pasos:

a. Cree un archivo llamado wmq.client.props, y escríbalo en la vía de acceso de clases del cliente deaplicaciones.

b. Edite el archivo wmq.client.props y añada el texto siguiente al archivo:

com.ibm.ws.wmqcsi.threadPoolMaximumSize=<tamaño necesario de la agrupación de hebras>

Por ejemplo: com.ibm.ws.wmqcsi.threadPoolMaximumSize=15

c. Guarde los cambios.

En esta información...

Tareas relacionadasAjuste de mensajeríaCreación de una fábrica de conexiones parael proveedor de mensajería de WebSphereMQ utilizando el asistente Crear recursosJMS

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Page 117: Ajuste_rendimiento

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tmj_adm34

Nombre de archiv o: tmj_adm34.html

Page 118: Ajuste_rendimiento

11.1.5. Supervisión de las agrupaciones de sesiones de servidor parapuertos de escuchaPuede minimizar el número de recursos que las sesiones de servidor utilizan habilitando la supervisión de la agrupación desesiones de servidor y definiendo el valor de tiempo de espera que se va a aplicar a una sesión de servidor.

Acerca de esta tarea

Cada puerto de escucha utiliza una o más sesiones de servidor, que se guardan en una agrupación de sesiones deservidor. Cada sesión de servidor se asocia con una sesión JMS, que se toma de la agrupación de sesiones JMS que estáasociado con la fábrica de conexiones JMS cuyo puerto de escucha se ha configuradopara su uso.

De forma predeterminada, la supervisión de agrupaciones de sesiones de servidor está inhabilitada. Cuando un puerto deescucha utiliza una sesión de servidor el puerto de escucha no libera la sesión del servidor de la agrupación de sesionesde servidor hasta que el puerto de escucha se cierra. Esto significa que la sesión JMS asociada no se libera a laagrupación de sesiones JMS hasta que se concluye el puerto de escucha, aunque el puerto de escucha no estéprocesando ningún mensaje. Por consiguiente, los recursos que utiliza la sesión JMS, por ejemplo las conexiones TCP/IP,pueden ser detenidos durante mucho tiempo, y esto puede ocasionar problemas en sistemas con recursos limitados.

Para minimizar el número de recursos que utilizan las sesiones de servidor, debe supervisar las agrupaciones de sesionesde servidor. Cuando se habilita la agrupación de sesiones de servidor supervisando cada sesión de servidor en cadaagrupación de sesiones de servidor que utiliza un puerto de escucha, se supervisa para determinar cuánto tiempo hapasado desde la última utilización de la sesión de servidor. Si el tiempo transcurrido es superior al valor del tiempo deespera que ha configurado, la sesión del servidor se elimina de la agrupación de la sesión de servidor y su sesión JMSasociada vuelve a la agrupación de sesiones JMS. La sesión JMS devuelta la puede reutilizar otra aplicación o se cierra, enfunción de los valores de la agrupación de sesiones JMS. También puede configurar mecanismos de agrupaciónadicionales, según el proveedor de JMS.

Nota: La supervisión de agrupaciones de sesiones de servidor no puede utilizarse si el servicio de escucha de mensajesestá funcionando en modalidad no ASF (no Application Server Facilities), es decir, si la propiedad personalizada delservicio de escucha de mensajes NON.ASF.RECEIVE.TIMEOUT se establece en un valor distinto de cero.

Procedimiento

Para habilitar la supervisión de agrupaciones de sesiones de servidor, configure las propiedades personalizadas del serviciode escucha de mensajes siguientes en cada servidor de aplicaciones necesario.

SERVER.SESSION.POOL.REAP.TIME

Para habilitar la supervisión de agrupaciones de sesiones de servidor, establezca esta propiedad en la hora (ensegundos) ente las comprobaciones en las agrupaciones de sesiones de servidor (debe ser un valor no negativo).

SERVER.SESSION.POOL.UNUSED.TIMEOUT

Para especificar el tiempo de espera de la agrupación de sesiones de servidor predeterminado, establezca estapropiedad en el número necesario de segundos para el tiempo de espera. Cuando esta propiedad se establece en unvalor no negativo, se compara con el tiempo que ha transcurrido desde que se ha utilizado una sersión de servidor. Si elvalor del tiempo de espera es inferior al tiempo transcurrido, se elimina la sesión del servidor de la agrupación desesiones de servidor y su sesión JMS se devuelve a la agrupación de sesiones JMS. Por ejemplo, si el valor de tiempode espera es un segundo y el tiempo que ha transcurrido desde que se ha utilizado una sesión de servidor determinadaes de dos segundos, esa sesión de servidor se elimina de la agrupación de sesiones de servidor y su sesión JMS sedevuelve a la agrupación de sesiones JMS.

SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpnamePara alterar temporalmente el valor predeterminado SERVER.SESSION.POOL.UNUSED.TIMEOUT para el puerto deescucha con el nombre lpname, establezca esta propiedad en el valor apropiado:

Para alterar temporalmente SERVER.SESSION.POOL.UNUSED.TIMEOUT para el puerto de escuchaespecificado, establezca esta propiedad en un valor no negativo que define el número necesario de segundos parael tiempo de espera de la sesión del servidor para este puerto de escucha.Para inhabilitar la agrupación de sesiones de servidor para el puerto de escucha especificado, establezca estapropiedad en un valor negativo.

El valor que se establece para esta propiedad se aplica a todos los beans controlados por mensajes que utilizan elpuerto de escucha especificado.

Ejemplo

Por ejemplo, piense en un servidor de aplicaciones que se ha configurado con los puertos de escucha lp1 y lp2.

Se aplican las reglas siguientes:

No se ha establecido ninguna propiedadSi no se establece ninguna de las propiedades, la supervisión de agrupaciones de sesiones de servidor estará

inhabilitada y las sesiones JMS utilizadas por sesiones de servidor no se vuelven a la agrupación de sesiones JMS hasta

Page 119: Ajuste_rendimiento

inhabilitada y las sesiones JMS utilizadas por sesiones de servidor no se vuelven a la agrupación de sesiones JMS hastaque el puerto de escucha (lp1 o lp2), o su bean controlado por mensajes asociado, está apagado.

SERVER.SESSION.POOL.REAP.TIME and SERVER.SESSION.POOL.UNUSED.TIMEOUT setConsidere, por ejemplo, los valores siguientes:

SERVER.SESSION.POOL.REAP.TIME=60SERVER.SESSION.POOL.UNUSED.TIMEOUT=120

Se comprueban las sesiones de servidor de la agrupación de sesiones de servidor de ambos puertos de escucha (lp1 ylp2) cada 60 segundos. Si se detecta una sesión de servidor inactiva durante más de 120 segundos, se elimina de laagrupación de sesiones de servidor y su sesión JMS se devuelve a la agrupación de sesiones JMS. Si se tiene encuenta el valor SERVER.SESSION.POOL.REAP.TIME, la agrupación de sesiones de servidor podría eliminarse de laagrupación de sesiones entre dos y tres minutos desde la última vez que se utilizó la sesión de servidor.

Conjunto SERVER.SESSION.POOL.REAP.TIME and SERVER.SESSION.POOL.UNUSED.TIMEOUT y conjunto desustituciones para SERVER.SESSION.POOL.UNUSED.TIMEOUT.lpname

Considere, por ejemplo, los valores siguientes:SERVER.SESSION.POOL.REAP.TIME=60SERVER.SESSION.POOL.UNUSED.TIMEOUT=120SERVER.SESSION.POOL.UNUSED.TIMEOUT.lp2=­1SERVER.SESSION.POOL.UNUSED.TIMEOUT.lp1=60

La agrupación de sesiones de servidor para el puerto de escucha lp2 no se comprueba porque tiene un valor de tiempode espera negativo. En la agrupación de sesiones de servidor para el puerto de escucha lp1, las sesiones de servidorque estén inactivas durante más de 60 segundos se eliminan de la agrupación de sesiones de servidor.

En esta información...

SubtemasPropiedades personalizadas del servicio deescucha de mensajes

Conceptos relacionadosBeans controlados por mensajes:componentes de puerto de escucha

Tareas relacionadasAdministración de puertos de escucha

Referencia relacionadaValores de puerto de escucha

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tmb_adm15

Nombre de archiv o: tmb_adm15.html

Page 120: Ajuste_rendimiento

12. Ajuste de ORB (Object Request Broker)Esta página proporciona un punto de partida para buscar información sobre ORB (intermediario para solicitudes deobjetos). Este producto utiliza un ORB para gestionar las comunicaciones entre las aplicaciones cliente y las aplicacionesservidor y también para las comunicaciones entre los componentes de los productos. Estos servicios estándar Java EE(JavaTM Platform, Enterprise Edition) son relevantes para ORB: RMI/IIOP (Remote Method Invocation/Internet Inter­ORBProtocol) y Java IDL (Java Interface Definition Language).

El ORB proporciona una infraestructura a los clientes para localizar objetos de la red e invocar operaciones en estosobjetos, como si los objetos remotos estuvieran ubicados en el mismo proceso de ejecución que el cliente, lo que suponeuna mayor transparencia de ubicación.

Ajuste de Object Request Brokers

Información relacionadaVías de acceso de extremo a extremo para ORB (Object Request Broker)Administración de ORB (Object Request Broker)Desarrollo de ORB (Object Request Broker)ORB (Object Request Broker)Resolución de problemas de ORB (Object Request Broker)

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_orb_tun

Nombre de archiv o: welc6tech_orb_tun.html

Page 121: Ajuste_rendimiento

13. Ajuste de aplicaciones SIP (Session Initiation Protocol)Esta página proporciona un punto de partida para buscar información sobre aplicaciones SIP, que son programas Java queutilizan, como mínimo, un servlet SIP (Session Initiation Protocol) escrito en la especificación JSR 116.

SIP se utiliza para establecer, modificar y finalizar sesiones IP multimedia, incluidas la telefonía, presencia y mensajeríainstantánea IP.

Ajuste de servlets SIP para Linux

Esta página describe el ajuste preliminar de servlets SIP para el kernel de Linux 2.6.

Información relacionadaVías de acceso de extremo a extremo para aplicaciones SIP (Session Initiation Protocol)Administración de aplicaciones SIP (Session Initiation Protocol)Protección de aplicaciones SIP (Session Initiation Protocol)Desarrollo de aplicaciones SIP (Session Initiation Protocol)Superv isión de aplicaciones SIP (Session Initiation Protocol)Aplicaciones SIP (Session Initiation Protocol)Resolución de problemas de aplicaciones SIP (Session Initiation Protocol)

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_sip_tun

Nombre de archiv o: welc6tech_sip_tun.html

Page 122: Ajuste_rendimiento

13.1. Ajuste de servlets SIP para LinuxEsta página describe el ajuste preliminar de servlets SIP para el kernel de Linux 2.6.

Antes de empezarUn servlet SIP (Session Initiation Protocol) bajo carga puede retransmitir mensajes o perder llamadas. Las colas desockets UDP pueden llenarse. La revisión de la salida de la recogida de basura verbosa podría mostrar que los intervalosde recogida de basura son bastante largos, por ejemplo, de 0,5 a 1,5 segundos. La causa de este problema es que elcontrolador Ethernet, el sistema operativo Linux®, WebSphere® Application Server o cualquier combinación de loselementos no están ajustados para las aplicaciones SIP. Puede aplicar los siguientes niveles de ajuste.

Nota: Las siguientes recomendaciones sólo se han probado en Red Hat Enterprise Linux 4 y se proporcionan tal cual sinninguna garantía implícita.

Acerca de esta tarea

Controlador Ethernet de Linux

El ajuste del controlador Ethernet de Linux Ethernet empieza seleccionando el mejor controlador Ethernet. Por ejemplo, elcontrolador recomendado para los blades HS20 es el controlador tg3­3.43b (o posterior), que puede encontrar en el sitioweb Broadcom Ethernet NIC Driver Downloads. Se han utilizado los siguientes mandatos de shell para ajustar elcontrolador Ethernet del kernel de Linux:

/sbin/ifconfig eth0 txqueuelen 2000/sbin/ifconfig eth1 txqueuelen 2000ethtool ­s eth0 autoneg off speed 1000 duplex fullethtool ­A eth0 autoneg off rx on tx onethtool ­C eth0 adaptive­rx off adaptive­tx off rx­usecs 20 rx­frames 5 tx­usecs 60 tx­frames 11ethtool ­G eth0 rx 511 rx­jumbo 255 tx 511

En función del controlador Ethernet que esté instalado, es posible que sea necesario cambiar alguna de estas opciones.

Kernel de Linux

El ajuste del kernel de Linux utiliza los siguientes mandatos:

echo 16777216 > /proc/sys/net/core/rmem_maxecho 2097152 > /proc/sys/net/core/rmem_defaultecho 16777216 > /proc/sys/net/core/wmem_maxecho 2097152> /proc/sys/net/core/wmem_defaultecho 10000000 > /proc/sys/net/core/optmem_maxecho 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_rmemecho 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_wmemecho 8388608 8388608 8388608 > /proc/sys/net/ipv4/tcp_memecho 400 > /proc/sys/net/unix/max_dgram_qlenecho 400 > /proc/sys/net/core/message_burstecho 2800 > /proc/sys/net/core/mod_congecho 1000 > /proc/sys/net/core/lo_congecho 200 > /proc/sys/net/core/no_congecho 2900 > /proc/sys/net/core/no_cong_threshecho 3000 > /proc/sys/net/core/netdev_max_backlog

Esta configuración puede no ser óptima para una aplicación y podría necesitar ajustar la configuración para alcanzar elmejor rendimiento. No obstante, puede utilizar estos valores como punto de partida.

SIP para WebSphere Application Server

El ajuste SIP para WebSphere Application Server se lleva a cabo realizando los siguientes pasos:1. Cree una agrupación de hebras distinta para el contenedor de servlets SIP. Siga estos pasos en la consola

administrativa:a. Pulse Servidor > Servidores de aplicaciones > nombre_servidor.b. En Propiedades adicionales, pulse Agrupaciones de hebras > Nueva.c. En el campo Nombre, escriba SipContainer.d. En los campos Tamaño mínimo y Tamaño máximo, escriba 15. Estos valores deben ser adecuados para la

mayoría de las aplicaciones.e. Pulse Aceptar.

2. Cree propiedades personalizadas para el contenedor de servlets SIP. Siga estos pasos en la consola administrativa:a. Pulse Servidor > Servidores de aplicaciones > nombre_servidor.b. Pulse Contenedor SIP.c. En Propiedades adicionales, pulse Propiedades personalizadas > Nueva.d. En el campo Nombre, escriba javax.sip.max.object.pool.size.e. En el campo Valor, escriba 1000.f. Pulse Aceptar.

Page 123: Ajuste_rendimiento

g. En el campo Nombre, escriba max.tu.pool.size.h. En el campo Valor, escriba 1000.i. Pulse Aceptar.j. En el campo Nombre, especifique com.ibm.sip.sm.lnm.size. k. En el campo Valor, escriba 8. l. Pulse Aceptar.

3. Cree propiedades personalizadas para el canal SIPUDP si UDP (User Datagram Protocol) es el transporte primariopara el tráfico SIP. Siga estos pasos en la consola administrativa:

a. Pulse Servidor > Servidores de aplicaciones > nombre_servidor.b. Pulse Contenedor SIP > Cadena de transporte > SIPCInboundDefaultUDP > Canal de entrada UDP

(UDP1).c. En Propiedades adicionales, pulse Propiedades adicionales > Nueva.d. En el campo Nombre, escriba receiveBufferSocketSize.e. En el campo Valor, escriba 3000000.f. Pulse Aceptar.g. En el campo Nombre, escriba sendBufferSocketSize.h. En el campo Valor, escriba 3000000.

4. Especifique las propiedades generales del contenedor de servlets SIP. Siga estos pasos en la consolaadministrativa:

a. Pulse Servidores > Servidores de aplicaciones > nombre_servidor > Contenedor SIP.b. Escriba el valor Número máximo de sesiones de aplicación. El valor Número máximo de sesiones de

aplicación se puede calcular como: Periodo máximo de mantenimiento de llamada o tiempode espera de sesión x Índice de llamadas x Factor de seguridad.

c. Escriba el valor Número máximo de mensajes por periodo promedio. El valor Número máximo de mensajespor periodo promedio puede calcularse como: Periodo máximo de mantenimiento de llamada otiempo de espera de sesión x Índice máximo de mensajes SIP x Factor deseguridad.

d. Escriba el valor Tamaño máximo de la cola de asignación. El valor Tamaño máximo de la cola de asignaciónpuede calcularse como: Índice máximo de mensajes SIP x Máxima latencia en procesoSIP x Factor de seguridad.

e. Establezca la agrupación de hebras en la agrupación de hebras de contenedor SIP recién creada (en nombredesplegable "SipContainer").

5. Ajuste la política de recogida de basura de la Java Virtual Machine (JVM). Siga estos pasos en la consolaadministrativa:

a. Pulse Servidor > Servidores de aplicaciones > nombre_servidor.b. En Infraestructura de servidor, pulse Java y gestión de procesos > Definición de proceso.c. En Propiedades adicionales, pulse Máquina virtual Java.d. En el campo Argumentos de JVM genéricos, especifique el siguiente valor en una sola línea: "­Xmn150m

­Xgcpolicy:gencon ­Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate ­Xcompactexplicitgc ­XX:MaxDirectMemorySize=256000000".

Procedimientos recomendados:Puede añadir el valor 1500 MB a los campos Tamaño de almacenamiento dinámico inicial y Tamaño máximo delalmacenamiento dinámico.Es recomendable que habilite la opción Recogida de basura verbosa durante las operaciones de prueba o ajustede rendimiento. Si la aplicación asigna objetos de tamaño superior a 64 KB, puede ser beneficioso reservar un área de objetos

grandes (LOA) en el almacenamiento dinámico. Esto se lleva a cabo añadiendo el argumento de JVM ­Xloaminimum0.xy, donde xy indica el porcentaje del almacenamiento dinámico que se debe reservar para objetosgrandes. Para obtener más información sobre los argumentos de JVM, consulte la publicación Java DiagnosticsGuide 6.

En esta información...

Tareas relacionadasAjuste de sistemas Linux

Información relacionada Java Diagnostics Guide 6

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Page 124: Ajuste_rendimiento

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tsip_tunelinux

Nombre de archiv o: tsip_tunelinux.html

Page 125: Ajuste_rendimiento

14. Ajuste de integración de serviciosEsta página proporciona un punto de partida para buscar información sobre la integración de servicios.

La integración de servicios proporciona servicios de mensajería asíncrona. En la mensajería asíncrona, las aplicacionesproductoras no envían mensajes directamente a las aplicaciones consumidoras. En su lugar, envían mensajes a losdestinos. Las aplicaciones consumidoras reciben mensajes de estos destinos. Una aplicación productora puede enviar unmensaje y, a continuación, continuar el proceso sin esperar a que la aplicación consumidora reciba el mensaje. Si esnecesario, el destino almacena el mensaje hasta que la aplicación consumidora está preparada para recibirlo.

Ajuste de los motores de mensajería

Utilice esta tarea para establecer las propiedades de ajuste del entorno de integración de servicios.

Ajuste del rendimiento de mensajería con las tecnologías de integración de servicios

Para ayudarle a optimizar el rendimiento, puede establecer las propiedades de ajuste que controlan el rendimientode los beans controlados por mensajes y otras aplicaciones de mensajería desplegadas para utilizar las tecnologíasde integración de servicios.

Configuración de la regulación de del proveedor de mensajería predeterminado

Utilice esta tarea para configurar la regulación de mensajes para beans controlados por mensajes que se hadesplegado como recursos JCA 1.5 en el proveedor de mensajería predeterminado.

Ajuste de los almacenes de datos del motor de mensajería

Obtenga una visión general de cómo mejorar el rendimiento de los almacenes de datos del motor de mensajería.

Establecimiento de las propiedades de ajuste para una mediación

Utilice esta tarea para ajustar una mediación para rendimiento mediante la consola administrativa.

Habilitar los beans de entidad CMP y los almacenes de datos del motor de mensajería para quecompartan conexiones de bases de datos

Utilice esta tarea para habilitar los beans de entidad de persistencia gestionada por contenedor (CMP) para quecompartan las conexiones de base de datos utilizadas por el almacén de datos de un motor de mensajería. Larealización de esta tarea se ha estimado como una mejora potencial de 15% para el rendimiento global pero sólopuede utilizarse para beans de entidad conectados al servidor de aplicaciones que contiene el motor de mensajería.

Información relacionadaMigración de integración de serv iciosAdministración de integración de serv iciosScripts para integración de serv iciosProtección de integración de serv iciosDesarrollo de integración de serv iciosIntegración de serv iciosResolución de problemas de integración de serv icios

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_si_tun

Nombre de archiv o: welc6tech_si_tun.html

Page 126: Ajuste_rendimiento

14.1. Ajuste de los motores de mensajeríaUtilice esta tarea para establecer las propiedades de ajuste del entorno de integración de servicios.

Acerca de esta tareaEl entorno de integración de servicios incluye propiedades que puede establecer para mejorar el rendimiento de un motorde mensajería o el componente del motor de mensajería que gestiona el almacén de datos. Estas propiedades se conocencolectivamente como propiedades de ajuste. Puede establecer estas propiedades ya sea con la consola administrativa deWebSphere Application Server o editando el archivo sib.properties.

Consejo: Las propiedades establecidas con la consola administrativa tienen prioridad sobre las propiedades establecidasen el archivo sib.properties.

Procedimiento

Establezca las propiedades de ajuste utilizando la consola administrativa:Establezca las propiedades de ajuste de un motor de mensajería.Controle los almacenamientos intermedios de memoria utilizados por un motor de mensajería.

Utilice la consola administrativa para ajustar el origen de datos.

Para establecer las propiedades de ajuste para cualquiera de los componentes mencionados anteriormente edite elarchivo sib.properties.

Qué hacer a continuación

Establecimiento de las propiedades de ajuste de un motor de mensajería

Puede establecer las propiedades de ajuste para un motor de mensajería para mejorar su rendimiento.

Control de los almacenamientos intermedios de memoria utilizados por un motor de mensajería

Cada motor de mensajería gestiona dos almacenamientos intermedios de memoria que contienen mensajes y datosrelacionados con los mensajes. Puede mejorar la interacción de un motor de mensajería con su almacén de datosajustando las propiedades que establecen los tamaños de los dos almacenamientos intermedios.

Ajuste del origen de datos JDBC de un motor de mensajería

El motor de mensajería debe tener la configuración correcta para que el origen de datos JDBC consiga elrendimiento de mensajería en un bus de integración de servicios.

Configuración de las propiedades de ajuste editando el archivo sib.properties

Utilice esta tarea para establecer las propiedades de ajuste del entorno de integración de servicios editando elarchivo sib.properties.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjs0100

Nombre de archiv o: tjs0100_.html

Page 127: Ajuste_rendimiento

14.1.1. Establecimiento de las propiedades de ajuste de un motor demensajeríaPuede establecer las propiedades de ajuste para un motor de mensajería para mejorar su rendimiento.

Acerca de esta tareaPuede establecer la propiedad de ajuste siguiente para un motor de mensajería:

sib.trm.retry

El intervalo de reintento de conexión entre un motor de mensajería y otro motor de mensajería, en segundos. El intervalode reintento es el retardo entre intentos para establecer contacto con motores de mensajería vecinos con los que debeexistir una comunicación. El intervalo de reintento predeterminado es 30 segundos.

Para establecer las propiedades de ajuste para un motor de mensajería, utilice la consola administrativa para completar lospasos siguientes.

Procedimiento1. En el panel de navegación, pulse Integración de servicios > Buses > nombre_bus > [Topología] Motores de

mensajería > nombre_motor > [Propiedades adicionales] Propiedades personalizadas.2. Escriba el nombre de la propiedad que desea establecer.3. Escriba el valor que desea establecer para esa propiedad.4. Pulse Aceptar.5. Guarde los cambios en la configuración maestra.6. Reinicie el motor de mensajería para que los cambios entren en vigor.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjk0120_

Nombre de archiv o: tjk0120_.html

Page 128: Ajuste_rendimiento

14.1.2. Control de los almacenamientos intermedios de memoria utilizadospor un motor de mensajeríaCada motor de mensajería gestiona dos almacenamientos intermedios de memoria que contienen mensajes y datosrelacionados con los mensajes. Puede mejorar la interacción de un motor de mensajería con su almacén de datosajustando las propiedades que establecen los tamaños de los dos almacenamientos intermedios.

Acerca de esta tareaPuede establecer las siguientes propiedades para mejorar la interacción de un motor de mensajería con su almacén dedatos:

sib.msgstore.discardableDataBufferSize

El tamaño en bytes del almacenamiento intermedio de datos que utiliza el motor de mensajería para contener datos paralos que el atributo de calidad de servicio es mejor esfuerzo no persistente. El valor predeterminado es 320000, queaproximadamente es de 320 kilobytes.

El almacenamiento intermedio de datos descartables contiene todos los datos para los que el atributo de calidad deservicio es mejor esfuerzo no persistente. Estos datos constan de datos que participan en transacciones activas y otrosdatos de mejor esfuerzo no persistente que el motor de mensajería no ha descartado ni consumido. El motor demensajería conserva la totalidad de estos datos en este almacenamiento intermedio de memoria y no graba nunca losdatos en el almacén de datos. Cuando el motor de mensajería añade los datos al almacenamiento intermedio de datosdescartables, por ejemplo, cuando el motor de mensajería recibe un mensaje de mejor esfuerzo no persistenteprocedente de un cliente, es posible que el motor de mensajería descarte los datos que ya están en el almacenamientointermedio para crear espacio. El motor de mensajería puede descartar solamente los datos que no participan entransacciones activas. Este comportamiento permite al motor de mensajería descartar mensajes de mejor esfuerzo nopersistente.

Aumentar el tamaño del almacenamiento intermedio de datos descartables permite manejar más datos de mejoresfuerzo no persistentes antes de que el motor de mensajería empiece a descartar los mensajes.

Si el motor de mensajería intenta añadir datos al almacenamiento intermedio de datos de datos descartables cuando noqueda suficiente espacio después de descartar todos los datos no implicados en las transacciones activas, el motor demensajería lanza una excepción com.ibm.ws.sib.msgstore.OutOfCacheSpace. Las aplicaciones cliente puedencapturar esta excepción, incluida en excepciones específicas de la API como, por ejemplo, javax.jms.JMSException.

sib.msgstore.cachedDataBufferSize

El tamaño en bytes del almacenamiento intermedio de datos que utiliza el motor de mensajería para contener datos paralos que la calidad de servicio es mejor que el mejor esfuerzo no persistente y que se guarda en el almacén de datos. Elvalor predeterminado es 320000, que aproximadamente es de 320 kilobytes.

El objetivo del almacenamiento intermedio de datos de datos en memoria caché es optimizar el rendimiento del motor demensajería guardando en la memoria caché los datos que, de otra forma, el motor de mensajería tendría que leer delalmacén de datos. A medida que graba los datos en el almacén de datos y los lee del mismo, el motor de mensajeríaintenta añadir esos datos al almacenamiento intermedio de datos en memoria caché. Es posible que el motor demensajería descarte los datos que ya están en el almacenamiento intermedio para crear espacio.

sib.msgstore.transactionSendLimit

El número máximo de operaciones que el motor de mensajería incluye en cada transacción. Por ejemplo, cada envío orecepción de JMS es una operación que cuenta en el límite de envíos de transacciones. El valor predeterminado es 100.

Atención: El motor de mensajería utiliza cálculos aproximados para gestionar los datos que guarda en losalmacenamientos intermedios de memoria. Ninguna de las propiedades DataBufferSize proporciona una indicaciónprecisa de la cantidad de memoria que el motor de mensajería consume en la pila de la JVM. El motor de mensajeríapuede consumir una cantidad considerablemente mayor del almacenamiento de pila que lo que indican las propiedadesDataBufferSize.

Para establecer las propiedades de un motor de mensajería para mejorar su interacción con su almacén de datos, utilice laconsola administrativa para completar los pasos siguientes:

Procedimiento1. En el panel de navegación, pulse Integración de servicios > Buses > nombre_bus > [Topología] Motores de

mensajería > nombre_motor > [Propiedades adicionales] Propiedades personalizadas.2. Escriba el nombre de la propiedad que desea establecer.3. Escriba el valor que desea establecer para esa propiedad.4. Pulse Aceptar.5. Guarde los cambios en la configuración maestra.

Qué hacer a continuación

Recuerde: Cuando cambia cualquiera de estas propiedades, los nuevos valores no entran en vigor hasta que reinicie elmotor de mensajería.

Page 129: Ajuste_rendimiento

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0220

Nombre de archiv o: tjm0220_.html

Page 130: Ajuste_rendimiento

14.1.3. Ajuste del origen de datos JDBC de un motor de mensajeríaEl motor de mensajería debe tener la configuración correcta para que el origen de datos JDBC consiga el rendimiento demensajería en un bus de integración de servicios.

Antes de empezarConsidere si debe configurar la agrupación de conexiones para el origen de datos JDBC para conseguir los requisitos parael rendimiento de mensajería.

Acerca de esta tareaEl motor de mensajería utiliza la agrupación de conexiones para obtener sus conexiones con la base de datos. Cuando lacarga de trabajo es pesada, es posible que un motor de mensajería necesite un número de conexiones simultáneas máselevado para evitar que no se produzcan retardos esperando que haya una conexión disponible en la agrupación. Porejemplo, un motor de mensajería con una carga de trabajo muy elevada puede necesitar 50 o más conexiones. Completelos pasos siguientes para configurar la agrupación de conexiones para cumplir con los requisitos de rendimiento:

Procedimiento

1. Asegúrese de que la configuración del sistema RDBMS (sistema de gestión de bases de datos relacionales)permita el número de conexiones que requiere. Consulte la documentación de RDBMS para obtener másinformación.

2. Utilice la consola administrativa para establecer los parámetros de la agrupación de conexiones para el origen dedatos. Vaya a Recursos > JDBC > Orígenes de datos > nombre_origen_datos > [Propiedades adicionales]Propiedades de agrupación de conexiones.

a. Establezca Número máximo de conexiones en el número de conexiones que necesita, por ejemplo, comomínimo, 50. El número de conexiones predeterminado es 10.

Consejo: Si el motor de mensajería supera el valor de tiempo de espera mientras solicita una conexión debase de datos, consulte los registros cronológicos de errores. Si los registros cronológicos de errorescontienen el mensaje de error CWSIS1522E, aumente el número de conexiones y asegúrese de que laconfiguración del RDBMS permita este número de conexiones.

b. Establezca la Política de depuración en EntirePool. Esta política permite que la agrupación deconexiones libere todas las conexiones cuando se detenga el motor de mensajería.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0230

Nombre de archiv o: tjm0230_.html

Page 131: Ajuste_rendimiento

14.1.4. Configuración de las propiedades de ajuste editando el archivosib.propertiesUtilice esta tarea para establecer las propiedades de ajuste del entorno de integración de servicios editando el archivosib.properties.

Acerca de esta tareaPuede establecer las siguientes propiedades de ajuste para mejorar el rendimiento de los componentes en el entorno deintegración de servicios.

Propiedades de un motor de mensajería

sib.trm.retry

El intervalo de reintento de conexión entre un motor de mensajería y otro motor de mensajería, en segundos. Elintervalo de reintento es el retardo entre intentos para establecer contacto con motores de mensajería vecinos con losque debe existir una comunicación. El intervalo de reintento predeterminado es 30 segundos.

Propiedades del componente de un motor de mensajería que gestiona el almacén de datos

sib.msgstore.discardableDataBufferSize

El tamaño en bytes del almacenamiento intermedio de datos que utiliza el motor de mensajería para contener datospara los que el atributo de calidad de servicio es mejor esfuerzo no persistente. El valor predeterminado es 320000, queaproximadamente es de 320 kilobytes.

El almacenamiento intermedio de datos descartables contiene todos los datos para los que el atributo de calidad deservicio es mejor esfuerzo no persistente. Estos datos constan de datos que participan en transacciones activas yotros datos de mejor esfuerzo no persistente que el motor de mensajería no ha descartado ni consumido. El motor demensajería conserva la totalidad de estos datos en este almacenamiento intermedio de memoria y no graba nunca losdatos en el almacén de datos. Cuando el motor de mensajería añade los datos al almacenamiento intermedio de datosdescartables, por ejemplo, cuando el motor de mensajería recibe un mensaje de mejor esfuerzo no persistenteprocedente de un cliente, es posible que el motor de mensajería descarte los datos que ya están en elalmacenamiento intermedio para crear espacio. El motor de mensajería puede descartar solamente los datos que noparticipan en transacciones activas. Este comportamiento permite al motor de mensajería descartar mensajes demejor esfuerzo no persistente.

Aumentar el tamaño del almacenamiento intermedio de datos descartables permite manejar más datos de mejoresfuerzo no persistentes antes de que el motor de mensajería empiece a descartar los mensajes.

Si el motor de mensajería intenta añadir datos al almacenamiento intermedio de datos de datos descartables cuandono queda suficiente espacio después de descartar todos los datos no implicados en las transacciones activas, elmotor de mensajería lanza una excepción com.ibm.ws.sib.msgstore.OutOfCacheSpace. Las aplicacionescliente pueden capturar esta excepción, incluida en excepciones específicas de la API como, por ejemplo,javax.jms.JMSException.

sib.msgstore.cachedDataBufferSize

El tamaño en bytes del almacenamiento intermedio de datos que utiliza el motor de mensajería para contener datospara los que la calidad de servicio es mejor que el mejor esfuerzo no persistente y que se guarda en el almacén dedatos. El valor predeterminado es 320000, que aproximadamente es de 320 kilobytes.

El objetivo del almacenamiento intermedio de datos de datos en memoria caché es optimizar el rendimiento del motorde mensajería guardando en la memoria caché los datos que, de otra forma, el motor de mensajería tendría que leerdel almacén de datos. A medida que graba los datos en el almacén de datos y los lee del mismo, el motor demensajería intenta añadir esos datos al almacenamiento intermedio de datos en memoria caché. Es posible que elmotor de mensajería descarte los datos que ya están en el almacenamiento intermedio para crear espacio.

sib.msgstore.transactionSendLimit

El número máximo de operaciones que el motor de mensajería incluye en cada transacción. Por ejemplo, cada envío orecepción de JMS es una operación que cuenta en el límite de envíos de transacciones. El valor predeterminado es100.

Para establecer estas propiedades editando el archivo sib.properties, complete los pasos siguientes:

Procedimiento

1. Vaya al directorio raíz_perfil/properties, donde raíz_perfil es el directorio en el que se almacena lainformación específica del perfil.

2. Si el directorio no contiene un archivo sib.properties, copie los archivos sib.properties de plantilla del directorioraíz_servidor_aplicaciones/properties, donde raíz_servidor_aplicaciones es el directorio raíz de lainstalación de WebSphere Application Server.

3. Utilizando un editor de texto, abra el archivo sib.properties y añada el nombre y el valor de la propiedad que

Page 132: Ajuste_rendimiento

desee establecer. El formato es nombre=valor. Por ejemplo sib.trm.retry=60

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjs0200_

Nombre de archiv o: tjs0200_.html

Page 133: Ajuste_rendimiento

14.4. Ajuste de los almacenes de datos del motor de mensajeríaObtenga una visión general de cómo mejorar el rendimiento de los almacenes de datos del motor de mensajería.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0270

Nombre de archiv o: tjm0270_.html

Page 134: Ajuste_rendimiento

14.4.3. Aumento del número de tablas del almacén de datos para liberarcuellos de botella de concurrenciaLas tecnologías de integración de servicios permiten a los usuarios distribuir el almacén de datos de un motor demensajería entre varias tablas. En el uso corriente es poco probable que esto tenga una influencia significativa. Noobstante, si las estadísticas sugieren un cuello de botella concurrente en las tablas SIBnnn de un almacén de datos,podría intentar solucionar el problema aumentando el número de tablas.

Acerca de esta tarea

Si desea más información sobre el conjunto de tablas de un almacén de datos, consulte Tablas de almacén de datos.

SIB000 contiene información sobre la estructura de los datos de las otras dos tablas, la "tabla desecuencia"

SIB001 contiene objetos persistentes, la "tabla de elementos permanentes"

SIB002 contiene objetos no persistentes que se han guardado en el almacén de datos para reducir elrequisito de memoria del motor de mensajería, la "tabla de elementos temporales"

El tener varias tablas temporales significa que puede liberar cualquier cuello de botella de rendimiento que pudiera haber enel sistema. Puede modificar tablas SIBnnn del almacén de datos de un motor de mensajería. Puede aumentar el númerode tablas permanentes y temporales (SIB001 y SIB002), aunque no hay modo de aumentar el número de tablas desecuencia (SIB000).

Ejemplo

En este ejemplo se ilustra a qué podrían parecerse las tablas SIBnnn de un almacén de datos después de lamodificación:

SIB000 contiene información sobre la estructura de los datos de las otras dos tablas, la "tabla desecuencia"

SIB001 contiene objetos persistentes, la "tabla de elementos permanentes"

SIB002 contiene objetos persistentes, la "tabla de elementos permanentes"

SIB003 contiene objetos persistentes, la "tabla de elementos permanentes"

SIB004 contiene objetos no persistentes que se han guardado en el almacén de datos para reducir elrequisito de memoria del motor de mensajería, la "tabla de elementos temporales"

SIB005 contiene objetos no persistentes que se han guardado en el almacén de datos para reducir elrequisito de memoria del motor de mensajería, la "tabla de elementos temporales"

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0240

Nombre de archiv o: tjm0240_.html

Page 135: Ajuste_rendimiento

14.4.3.1. Aumento del número de tablas de elementos de un motor demensajería cuando no se crean automáticamente tablasSi se produce un cuello de botella de concurrencia en las tablas de elementos, si se aumenta el número de tablas deelementos se aumentará el rendimiento del motor de mensajería.

Antes de empezarAntes de realizar esta tarea, debe asegurarse de que el motor de mensajería está utilizando un almacén de datos y que suopción Crear tablas está establecida en Falso.

Procedimiento

1. Las herramientas de supervisión de rendimiento pertinentes muestran que la productividad de un motor demensajería no es eficiente.

2. Utilice las herramientas de supervisión de rendimiento de la base de datos para examinar las estadísticas debloqueo de las tablas de elementos para obtener pruebas de que hay un cuello de botella. Consulte ladocumentación de la base de datos sobre cómo interpretar las estadísticas de bloqueo.

3. Cree tablas y aumente los atributos de almacén de datos.Crea tablas para el esquema del almacén de datos. Para obtener más información, consulte Creación detablas de almacén de datosAumente el número de tablas permanentes o de tablas temporales, o de ambas, para el almacén de datos.Para obtener más información, consulte Configuración de un almacén de datos de motor de mensajería parautilizar un origen de datos

Sólo puede aumentar el número de tablas permanentes o de tablas temporales, no disminuirlo.

4. Detenga y reinicie WebSphere Application Server para que los cambios de configuración entren en vigor. Las tablasadicionales se utilizan cuando se reinicia el motor de mensajería.

5. Observe el efecto en la productividad y las estadísticas de bloqueo comprobando las herramientas de supervisióndel rendimiento. Considere si cualquier mejora es suficiente y si modificar más los atributos del almacén de datossería beneficioso

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0025_

Nombre de archiv o: tjm0025_.html

Page 136: Ajuste_rendimiento

14.4.3.2. Aumento del número de tablas de elementos de un motor demensajería cuando se crean automáticamente tablasSi se produce un cuello de botella de concurrencia en las tablas de elementos, aumentar el número de tablas deelementos aumentará el rendimiento del motor de mensajería.

Antes de empezarAntes de realizar esta tarea, debe asegurarse de que el motor de mensajería está utilizando un almacén de datos y que suopción Crear tablas está establecida en Verdadero.

Procedimiento

1. Las herramientas de supervisión de rendimiento pertinentes muestran que la productividad de un motor demensajería no es suficiente.

2. Utilice las herramientas de supervisión de rendimiento de la base de datos para examinar las estadísticas debloqueo de las tablas de elementos para obtener pruebas de que hay un cuello de botella. Consulte ladocumentación de la base de datos sobre cómo interpretar las estadísticas de bloqueo.

3. Aumente los atributos para el almacén de datos de motor de mensajería: el número de tablas permanentes o tablastemporales, o ambas. Para obtener más información, consulte Configuración de un almacén de datos de motor demensajería para utilizar un origen de datos. Sólo puede aumentar el número de tablas permanentes o de tablastemporales, no disminuirlo.

4. Detenga y reinicie el motor de mensajería para que los cambios de configuración entren en vigor. Las tablasadicionales se crean cuando se vuelve a iniciar el motor de mensajería.

5. Observe el efecto en la productividad y las estadísticas de bloqueo comprobando las herramientas de supervisióndel rendimiento. Considere si cualquier mejora es suficiente y si modificar más los atributos del almacén de datossería beneficioso

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0020_

Nombre de archiv o: tjm0020_.html

Page 137: Ajuste_rendimiento

14.4.4. Ajuste de la optimización del compromiso de una faseSi ha configurado el motor de mensajería para utilizar un almacén de datos, puede conseguir un mejor rendimientoconfigurando tanto el motor de mensajería como los beans de persistencia gestionada por contenedor (CMP) paracompartir el mismo origen de datos.

Acerca de esta tarea

Debe configurar tanto el bean CMP, como la autorización de recurso del motor de mensajería, de forma que compartan elmismo origen de datos.

Procedimiento1. Abra la consola administrativa.2. Pulse AplicacionesTipos de aplicación > Tipos de aplicación > Aplicación empresarial WebSphere >

nombre_aplicación > [Propiedades de Enterprise JavaBean] Correlacionar los orígenes de datos paratodos los beans 2.x CMP.

3. En el panel de contenido, marque los recuadros de selección situados junto a todos los beans CMP.4. Seleccione Por aplicación en la lista desplegable Autorización de recursos.5. Modifique la autorización de recurso del motor de mensajería con Por aplicación modificando el archivo de

propiedades sib.properties y añadiendo la propiedad personalizadasib.msgstore.jdbcResAuthForConnections=Application.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm0320

Nombre de archiv o: tjm0320_.html

Page 138: Ajuste_rendimiento

14.4.5. Ajuste de la detección de pérdidas de conexión de base de datosSi un motor de mensajería está configurado para utilizar un almacén de datos y no se puede conectar a su almacén dedatos, por ejemplo, porque la base de datos que contiene el almacén de datos no está en ejecución, el motor demensajería no se inicia. Puede ajustar el sistema para aumentar la posibilidad de un inicio correcto del motor demensajería.

Acerca de esta tarea

En un entorno de servidor único, cuando inicie el servidor de aplicaciones, el motor de mensajería intenta iniciarse. Si labase de datos no está disponible durante más de 15 minutos, el motor de mensajería podría entrar en el estado detenido ynecesitar ser iniciado manualmente.

Puede aumentar la posibilidad de que el motor de mensajería se inicie correctamente configurando distintos parámetroscomo, por ejemplo, el tiempo de espera por omisión de 15 minutos, en el servidor de bases de datos o el servidor deaplicaciones.

Procedimiento

1. En el servidor de bases de datos, configure el sistema operativo para minimizar la cantidad de tiempo destinadapara detectar la pérdida de una conexión de red con un servidor de aplicaciones. Consulte la documentación delsistema operativo para ver detalles. Por ejemplo, la tabla siguiente lista los parámetros relevantes para los sistemasoperativos Windows y AIX:

Tabla 1. Parámetros TCP/IPNombre de parámetro enel sistema operativoWindows

Nombre deparámetroen lossistemasoperativosAIX

Descripción

KeepAliveTime tcp_keepidle La cantidad de tiempo (en milisegundos en lossistemas operativos Windows y en 0,5segundos en los sistemas operativos AIX) quese debe esperar antes de enviar una solicitudkeepalive para una conexión inactiva.

KeepAliveInterval tcp_keepintvl La cantidad de tiempo (en milisegundos en lossistemas operativos Windows y en 0,5segundos en los sistemas operativos AIX) quese debe esperar una respuesta.

TCPMaxDataRetransmissions tcp_keepcnt El número de solicitudes de envío antes definalizar la conexión.

Puede calcular la cantidad total de tiempo destinado para el servidor de bases de datos para detectar la anomalíade la conexión con el servidor de aplicaciones, utilizando la fórmula siguiente:

tiempo para detectar la anomalía de la conexión = tiempo de actividad + (intervalo de actividad x número desolicitudes)

Por ejemplo, para un sistema Windows con los parámetros establecidos de acuerdo con la tabla siguiente, lacantidad total de tiempo destinado para el servidor de bases de datos para detectar la anomalía de la conexión delservidor de aplicaciones es 350 segundos.

Tabla 2. Valores de parámetro de ejemploParámetro ValorKeepAlive 300000 milisegundos

KeepAliveInterval 10000 milisegundos

TCPMaxDataRetransmissions 5

El producto de base de datos también podría tener parámetros relevantes que puede configurar, por ejemplo, elparámetro IDLE THREAD TIMEOUT (tiempo de espera de hebra desocupada) en DB2 for z/OS.

Cuando el servidor de bases de datos detecta la pérdida de la conexión con el servidor de aplicaciones, la base dedatos libera los bloqueos en el almacén de datos. El motor de mensajería ahora puede acceder al almacén de datosy, por lo tanto, iniciarse correctamente.

2. En el servidor de aplicaciones, ajuste el motor de mensajería para esperar una cantidad de tiempo apropiada paraque el almacén de datos pase a estar disponible. Por omisión, el motor de mensajería intentará conectarse alalmacén de datos cada 2 segundos durante 15 minutos. Complete el resto de este paso si desea ajustar estostiempos.

Page 139: Ajuste_rendimiento

a. Pulse Integración de servicios > Buses > nombre_bus > [Topología] Motores de mensajería >nombre_motor > [Propiedades adicionales] Propiedades personalizadas para ir hasta el panel depropiedades personalizadas para el motor de mensajería.

b. Pulse Nuevo.

c. Escriba sib.msgstore.jdbcInitialDatasourceWaitTimeout en el campo Nombre y un valorapropiado en el campo Valor. Esta propiedad es el tiempo, en milisegundos, que se debe esperar a que elalmacén de datos pase a estar disponible. El valor predeterminado es 900000 (15 minutos). Este tiempoincluye el tiempo necesario para establecer una conexión con la base de datos y para obtener los bloqueosde tabla necesarios.

Asegúrese de que el valor de esta propiedad es mayor que el tiempo total que ha destinado el servidor debases de datos para detectar la pérdida de una conexión de red, tal como está configurado en el paso 1.

d. Pulse Aceptar.

e. Pulse Nuevo.

f. Escriba sib.msgstore.jdbcStaleConnectionRetryDelay en el campo Nombre y un valor apropiadoen el campo Valor. Esta propiedad es el tiempo, en milisegundos, que se debe esperar entre los intentos deconectarse al almacén de datos. El valor predeterminado es 2000 (2 segundos). Por ejemplo, si establece lapropiedad sib.msgstore.jdbcInitialDatasourceWaitTimeout en 600000, y la propiedadsib.msgstore.jdbcStaleConnectionRetryDelay en 3000, el motor de mensajería intentará conectarse cada 3segundos hasta que hayan pasado 10 minutos.

g. Pulse Aceptar.

h. Guarde los cambios en la configuración maestra.

i. Reinicie el servidor de aplicaciones.

ResultadosMediante la configuración de estos parámetros y propiedades personalizadas, minimiza la cantidad de tiempo destinadapara el servidor de bases de datos para detectar la pérdida de una conexión de red, y se asegura de que el motor demensajería espera una cantidad de tiempo razonable para que se recupere la conexión de la base de datos antes deintentar iniciarse.

Qué hacer a continuación Es posible que desee configurar el motor de mensajería y el servidor para reiniciarse en el supuesto de una anomalía de laconexión de la base de datos. Este comportamiento reduce el riesgo de que el motor de mensajería esté en un estadoincoherente cuando se restaura la conexión de base de datos.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjm_tunedbconn

Nombre de archiv o: tjm_tunedbconn.html

Page 140: Ajuste_rendimiento

14.5. Establecimiento de las propiedades de ajuste para una mediaciónUtilice esta tarea para ajustar una mediación para rendimiento mediante la consola administrativa.

Antes de empezarRevise las instrucciones sobre cuándo es el momento adecuado para ajustar una mediación para rendimiento en el temaAjuste del rendimiento para las mediaciones.

Acerca de esta tarea

Puede establecer la siguiente propiedad de ajuste en la consola administrativa para mejorar el rendimiento de unamediación:

sib:SkipWellFormedCheck

Si no desea que se compruebe si los mensajes están bien formados después de que los ha procesado la mediación. Otrue o false.

Nota: Esta propiedad se altera temporalmente para los mensajes que tienen la opción de entrega seguro persistente ysiempre se realiza una comprobación de bien formado.

Para que se establezcan o no una o más propiedades de ajuste de una mediación, utilice la consola administrativa paraefectuar los pasos siguientes:

Procedimiento

1. Visualice la información de contexto de la mediación:a. Pulse Integración de servicios > Buses > nombre_bus > [Recursos de destino] Mediaciones.b. En el panel de contenido, seleccione el nombre de la mediación para la que desea configurar la información

de ajuste.c. Pulse [Propiedades adicionales] Información de contexto.

2. En el panel de contenido, pulse Nuevo.

3. Escriba el nombre de la propiedad en el campo Nombre.

4. Seleccione el tipo Boolean de la lista desplegable.

5. Escriba true en el campo Valor de contexto para establecer la propiedad, o bien escriba false para que dejar lapropiedad sin establecer.

6. Pulse Aceptar.

7. Guarde los cambios en la configuración maestra.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjp0032_

Nombre de archiv o: tjp0032_.html

Page 141: Ajuste_rendimiento

14.6. Habilitar los beans de entidad CMP y los almacenes de datos delmotor de mensajería para que compartan conexiones de bases de datosUtilice esta tarea para habilitar los beans de entidad de persistencia gestionada por contenedor (CMP) para que compartanlas conexiones de base de datos utilizadas por el almacén de datos de un motor de mensajería. La realización de estatarea se ha estimado como una mejora potencial de 15% para el rendimiento global pero sólo puede utilizarse para beansde entidad conectados al servidor de aplicaciones que contiene el motor de mensajería.

Acerca de esta tareaPara habilitar los beans de entidad CMP para que compartan las conexiones de base de datos utilizadas por el almacénde datos de un motor de mensajería, lleve a cabo los pasos siguientes.

Procedimiento

1. Configure el almacén de datos para que utilice un origen de datos que no sea compatible con XA. Si desea másinformación sobre la configuración de almacenes de datos, consulte el apartado Configuración de un origen de datosJDBC para un motor de mensajería.

2. Seleccione la opción Compartir origen de datos con CMP . Esta opción se proporciona en la fábrica deconexiones JMS o en la especificación de activación de JMS utilizada para conectar con el bus de integración deservicios que aloja el destino de bus utilizado para almacenar y procesar mensajes para el bean CMP.

Por ejemplo, para seleccionar la opción en una fábrica de conexiones de JMS, lleve a cabo los pasos siguientes:

a. Visualice el proveedor de mensajería predeterminado. En el panel de navegación, pulse Recursos > JMS >Proveedores de JMS.

b. Seleccione el proveedor predeterminado para el que desea configurar una fábrica de conexiones unificada.

c. Opcional: Cambie el recuadro de selección Ámbito para establecer el nivel al que la fábrica de conexionesdebe ser visible, de acuerdo con sus necesidades.

d. En el panel de contenido, en Propiedades adicionales, pulse Fábricas de conexiones.

e. Opcional: Para crear una fábrica de conexiones de JMS nueva, pulse Nueva.

Especifique las siguientes propiedades para la fábrica de conexiones:

Nombre

Escriba el nombre por el que se conoce la fábrica de conexiones a efectos administrativos.

Nombre JNDIEscriba el nombre JNDI que se utiliza para enlazar la fábrica de conexiones con el espacio de nombres.

Nombre de busEscriba el nombre del bus de integración de servicios con el que debe crear conexiones la fábrica deconexiones. Este bus de integración de servicios aloja los destinos a los que se asignan las colas y lostemas JMS.

f. Opcional: Para cambiar las propiedades de una fábrica de conexiones existente, seleccione su nombre delas fábricas de conexiones visualizadas. Las propiedades de la fábrica de conexiones se visualizan en elpanel de contenido.

g. Elija el recuadro de selección correspondiente al campo Compartir origen de datos con CMP .

h. Pulse Aceptar.

i. Guarde los cambios en la configuración maestra.

La fábrica de conexiones de JMS sólo puede utilizarse para conectar con un motor de mensajería "local" que seencuentra en el servidor de aplicaciones en el que se despliegan los beans CMP.

3. Despliegue los beans CMP en el servidor de aplicaciones que contiene el motor de mensajería y especifique elmismo origen de datos que el utilizado por el motor de mensajería. Puede utilizar la consola administrativa paracompletar los siguientes pasos:

a. Opcional: Para determinar el origen de datos utilizado por el motor de mensajería, pulse Servidores >Tipos de servidor > WebSphere Application Servers > nombre_servidor > [Mensajería deservidor] Motores de mensajería > nombre_motor > [Propiedades adicionales] Almacén demensajes.

El campo Nombre de origen de datos visualiza el nombre del origen de datos que es el predeterminado:

Page 142: Ajuste_rendimiento

jdbc/com.ibm.ws.sib/nombre_motor

b. Pulse Aplicaciones > Nueva aplicación > Nueva aplicación empresarial.

c. En la primera página de Preparación para la instalación de la aplicación, especifique el nombre completo dela vía de acceso del archivo de la aplicación de origen (archivo .ear, también conocido como archivo EAR) y,a continuación, pulse Siguiente.

d. En la segunda página de Preparación para la instalación de la aplicación, complete los pasos siguientes:i. Elija el recuadro de selección para Generar enlaces predeterminados. Los enlaces de origen de

datos (para los archivos EJB 1.1 JAR) se generan de acuerdo con el nombre JNDI el origen de datos,nombre de usuario y las opciones de contraseña. Esto tiene como resultado los valorespredeterminados del origen de datos para cada archivo JAR de EJB. No se genera ningún enlace deorigen de datos a nivel de bean.

ii. En Enlaces de fábrica de conexiones, elija el recuadro de selección para Enlaces de fábrica deconexiones predeterminados: y, a continuación, escriba el nombre JNDI para el origen de datos y,de forma opcional, seleccione un valor para Autorización de recurso.

iii. Pulse Siguiente para visualizar la páginas de Instalación de nueva aplicación. Los contenidos de laaplicación que está instalando determina qué páginas están disponibles.

4. Si la aplicación utiliza módulos EJB que contienen beans CMP que se basan en la especificación EJB 1.xl, paraCorrelacionar orígenes de datos predeterminados de módulos que contengan beans de entidad 1.x,especifique un nombre JNDI para el origen de datos predeterminado para los módulos EJB. El origen de datospredeterminado para los módulos EJB es opcional si los orígenes de datos están especificados para los beansCMP individuales.

5. Si la aplicación tiene beans CMP que se basan en la especificación EJB 1.x, para Correlacionar orígenes dedatos para todos los beans CMP 1.x, especifique un nombre JNDI para los orígenes de datos que se debenutilizar para cada bean CMP 1.x. El atributo del origen de datos es opcional para los bean CMP individuales si unorigen de datos predeterminado se especifica para el módulo de EJB que contiene beans CMP.

6. Pulse Finalizar. Si no se especifica ningún origen de datos predeterminado para el módulo EJB, ni ningún origende datos para beans CMP individuales, se visualiza un error de validación y se cancela la instalación.

7. Complete otras páginas según sea necesario.

8. En la página Resumen, verifique la célula, el nodo y el servidor en los que se instalarán los módulos de aplicación.a. Junto a Célula/Nodo/Servidor, pulse el enlace Pulse aquí.b. Verifique los valores de la página Correlacionar módulos con servidores que se visualiza. Asegúrese de que el

servidor de aplicaciones especificado contiene el motor de mensajería y su almacén de datos.c. Especifique los servidores web como destinos que se utilizarán como direccionadores para las solicitudes

dirigidas a esta aplicación. Esta información se utiliza para generar el archivo de configuración del plug­in(plugin­cfg.xml) para cada servidor web.

d. Vuelva a la página Resumen.e. Pulse Finalizar.

Resultados

Para obtener más información sobre cómo instalar aplicaciones, consulte Instalación de archivos de aplicación con laconsola.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjn0007_

Nombre de archiv o: tjn0007_.html

Page 144: Ajuste_rendimiento

16. Ajuste de aplicaciones WebEsta página proporciona un punto de partida para buscar información sobre las aplicaciones Web, que constan de uno omás archivos relacionados que se pueden gestionar como una unidad, e incluyen:

Archivos HTMLLos servlets pueden dar soporte al contenido dinámico de páginas Web, proporcionar acceso a bases de datos, darservicio a varios clientes al mismo tiempo y filtrar datos.Los archivos JSP (Java ServerPages) permiten la separación del código HTML de la lógica de empresa en laspáginas Web.

Las ampliaciones IBM para la especificación JSP permite que los autores de HTML añadan con más facilidad la potenciade la tecnología Java a las páginas Web sin ser expertos en programación Java. Más introducción...

Ajuste de la memoria caché de URL

Ajuste de sesiones

Información relacionadaVías de acceso de extremo a extremo para aplicaciones WebMigración de aplicaciones WebAdministración de aplicaciones WebScripts de aplicaciones WebProtección de aplicaciones WebDesarrollo de aplicaciones WebAplicaciones WebResolución de problemas de aplicaciones Web

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_web_tun

Nombre de archiv o: welc6tech_web_tun.html

Page 145: Ajuste_rendimiento

16.1. Ajuste de la memoria caché de URL

Qué hacer a continuación

Ajuste de la antememoria de invocación de URL

La memoria caché de invocación de URL contiene información para correlacionar los URL de petición con losrecursos de servlet. Una antememoria del tamaño solicitado se crea para cada hebra de trabajo que está disponiblepara procesar una petición. El tamaño por omisión de la antememoria de invocación es 50. Si más de 50 URLexclusivos se utilizan de forma activa (cada JavaServer Page es un URL exclusivo), debe aumentar el tamaño de laantememoria de invocación.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_webapp_tuning

Nombre de archiv o: container_webapp_tuning.html

Page 146: Ajuste_rendimiento

16.1.1. Ajuste de la antememoria de invocación de URLLa memoria caché de invocación de URL contiene información para correlacionar los URL de petición con los recursos deservlet. Una antememoria del tamaño solicitado se crea para cada hebra de trabajo que está disponible para procesar unapetición. El tamaño por omisión de la antememoria de invocación es 50. Si más de 50 URL exclusivos se utilizan de formaactiva (cada JavaServer Page es un URL exclusivo), debe aumentar el tamaño de la antememoria de invocación.

Antes de empezar

Una memoria caché mayor utiliza más cantidad del almacenamiento dinámico Java, de forma que es posible que debaaumentar el tamaño máximo del almacenamiento dinámico Java. Por ejemplo, si cada entrada de memoria caché necesita2 KB, el tamaño máximo de hebra se establece en 25 y el tamaño de memoria caché de invocación de URL es 100; por loque se precisan 5 MB de almacenamiento dinámico Java.

Ahora la memoria caché de invocación está basada en el contenedor en lugar de estar basada en hebras y se compartepara todas las hebras de contenedor Web.

Acerca de esta tareaPara cambiar el tamaño de la antememoria de invocación:

Procedimiento

1. En el consola administrativa, pulse Servidores > Tipos de servidor > WebSphere Application Servers yseleccione el servidor de aplicaciones que está ajustando.

2. Pulse Java y gestión de procesos.

3. Pulse Definición de proceso bajo Propiedades adicionales.

4. Pulse Java Virtual Machine bajo Propiedades adicionales.

5. Pulse Propiedades personalizadas en el apartado Propiedades adicionales.

6. Especifique invocationCacheSize en el campo Nombre y el tamaño de la memoria caché en el campo Valor. Eltamaño por omisión para la memoria caché de invocación es de 500 entradas. Dado que la memoria caché deinvocación ya no está basada en hebra, el tamaño de memoria caché de invocación especificado por el usuario semultiplica por diez para proporcionar una función similar a la de los releases anteriores. Por ejemplo, si especificaun tamaño de memoria caché de invocación de 50, el contenedor Web creará un tamaño de memoria caché de 500.

7. Pulse Apply (Aplicar) y luego Save (Guardar) para guardar los cambios.

8. Detenga y reinicie el servidor de aplicaciones.

ResultadosEl nuevo tamaño de antememoria se utiliza para la antememoria de invocación de URL.

En esta información...

Tareas relacionadasVisión general de tareas: Desarrollo ydespliegue de aplicaciones Web

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tweb_url_cache

Page 147: Ajuste_rendimiento

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tweb_url_cache

Nombre de archiv o: tweb_url_cache.html

Page 148: Ajuste_rendimiento

16.2. Procedimientos recomendados para el uso de sesiones HTTPEn este tema se presentan los métodos recomendados para la implementación de las sesiones de HTTP.

Procedimientos recomendados: Lea las recomendaciones siguientes para implementar sesiones HTTP.

Habilitar la integración de seguridad para proteger las sesiones HTTP

Las sesiones HTTP se identifican mediante ID de sesión. Un ID de sesión es un número pseudo­aleatorio generadoen el tiempo de ejecución. La piratería de sesiones es un ataque conocido a las sesiones HTTP, y se puede evitarsi se obliga a todas las solicitudes que viajan en la red a que se realicen con una conexión segura (esto es,HTTPS). Pero no todas las configuraciones en un entorno de cliente obligan a esta restricción, debido al efecto en elrendimiento de las conexiones SSL. Esta modalidad relajada hace que la sesión HTTP sea vulnerable a la piratería,y debido a esta vulnerabilidad, WebSphere Application Server tiene la opción de integrar estrictamente las sesionesHTTP y la seguridad de WebSphere Application Server. Habilite la seguridad en WebSphere Application Server paraproteger las sesiones de manera que sólo los usuarios que han creado las sesiones puedan acceder a ellas.

Liberar los objetos HttpSession mediante javax.servlet.http.HttpSession.invalidate() cuandose haya finalizado.

Los objetos HttpSession se encuentran dentro del contenedor Web hasta que se produce lo siguiente:La aplicación lo libere explícita y de forma programada utilizando el métodojavax.servlet.http.HttpSession.invalidate; con mucha frecuencia, la invalidación programática es parte de unafunción de salida de la aplicación.WebSphere Application Server destruye el HttpSession asignado cuando caduca (el valor predeterminado esde 1800 segundos o 30 minutos). WebSphere Application Server puede mantener sólo un númerodeterminado de sesiones HTTP en la memoria según los valores de gestión de sesiones. Para las sesionesdistribuidas, cuando la memoria caché de la sesión ha alcanzado su tamaño máximo y se solicita una nuevasesión, el recurso de gestión de sesiones elimina de la memoria caché la sesión que hace más tiempo quese ha utilizado para crear espacio para la nueva sesión.

.No intente guardar y volver a utilizar el objeto HttpSession fuera de cada servlet o archivo JSP.

El objeto HttpSession es una función de HttpRequest (sólo puede obtenerlo mediante el método req.getSession), yuna copia de dicho objeto sólo es válida durante la duración del método service del servlet o el archivo JSP. Nopuede almacenar en la memoria caché el objeto HttpSession y hacer referencia al mismo fuera del ámbito de unservlet o un archivo JSP.

Implemente la interfaz java.io.Serializable cuando desarrolle nuevos objetos que se vayan a almacenaren la sesión HTTP.

Una clase se serializa cuando implementa la interfaz java.io.Serializable. Al implementar la interfazjava.io.Serializable el objeto se puede serializar correctamente cuando se utilizan sesiones distribuidas. Las clasesque no implementan esta interfaz no tendrán sus estados serializados o deserializados. Por lo tanto, si una claseno implementa la interfaz serializable, la JVM no puede conservar su estado en una base de datos o en otra JVM.Todos los subtipos de una clase serializable son serializables. A continuación se muestra un ejemplo:

public class MyObject implements java.io.Serializable ...

Asegúrese de que todos los objetos de la variable de instancia que no están marcados como temporales seanserializables. No puede colocar en memoria caché un objeto que no es serializable.

De conformidad con la especificación del servlet Java, el contenedor de servlets distribuidos debe crear unaexcepción IllegalArgumentException para los objetos cuando el contenedor no puede dar soporte al mecanismonecesario para la migración de la sesión que los almacena. Sólo se crea una excepción cuando se ha seleccionadodistribuíble.

La API HTTPSession no dicta el comportamiento transaccional de las sesiones.

El soporte de HTTPSession distribuido no garantiza la integridad transaccional de un atributo en el caso demigración tras error o cuando se rompe la afinidad de sesiones. Utilice recursos que tengan en cuenta lastransacciones, como enterprise beans de Java, para garantizar la integridad transaccional que necesita laaplicación.

Asegúrese de que los objetos Java que añade a una sesión están en la classpath correcta.

Si añade objetos Java a una sesión, coloque los archivos de clase de estos objetos en la classpath correcta (laclasspath de la aplicación, si utiliza el compartimiento entre módulos Web en una aplicación de empresa, o laclasspath del módulo Web si utiliza el compartimiento de sesiones compatible con Servlet 2.2), o en el directorioque contiene los otros servlets utilizados en WebSphere Application Server.

Puesto que el objeto HttpSession es compartido por servlets a los que el usuario puede acceder, considere seguirun convenio de denominación en el ámbito del sitio para evitar conflictos.

Page 149: Ajuste_rendimiento

Evitar almacenar gráficos de objetos de gran tamaño en el objeto HttpSession

En la mayoría de aplicaciones, cada servidor necesita sólo una fracción de los datos totales de la sesión. Sinembargo, al almacenar los datos en el objeto HttpSession como un único objeto de gran tamaño, una aplicaciónhace que el producto WebSphere los procese todos cada vez.

Utilice la Afinidad de sesiones para conseguir un mayor número de coincidencias en memoria caché enWebSphere Application Server.

WebSphere Application Server tiene funciones en el plug­in de HTTP Server que sirven de ayuda para la afinidad desesiones. El plug­in lee los datos de la cookie (o el URL codificado) del navegador y ayudará a dirigir la solicitud a laaplicación o el clon correspondiente, según la clave de sesión asignada. Estas funciones aumentan el uso de lamemoria caché interna y disminuyen los aciertos de base de datos u otra instancia de WebSphere ApplicationServer.

Maximice el uso de la afinidad de sesiones y evite romper la afinidad.

Si se utiliza correctamente la afinidad de sesiones se puede mejorar el rendimiento de WebSphere ApplicationServer. La afinidad de sesiones en el entorno WebSphere Application Server es un modo de maximizar la memoriacaché interna de los objetos de sesión y disminuir el número de lecturas de la base de datos u otra instancia deWebSphere Application Server. La afinidad de sesiones funciona almacenando en la memoria caché los objetos desesión en la instancia de servidor de la aplicación con la que interactúa un usuario. Si la aplicación se despliega envarios servidores de un grupo de servidores, la aplicación puede dirigir al usuario a cualquiera de los servidores. Si elusuario comienza en el servidor1 y un poco más tarde pasa al servidor2, el servidor deberá escribir toda lainformación de sesiones en la ubicación externa, para que la instancia de servidor en la que se está ejecutando elservidor2 pueda leer la base de datos. Puede utilizar la afinidad de sesiones para que no se lea la base de datos.Con la afinidad de sesiones, el usuario comienza en el servidor1 la primera solicitud, a continuación, para cadasolicitud posterior el usuario regresará directamente al servidor1. El servidor1 solamente tiene que buscar en lamemoria caché para obtener la información de la sesión. El servidor1 no realiza nunca una llamada a la base dedatos de sesiones para obtener la información.

Si no rompe la afinidad de sesiones mejorará el rendimiento. Algunas sugerencias para evitar romper la afinidad delas sesiones son:

Combine todas las aplicaciones Web en una sola instancia de servidor de aplicaciones, si es posible, yutilice el diseño o la clonación para proporcionar el soporte de migración tras error.Cree la sesión para la página de marcos, pero no cree sesiones para las páginas dentro del marco cuandoutilice archivos JSP de marcos múltiples. (Consulte la descripción más adelante en este tema.)

Siga estas directrices cuando utilice páginas de marcos múltiples:Cree una sesión en un marco solo, o antes de acceder a ningún conjunto de marcos. Por ejemplo,suponiendo que no hay ninguna sesión asociada con el navegador y que un usuario accede a un archivo JSPde marcos múltiples, el navegador emite solicitudes simultáneas para los archivos JSP. Como las solicitudesno forman parte de ninguna sesión, los archivos JSP terminan creando varias sesiones, y todas las cookiesse envían al navegador. El navegador sólo reconoce la última cookie que llega. Por lo tanto, sólo el clientepuede recuperar la sesión asociada con la última cookie. Se recomienda crear una sesión antes de accedera páginas de múltiples marcos que utilizan archivos JSP.Por omisión, los archivos JSP obtienen una HTTPSession que utiliza el métodorequest.getSession(true). Por lo tanto, los archivos JSP crean por omisión una sesión nueva si noexiste ninguna para el cliente. Cada página del navegador está realizando la solicitud de una nueva sesión,pero sólo se utiliza una sesión por instancia de navegador. Un desarrollador puede utilizar <% @ pagesession="false" %> para desactivar la creación automática de sesiones de los archivos JSP que noaccedan a la sesión. A continuación, si la página necesita acceso a la información de sesión, eldesarrollador puede utilizar <%HttpSession session =javax.servlet.http.HttpServletRequest.getSession(false); %> para obtener la sesión yaexistente que la sesión original ha creado al crear el archivo JSP. Esta acción permite evitar que se rompa laafinidad de sesiones en la carga inicial de las páginas de marcos.Actualice los datos de sesiones utilizando sólo un marco. Cuando utilice conjuntos de marcos, lassoluciones entran en el servidor HTTP simultáneamente. Se remienda modificar los datos de sesión dentroun marco solo, para que los cambios de sesión no sean alterados temporalmente por los cambios de sesiónen el conjunto de marcos simultáneo.Evite utilizar archivos JSP de múltiples marcos en los que los marcos apunten a aplicaciones Webdiferentes. Esta acción tiene como resultado la pérdida de la sesión creada por otra aplicación Web, ya quela cookie JSESSIONID de la primera aplicación Web se altera temporalmente con la JSESSIONID creada porla segunda aplicación Web.

Proteja todas las páginas (no sólo algunas) cuando aplique seguridad a los servlets o los archivos JSPque utilizan sesiones con la integración de seguridad habilitada.

La seguridad y las sesiones no deben tener fisuras. No tiene ningún sentido proteger el acceso al estado de sesiónde manera parcial. Cuando se habilita la integración de seguridad en el recurso de gestión de sesiones, se debenproteger o desproteger todos los recursos a partir de los cuales se crea o accede a una sesión. No se puedencombinar recursos protegidos y desprotegidos.

El problema que comporta proteger sólo un par de páginas es que las sesiones creadas en páginas seguras secrean bajo la identidad del usuario autenticado. Sólo el mismo usuario puede acceder a las sesiones en otraspáginas protegidas. Para que estas sesiones no puedan ser utilizadas por usuarios no autorizados, no se puede

acceder a ellas desde una página no segura. Cuando se produce una solicitud desde una página no segura, se

Page 150: Ajuste_rendimiento

acceder a ellas desde una página no segura. Cuando se produce una solicitud desde una página no segura, seniega el acceso y se genera un error UnauthorizedSessionRequestException.(UnauthorizedSessionRequestException es una excepción de tiempo de ejecución que se registracronológicamente de forma automática.)

Utilice la actualización manual y el método sync() o la grabación basada en tiempo en aplicaciones queleen datos de sesión y no se actualizan con mucha frecuencia.

Con END_OF_SERVICE como frecuencia de grabación, cada vez que una aplicación utiliza las sesiones y cada vezque se leen los datos o se graban en dicha sesión, se actualiza el campo de hora LastAccess. Si se utilizansesiones de base de datos, se produce una nueva escritura en la base de datos. Esta actividad es un problema derendimiento que se puede evitar si se utiliza la opción Actualización manual y se vuelve a grabar el registro en labase de datos sólo cuando se actualizan los valores de datos, no en cada lectura o escritura del registro.

Para utilizar la actualización manual, actívela en el servicio de gestión de sesiones. (Consulte las tablas anteriorespara obtener información sobre la ubicación). Además, el código de la aplicación debe utilizar la clasecom.ibm.websphere.servlet.session.IBMSession en vez de la HttpSession genérica. Dentro del objetoIBMSession existe un método de sincronización. Este método indica a WebSphere Application Server que debeescribir los datos en el objeto de sesión de la base de datos. Esta actividad permite al desarrollador mejorar elrendimiento general al hacer que la información de la sesión permanezca solamente cuando sea necesaria.

Nota: Una alternativa al uso de actualizaciones manuales es utilizar las actualizaciones periódicas para quepersistan los datos en intervalos de tiempo diferentes. Esta acción da resultados similares al esquema deactualización manual.

Implemente las siguientes sugerencias para conseguir un gran rendimiento:Si las aplicaciones no cambian los datos de la sesión de manera frecuente, utilice la Actualización manual yla función de sincronización (o la actualización periódica) para que la información de la sesión persista demanera eficaz.Procure que la cantidad de datos almacenados en la sesión sea lo más pequeña posible. Con la facilidad deuso de las sesiones para mantener los datos, a veces se almacenan demasiados datos en los objetos desesión. Determine el equilibrio correcto entre el almacenamiento de datos y el rendimiento para utilizar lassesiones de manera eficaz.Si utiliza sesiones de base de datos, utilice una base de datos dedicada para la base de datos de la sesión.Evite utilizar la base de datos de aplicaciones. Esto le ayudará a evitar la contención de las conexionesJDBC y le permite obtener un rendimiento mejor de la base de datos.Verifique que tiene los fixpacks más recientes de WebSphere Application Server.

Utilice las siguientes herramientas para supervisar el rendimiento de las sesiones.Ejecute el servlet com.ibm.servlet.personalization.sessiontracking.IBMTrackerDebug. Para ejecutar esteservlet, debe tener el invocador de servlets ejecutándose en la aplicación Web desde la que desea ejecutareste servlet. O puede configurar de forma explícita este servlet en la aplicación que desea ejecutar.Utilice WebSphere Application Server Resource Analyzer que se entrega con WebSphere Application Serverpara supervisar las sesiones y estadísticas activas del entorno WebSphere Application Server.Utilice herramientas de rastreo de base de datos como, por ejemplo, "Monitoring" en DB2. (Consulte ladocumentación correspondiente al sistema de base de datos utilizado).

Conceptos relacionadosSesiones

Tareas relacionadasVisión general de tareas: gestión de sesiones HTTP

Tema de conceptos

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=cprs_best_practice

Nombre de archiv o: cprs_best_practice.html

Page 151: Ajuste_rendimiento

17. Ajuste de servicios WebEsta página proporciona un punto de partida para buscar información sobre servicios Web.

Los servicios web son aplicaciones autónomas y modulares que se pueden describir, publicar, localizar e invocar a travésde una red. Implementan una arquitectura orientada a servicios (SOA), que soporta la conexión o el compartimiento derecursos y datos de forma muy flexible y estandarizada. Los servicios se describen y organizan para dar soporte a sudescubrimiento automatizado y dinámico y a su reutilización.

Ajuste de la seguridad de servicios web para aplicaciones Versión 7.0

JCP (Java Cryptography Extension) está integrada en SDK (Software Development Kit) Versión 1.4.x y posteriores.Ya no es un paquete opcional. Sin embargo, el archivo de políticas de jurisdicción de JCE predeterminado facilitadocon SDK le permite utilizar la criptografía para imponer esta política predeterminada. Además, puede modificar lasopciones de configuración de seguridad de servicios web para conseguir el mejor rendimiento para las aplicacionesprotegidas de seguridad de servicios web.

Ajuste de las aplicaciones de mensajería segura de servicios web

Modificar algunos valores, como el tamaño de almacenamiento dinámico, puede ayudar a mejorar el rendimiento delsistema.

Ajuste de servicios web habilitados para bus

Puede utilizar la consola administrativa o un script Jacl para ajustar los valores de rendimiento de los servicios webhabilitados para bus de integración de servicios.

Información relacionadaVías de acceso de extremo a extremo para serv icios WebMigración de serv icios WebAdministración de serv icios WebScripts para serv icios WebProtección de serv icios WebDesarrollo de serv icios WebSuperv isión de serv icios WebServ icios WebResolución de problemas de serv icios Web

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_wbs_tun

Nombre de archiv o: welc6tech_wbs_tun.html

Page 152: Ajuste_rendimiento

17.1. Ajuste de la seguridad de servicios web para aplicaciones Versión 7.0JCP (Java Cryptography Extension) está integrada en SDK (Software Development Kit) Versión 1.4.x y posteriores. Ya noes un paquete opcional. Sin embargo, el archivo de políticas de jurisdicción de JCE predeterminado facilitado con SDK lepermite utilizar la criptografía para imponer esta política predeterminada. Además, puede modificar las opciones deconfiguración de seguridad de servicios web para conseguir el mejor rendimiento para las aplicaciones protegidas deseguridad de servicios web.

Acerca de esta tarea

Utilización de los archivos de políticas JCE sin restricciones

Debido a las regulaciones de importación y exportación, el archivo de políticas de jurisdicción de JCE predeterminadofacilitado con SDK le permite utilizar una criptografía sólida, pero limitada. Para garantizar esta política predeterminada,WebSphere Application Server utiliza un archivo de políticas de jurisdicción de JCE que puede afectar el rendimiento. Lapolítica de jurisdicción de JCE predeterminada afecta el rendimiento de las funciones criptográficas soportadas por WebServices Security. Si tiene aplicaciones de servicios web que utilizan la seguridad a nivel de transporte para el cifrado XMLo las firmas digitales, es posible que se produzca una degradación del rendimiento en comparación con releases anterioresde WebSphere Application Server. Sin embargo, IBM y Sun Microsystems proporcionan versiones de estos archivos depolítica de jurisdicción que no tienen restricciones en cuanto al nivel criptográfico. Si las regulaciones de importación yexportación de su país lo permiten, baje uno de estos archivos de política de jurisdicción. Después de bajar uno de estosarchivos, el rendimiento de JCE y de la seguridad de servicios web podría mejorar.

Atención: Los fixpacks que contienen actualizaciones de Software Development Kit (SDK) podrían sobrescribir archivos depolíticas sin restricciones. Realice una copia de seguridad de los archivos de políticas sin restricciones antes de aplicar unfixpack y vuelva a aplicar dichos archivos una vez aplicado el fixpack.

Importante: El país de origen puede tener restricciones en la importación, la posesión, el uso o la reexportación a otropaís del software de cifrado. Antes de descargar o bien utilizar los archivos de políticas sin restricciones, debe consultarlas leyes de su país, sus regulaciones y las políticas relativas a la importación, posesión, uso y reexportación de softwarecifrado, para determinar si esto está permitido.

Para las plataformas WebSphere Application Server que utilizan IBM Developer Kit, Java Technology Edition Versión 6,puede obtener archivos de políticas de jurisdicción ilimitada completando los pasos siguientes:

1. Vaya al sitio web siguiente: http://www.ibm.com/developerworks/java/jdk/security/index.html2. Pulse Java SE 63. Desplácese hacia abajo y pulse IBM SDK Policy files (Archivos de políticas de IBM SDK).

Se muestra el sitio web de archivos de políticas JCE sin restricciones para SDK.

4. Pulse Inicio de sesión y proporcione el ID y la contraseña de la intranet de IBM o regístrese en IBM para bajar losarchivos.

5. Seleccione los archivos correctos de políticas JCE sin limitaciones y, a continuación, pulse Continuar.6. Lea el acuerdo de licencia y, a continuación, pulse Acepto.7. Pulse Download Now (Descargar ahora).

ResultadosDespués de seguir estos pasos, se colocan dos archivos JAR (Java Archive) en el directorio de la JVMjre/lib/security/.

EjemploUtilización de las opciones de configuración para ajustar WebSphere Application Server

Cuando se utiliza WS­Security para la protección a nivel de mensajes del mensaje SOAP en WebSphere ApplicationServer, la selección de las opciones de configuración puede afectar al rendimiento de la aplicación. Las directricessiguientes le ayudarán a conseguir el mejor rendimiento para las aplicaciones protegidas de WS­Security.

1. Utilice WS­SecureConversation cuando sea necesario para las aplicaciones JAX­WS. Habitualmente, el rendimientodel uso de claves simétricas con un Secure Conversation es mejor que el de las claves asimétricas que se utilizancon X.509.

Nota: Se da soporte al uso de WS­SecureConversation sólo en aplicaciones JAX­WS, no en aplicaciones JAX­RPC.

2. Utilice los tipos de señal estándar que proporciona WebSphere Application Server. Se da soporte al uso de señalespersonalizadas, pero se consigue un mayor rendimiento con el uso de los tipos de señales proporcionados.

3. Para las firmas, utilice sólo el algoritmo de transformación de canonicalización exclusivo. Consulte la Página web derecomendaciones W3 (http://www.w3.org/2001/10/xml­exc­c14n#) para obtener más información.

4. Siempre que sea posible, evite utilizar la expresión XPath para seleccionar las partes del mensaje SOAP que deseaproteger. Las políticas WS­Security que se proporcionan con WebSphere Application Server para las aplicacionesJAX­WS utilizan expresiones XPath para especificar la protección de determinados elementos en la cabecera deseguridad, como Timestamp, SignatureConfirmation y UsernameToken. El uso de estas expresiones XPath seoptimiza, perro otros usos no.

5. Aunque hay ampliaciones de Websphere Application Server para WS­Security que se pueden utilizar para insertarlos elementos nonce y timestamp en las partes del mensaje SOAP antes de firmar o cifrar las partes del mensaje,

Page 153: Ajuste_rendimiento

debe evitar el uso de dichas ampliaciones para obtener un mejor rendimiento.6. Hay una opción para enviar el valor CipherValue codificado en base 64 de los elementos cifrados de WS­Security en

forma de MTOM. En el caso de los elementos cifrados pequeños, el mejor rendimiento se consigue evitando estaopción. Por lo que se refiere a elementos cifrados mayores, el mejor rendimiento se consigue utilizando estaopción.

7. Al firmar y cifrar elementos en el mensaje SOAP, especifique el orden firmar primero, cifrar después.8. Al añadir un elemento de indicación de fecha y hora al mensaje, dicha indicación se debe añadir a la cabecera de

seguridad antes del elemento de firma. Esto se consigue utilizando la opción del diseño de la cabecera deseguridad Strict o LaxTimestampFirst en la configuración de política WS­Security.

9. Para aplicaciones JAX­WS, utilice la configuración basada en políticas, en lugar de la configuración basada en laAPI de WSS.

Qué hacer a continuación

En IBM WebSphere Application Server Versión 6.1 y posteriores, la seguridad de servicios web soporta el uso de losdispositivos de hardware criptográfico. Con la seguridad de servicios web, existen dos formas de uso para los dispositivoscriptográficos de hardware. Para obtener más información, consulte la sección Soporte de dispositivos criptográficos dehardware para la seguridad de servicios web.

En esta información...

Conceptos relacionadosSoporte de dispositivos criptográficos dehardware para la seguridad de servicios web

Tareas relacionadasProteger aplicaciones utilizando la seguridada nivel de mensajes para servicios web

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=twbs_tunev 6wss

Nombre de archiv o: twbs_tunev 6wss.html

Page 154: Ajuste_rendimiento

17.2. Ajuste de las aplicaciones de mensajería segura de servicios webModificar algunos valores, como el tamaño de almacenamiento dinámico, puede ayudar a mejorar el rendimiento delsistema.

Procedimiento

1. Ajuste el tamaño del almacenamiento dinámico de JVM. Aumentar el tamaño de almacenamiento dinámico, porejemplo a 1536, puede evitar errores de memoria agotada, especialmente en las situaciones siguientes:

Cuando está componiendo WS­ReliableMessaging con WS­Notification.Cuando está utilizando un conjunto de políticas WS­I RSP (Reliable Asynchronous Message Profile).Cuando se utiliza WS­ReliableMessaging en situaciones en las que se debe realizar un gran cantidad derecuperación.

Para obtener más información sobre cómo ajustar JVM, consulte Ajuste de la máquina virtual para Java de IBM.

2. Si la aplicación utiliza una calidad de servicio gestionada, ajuste la propiedad sib.wsrm.tokenLockTimeout del motorde mensajería que se especifica en la política de enlace para la aplicación. Consulte el tema Propiedadespersonalizadas de la integración de servicios para obtener más información acerca de esta propiedad y los motivospor los que es posible que desee cambiar el valor.

En esta información...

Tareas relacionadasConocimientos generales de WS­ReliableMessaging

Referencia relacionadaPropiedades personalizadas de integraciónde servicios

Redbooks de IBM,demostraciones, formación ymucho más

(Índice)

Utilice las sugerencias de IBM para recuperarcontenido relacionado de ibm.com y otro tipo decontenido identificado como contenido de interés.

Esta característica requiere acceso a Internet.

Sugerencias de IBM

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=twbs_wsrm_tune

Nombre de archiv o: twbs_wsrm_tune.html

Page 155: Ajuste_rendimiento

17.3. Ajuste de servicios web habilitados para busPuede utilizar la consola administrativa o un script Jacl para ajustar los valores de rendimiento de los servicios webhabilitados para bus de integración de servicios.

Acerca de esta tarea

Los servicios web habilitados para bus utilizan de forma dinámica una ruta rápida a través del bus siempre que sea posible.Esta ruta rápida se utiliza si se cumplen los criterios siguientes:

El puerto de entrada y el puerto de salida del servicio están en el mismo servidor.No hay mediaciones en la vía desde el puerto de entrada al puerto de salida.

Se pueden realizar más optimizaciones si su configuración cumple los criterios siguientes:El URI de WSDL de la plantilla de entrada es la misma ubicación que el URI de ubicación de WSDL del servicio dedestino de salida.El nombre de servicio WSDL de la plantilla del servicio de entrada coincide con el nombre de servicio WSDL desalida.El nombre de puerto de plantilla del servicio de entrada coincide con el nombre de puerto WSDL de salida.La correlación de los espacios de nombres está inhabilitada (es decir, ha establecido la propiedad del servicio deentrada com.ibm.websphere.wsgw.mapSoapBodyNamespace en false).La seguridad a nivel de operación no está habilitada en el servicio de salida.

Si sus servicios web utilizan la ruta rápida, no es necesario que ajuste las mediaciones o el bus de integración deservicios. No obstante, el ajuste es una buena práctica, ya que un entorno típico tendrá al menos un servicio de ruta norápida (por ejemplo, mediada).

Para mejorar el rendimiento de los servicios web habilitados para bus puede ajustar los siguientes parámetros:El tamaño de almacenamiento dinámico de la máquina virtual Java (JVM). Esto ayuda a garantizar que haysuficiente memoria disponible para procesar mensajes grandes, o mensajes con archivos adjuntos grandes.El número máximo de instancias de un bean controlado por mensajes que la especificación de activación permitepara el adaptador de recursos de tecnologías de integración de servicios. Esto regula el número de clientessimultáneos que reciben servicio.El tamaño máximo de lote para los lotes de mensajes que han de entregarse a un cliente. De formapredeterminada,sólo se entrega un mensaje a una instancia de bean controlado por mensajes cada vez; puedemejorar el rendimiento permitiendo el envío de mensajes en lotes a un bean controlado por mensajes.El número de hebras disponibles para solicitudes de servicio para cada cliente. Es decir, el número de hebrasdisponible en la agrupación de hebras predeterminada, la agrupación de hebras del contenedor web y la agrupaciónde hebras de mediación para un servidor de aplicaciones concreto.El número de hebras disponible en la agrupación de hebras de mediación. Esto presupone que sus mediacionesutilizan soporte simultáneo cuando es apropiado, como se explica en Mediaciones simultáneas.

Si tiene mediaciones que actúan en cabeceras SOAP, puede mejorar el rendimiento insertando los esquemas de cabeceraasociados (archivos .xsd) en el repositorio SDO.

Para ajustar los servicios web habilitados para bus, efectúe uno de los siguientes pasos:Utilice la consola administrativa para ajustar los servicios web habilitados para bus, oUtilice un script Jacl para ajustar los servicios web habilitados para bus.

Si tiene mediaciones que actúan en cabeceras SOAP, complete también los pasos siguientes:Inserte los esquemas de cabecera en el repositorio SDO.

Procedimiento

Opcional: Para utilizar la consola administrativa para ajustar los servicios web habilitados para bus, efectúe lospasos siguientes:

1. Consulte el tema Ajuste de máquinas virtuales Java para establecer el tamaño del almacenamiento dinámicode JVM en un valor superior al valor predeterminado (256 megabytes). Por lo regla general, el valor debe serel mayor posible sin incurrir en la paginación.

2. Utilice el tema Ajuste de la mensajería de integración de servicios para ajustar el número máximo deinstancias de un bean controlado por mensajes, el tamaño de lote máximo de los lotes de mensajes para unbean y el número de hebras disponibles de las solicitudes de servicio para un bean.

3. Consulte el tema Ajuste del entorno de servicio de aplicaciones para ajustar el entorno general de servicio deaplicaciones, en concreto el tamaño de la agrupación de hebras del contenedor web. En un servidor que estésirviendo solicitudes exclusivamente a servicios web habilitados para bus, la agrupación de hebraspredeterminada y la agrupación de hebras del contenedor web deben tener el mismo tamaño.

4. Utilice el tema Configuración de la agrupación de hebras de mediación para configurar el número de hebrasdisponible en las mediaciones simultáneas.

Si va a utilizar un script para ajustar los servicios web habilitados para bus, utilice el cliente de scripts wsadminpara ejecutar un script parecido al ejemplo siguiente. Los valores de este script indican parámetros que debeinvestigar en términos de rendimiento, así que debe asegurarse de que comprende el impacto que tendrá en elsistema cambiar estos parámetros, especialmente, en casos en que los servicios web habilitados para bus quizá nosean el único trabajo que maneja el servidor de aplicaciones.

Page 156: Ajuste_rendimiento

sean el único trabajo que maneja el servidor de aplicaciones.

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Script de ajuste de WebSphere de servicios web habilitados para bus#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­### Este script está diseñado para modificar algo del ajuste correspondiente a un# despliegue de servicios web habilitados para bus.# Para ajustar los parámetros de configuración, cambie los valores# proporcionados más abajo. En este script se presupone que todos los nombres de servidor# de una configuración de clúster son exclusivos.## Para invocar el script, escriba:# wsadmin ­f tuneWAS.py <scope> <id># ámbito ­ 'cluster' o 'server'# id ­ nombre del objeto de destino dentro del ámbito (es decir, nombreservidor)## Ejemplo:# wsadmin ­f tuneWAS.py server server1# wsadmin ­f tuneWAS.py cluster WSGWCluster###­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

import sys

AdminConfig.setValidationLevel("NONE")

print "Starting script..."print "Reaqding config parameters..."

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# PARÁMETROS DE CONFIGURACIÓN COMUNES# ­ Ajuste estos parámetros en función del sistema de destino correspondiente (valores predeterminados entre paréntesis)#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Agrupación de hebras WebContainer(10,50)

minWebPool=10maxWebPool=15

# Agrupación de hebras predeterminada ­ (Multiprotocol MDB) (10,50)minDefaultPool=10maxDefaultPool=15

# Agrupación de hebras de mediaciones (1,5)minMediationPool=10maxMediationPool=15

# Valores HTTP KeepAlive (true, 100)keepAliveEnabled="true"maxPersistentRequests=­1

# Tiempos de espera de inactividad para agrupaciones de hebras (3500)inactivity=3500

# Propiedades de JVMminHeap=1280maxHeap=1280verboseGC="false"genericArgs=""

# J2CActivationSpec para el adaptador de recursos SIB_RASIB_RA_maxConcurrency=40SIB_RA_maxBatchSize=5

# Seguridad Jav2 (false para 5.1 y true para 6.0)j2Security="false"

# Arranque del servidor paraleloparallelStart="false"

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Comprobar/imprimir utilización#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

def printUsageAndExit():

Page 157: Ajuste_rendimiento

print print "Usage: wsadmin ­f tuneWAS.py <cluster | server> <name>" sys.exit(0)

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Varios procedimientos#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

def getName(objectid): endIndex=objectid.index("(") return objectId[0:endIndex]

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Analizar argumentos de línea de mandatos#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

print "Parsing command line arguments..."

if len(sys.argv)<2: printUsageAndExit()else: scope=sys.argv[0] print "Scope: %s" % scope

if scope=="cluster": clustername=sys.argv[1] print "Cluster: %s" % clustername elif scope=="server": servername=sys.argv[1] print "Server: %s" % servername else: print "Error: Invalid Argument (%s)" % scope printUsageAndExit()

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Obtener lista de servidores#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

printprint "Obtaining server list..."

serverList=[]

if scope=="cluster": cluster=AdminConfig.getid("/ServerCluster:%s/" % clustername) temp=AdminConfig.showAttribute(cluster , "members") memberList=" ".split(temp[1:­1]) for member in memberList: memberName=getName(member) serverList.insert(0,AdminConfig.getid("/Server:%s/" % memberName))else: server=AdminConfig.getid("/Server:%s/" % servername) serverList.insert(0,server)

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Imprimir propiedades de configuración#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

printprint "WebSphere configuration"print "­­­­­­­­­­­­­­­­­­­­­­­"print ""print " Enforce Java2 Security: %s" % j2Securityprint

print "Servers:"for server in serverList: print " %s" % getName(server)

printprint " Web ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­"print " Min WebContainer Pool Size: %s" % minWebPoolprint " Max WebContainer Pool Size: %s" % maxWebPoolprint " JVM ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­"print " Min JVM Heap Size: %s" % minHeapprint " Max JVM Heap Size: %s" % maxHeapprint " Verbose GC: %s" % verboseGCprint

Page 158: Ajuste_rendimiento

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Modificar parámetros de célula#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

# Acceso a la configuración de seguridad basada en célulaprint "Accessing security configuration..."sec=AdminConfig.list("Security")attrs=[["enforceJava2Security",j2Security]]print "Updating secuirty..."AdminConfig.modify(sec,attrs)

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# Modificar parámetros de servidor#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

for server in serverList: servername=getName(server) print print "Serevr: %s" % servername print

# Acceso a la configuración de arranque de servidor print "Accessing server startup configuration..." print "Parallel Startup (old/new): %s/%s" print % (AdminConfig.showAttribute(server,"parallelStartEnabled") , parallelStart) attrs=[['parallelStartEnabled' , parallelStart]] print "Updating server startup..." print AdminConfig.modify(server , attrs)

# Acceso a la configuración de agrupación de hebras de contenedor web print "Accessing web container thread pool configuration..." tpList=AdminConfig.list('ThreadPool',server).splitlines()

webPool=filter(lambda x: re.search("WebContainer" , x) , tpList)[0] print "ThreadPool MaxSize (old/new): %s/%s" print % (AdminConfig.showAttribute(webPool , "maximumSize") , maxWebPool) print "ThreadPool MinSize (old/new): %s/%s" print % (AdminConfig.showAttribute(webPool , "minimumSize") , minWebPool) print "ThreadPool Inactivity Timeout (old/new): %s/%s" print % (AdminConfig.showAttribute(webPool , "inactivityTimeout") , inactivity) attrs=[["maximumSize" , maxWebPool] , ["minimumSize" , minWebPool] , ["inactivityTimeout" , inactivity]] print "Updating web container thread pool..." print AdminConfig.modify(webPool , attrs)

# Acceso a la configuración de agrupación de hebras predeterminada print "Accessing default thread pool configuration..." tpList=AdminConfig.list("ThreadPool" , server) webPool=filter(lambda x: re.search("Default" , x) , tpList)[0] print "ThreadPool MaxSize (old/new): %s/%s" print % (AdminConfig.showAttribute(webPool , "maximumSize") , maxDefaultPool) print "ThreadPool MinSize (old/new): %s/%s" print % (AdminConfig.showAttribute(webPool , "minimumSize") , minDefaultPool) print "ThreadPool Inactivity Timeout (old/new): %s/%s" print % (AdminConfig.showAttribute(webPool , "inactivityTimeout") , inactivity) attrs=[["maximumSize" , maxDefaultPool] , ["minimumSize" , minDefaultPool] , ["inactivityTimeout" , inactivity]] print "Updating default thread pool..." print AdminConfig.modify(webPool , attrs)

# Creación de una agrupación de hebras de mediaciones print "Creating Mediations thread pool" me=AdminConfig.list(SIBMessagingEngine) mtpName="%s­mediationThreadPool" % AdminConfig.showAttribute(me , "name") tpAttrs=[["name" , mtpName] , ["minimumSize" , minMediationPool] , ["maximumSize" , maxMediationPool]] print "ThreadPool Name : %s" % mtpName print "ThreadPool MaxSize : %s" % maxMediationPool print "ThreadPool MinSize : %s" % minMediationPool AdminConfig.create("ThreadPool" , me , tpAttrs , "mediationThreadPool") print "Mediations Thread Pool Created" print

# Acceso a la configuración HTTP keepalive

Page 159: Ajuste_rendimiento

print "Accessing HTTP KeepAlive configuration..." HTTPInbound=AdminConfig.list("HTTPInboundChannel" , server)

http2=filter(lambda x: re.search("HTTP_2" , x) , HTTPInbound)[0] print "KeepAlive Enabled (old/new): %s/%s" print % (AdminConfig.showAttribute(http2 , "keepAlive") ,keepAliveEnabled) print "Max Persistent Requests (old/new): %s/%s" print % (AdminConfig.showAttribute(http2 , print "maximumPersistentRequests") , maxPersistentRequests) attrs=[["keepAlive" , keepAliveEnabled] , print ["maximumPersistentRequests" , maxPersistentRequests]] print "Updating HTTP KeepAlives" print AdminConfig.modify(http2 , attr)

# Acceso a la configuración JVM print "Accessing JVM configuration..." jvm=AdminConfig.list("JavaVirtualMachine" , server) print "Initial Heap Size (old/new): %s/%s" print % (AdminConfig.showAttribute(jvm , "initialHeapSize") , minHeap) print "Maximum Heap Size (old/new): %s/%s" print % (AdminConfig.showAttribute(jvm , "maximumHeapSize") , maxHeap) print "VerboseGC Enabled (old/new): %s/%s" print % (AdminConfig.showAttribute(jvm , "verboseModeGarbageCollection") , verboseGC) attrs=[["initialHeapSize" , minHeap] , ["maximumHeapSize" , maxHeap], ["verboseModeGarbageCollection" , verboseGC]] print "Updating JVM..." print AdminConfig.modify(jvm , attrs)

# Accesso a J2CActivationSpec para el adaptador de recursos SIB print "Modifying the J2CActivationSpec for the SIB Resource Adapter" actSpec=AdminConfig.getid("/J2CActivationSpec:SIBWS_OUTBOUND_MDB/") propSet=AdminConfig.showAttribute(actSpec , "resourceProperties").splitlines()

propSet=propSet[0]

maxConcurrency=["value" , SIB_RA_maxConcurrency] maxConcurrency=[maxConcurrency]

maxBatchSize=["value" , SIB_RA_maxBatchSize] maxBatchSize=[maxBatchSize]

for propId in propSet: if AdminConfig.showAttribute(propId , "name")=="maxConcurrency": AdminConfig.modify(propId , maxConcurrency) print "Custom property changed : %s" % AdminConfig.showall(propId) if AdminConfig.showAttribute(propId , "name")=="maxBatchSize": AdminConfig.modify(propId , maxBatchSize) print "Custom property changed : %s" % AdminConfig.showall(propId) print "J2CActivationSpec modifications complete"

printprint "Script completed..."print "Saving config..."AdminConfig.save()

Opcional: Si tiene mediaciones que actúan en cabeceras SOAP, inserte los esquemas asociados (archivos .xsd)en el repositorio SDO como se describe en Inclusión de esquemas de cabecera SOAP en el repositorio SDO.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjw_tune

Nombre de archiv o: tjw_tune.html

Page 160: Ajuste_rendimiento

17.3.1. Inclusión de esquemas de cabecera SOAP en el repositorio SDO

Acerca de esta tarea

Las mediaciones que acceden a las cabeceras SOAP deben garantizar que el esquema de cabecera SOAP se pone adisposición del repositorio SDO. Esto simplifica el acceso a los campos de cabecera (consulte el Ejemplo de código deservicios web) y puede proporcionar una importante ventaja en el rendimiento. Normalmente, el esquema (archivo .xsd)para una cabecera SOAP ya está disponible para el desarrollador de aplicaciones.

Éste es un ejemplo de cabecera (utilizada para el redireccionamiento) que se pasa en el mensaje SOAP:

<soapenv:Header><hns0:myClientToken xmlns:hns0="http://www.ibm.com/wbc"> <UseRoutingId>true</ UseRoutingId > <RoutingID>5</ RoutingID > </hns0: myClientToken ></soapenv:Header>

Este es un ejemplo de esquema de cabecera asociada:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com/wbc" elementFormDefault="unqualified"><xs:element name=" myClientToken"> <xs:complexType> <xs:sequence> <xs:element name="UseRoutingId" type="xs:string"/> <xs:element name="RoutingID" type="xs:string"/> </xs:sequence> </xs:complexType></xs:element></xs:schema>

Para insertar el esquema en el repositorio SDO, complete los pasos siguientes:

Procedimiento

1. Cree un script que contenga el código siguiente:Para Jython, cree un script llamado sdoXSDImport.py:

#xsdFile=sys.argv[0]xsdKey=sys.argv[1]sdoRep=AdminControl.queryNames("*,type=SdoRepository,node=%s" % AdminControl.getNode)print AdminControl.invoke(sdoRep , importResource([xsdKey , xsdFile]))

Para Jacl, cree un script llamado sdoXSDImport.jacl:

#set xsdFile [lindex $argv 0]set xsdKey [lindex $argv 1]set sdoRep [$AdminControl queryNames *,type=SdoRepository,node=[$AdminControl getNode]]puts [$AdminControl invoke $sdoRep importResource [list $xsdKey $xsdFile]]

Nota: Para crear un script equivalente a fin de eliminar un recurso del repositorio SDO, haga una copia de estescript y modifique la línea final del modo siguiente:

Utilizando Jython:

AdminControl.invoke(sdoRep , "removeResource" , [[xsdKey , "false"]])

Utilizando Jacl:

$AdminControl invoke $sdoRep removeResource [list $xsdKey false]

2. Utilice el cliente de scripts wsadmin(desde dentro de Qshell) para insertar el esquema en el repositorio SDOespecificando el mandato siguiente.

Para utilizar el script Jython:

wsadmin ­lang jython ­f sdoXSDImport.py su_cabecera.xsd su_espacio_nombres_cabecera

Page 161: Ajuste_rendimiento

Para utilizar el script Jacl:

wsadmin ­f sdoXSDImport.jacl su_cabecera.xsd su_espacio_nombre_cabecera

dondesu_cabecera.xsd es el nombre del archivo que contiene el esquema de cabecera.su_nombre_espacios_cabecera es el espacio de nombres de destino de la cabecera. Por ejemplo,http://yourCompany.com/yourNamespace.

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=tjw_tune_xsd

Nombre de archiv o: tjw_tune_xsd.html

Page 162: Ajuste_rendimiento

18. Ajuste del área de trabajoEsta página proporciona un punto de partida para buscar información sobre las áreas de trabajo, una extensión deWebSphere para mejorar la productividad del desarrollador.

Las áreas de trabajo proporcionan posibilidades muy parecida a las de las variables globales. Permiten que se compartaeficazmente la información en una aplicación distribuida.

Por ejemplo, es posible que desee añadir información de perfil a medida que cada cliente entra en la aplicación. Al situaresta información en un área de trabajo, ésta está disponible en toda la aplicación, eliminando la necesidad de codificarmanualmente una solución o leer y escribir información en una base de datos.

Consideraciones de rendimiento para el servicio de área de trabajo

Consideraciones de rendimiento para el servicio de área de trabajo

Información relacionadaAdministración del área de trabajoDesarrollo del área de trabajoÁrea de trabajo

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=welc6tech_wa_tun

Nombre de archiv o: welc6tech_wa_tun.html

Page 163: Ajuste_rendimiento

18.1. Consideraciones de rendimiento para el servicio de área de trabajo

Qué hacer a continuación

Tema de tarea

Condiciones de uso | Comentarios

Última actualización: Jan 13, 2011 2:32:05 AM EST

http://www14.sof tware.ibm.com/webapp/wsbroker/redirect?v ersion=compass&product=was­base­dist&topic=container_workareaserv ice_considerations

Nombre de archiv o: container_workareaserv ice_considerations.html