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, el rendimiento y la escalado de las aplicaciones. Puede configurar tareas que identifiquen las solicitudes entrantes, los intentos de acceso que determinan la simultaneidad y otras características de acceso a datos, así como los perfiles que correlacionan las tareas con los intentos de acceso.
La posibilidad de configurar el servidor de aplicaciones puede aumentar el rendimiento, la eficacia y la escalabilidad, a la vez que se reducen los costes de desarrollo y mantenimiento. El servicio de perfilado de aplicaciones no tiene parámetros de ajuste, aparte de un recuadro de selección para inhabilitar el servicio si no es necesario. No obstante, la carga adicional del servicio de perfilado de aplicaciones es pequeña, por lo que no se debe inhabilitar, o se pueden producir resultados imprevisibles.
Los intentos de acceso permiten especificar las características del acceso a datos. El entorno de tiempo de ejecución de WebSphere utiliza estas sugerencias para optimizar el acceso a los datos, mediante el establecimiento de la simultaneidad y el nivel de aislamiento adecuados. Se pueden agrupar varias sugerencias de intento de acceso en una política de intento de acceso.
En el producto, se recomienda que configure el intento de acceso a nivel de bean para cargar un bean dado. El perfilado de aplicaciones permite configurar varias políticas de intento de acceso en el bean de entidad, si es necesario. Algunos llamantes pueden cargar un bean con el objeto de leer datos, mientras que otros pueden cargar el bean para su actualización. La posibilidad de configurar el servidor de aplicaciones puede aumentar el rendimiento, la eficacia y la escalabilidad, a la vez que se reducen los costes de desarrollo y mantenimiento.
Los intentos de acceso permiten configurar el contenedor de EJB para proporcionar un rendimiento óptimo a partir del tipo específico de enterprise bean utilizado. Se pueden especificar de forma declarativa varias sugerencias de intento de acceso en el momento del despliegue para indicar a los recursos de WebSphere (por ejemplo, el contenedor y el gestor de persistencia) que proporcionen los servicios de intento de acceso correctos para cada solicitud de EJB.
El servicio de perfilado de aplicaciones aumenta el rendimiento y la productividad de los beans de entidad, al adaptar el comportamiento del tiempo de ejecución. El servicio de perfilado de aplicaciones permite personalizar las optimizaciones de EJB para varios patrones de acceso de usuarios sin necesidad de recurrir a las "peores situaciones posibles", por ejemplo, la actualización pesimista en un bean al que se accede con el método findByPrimaryKey, independientemente de si el cliente lo necesita para la lectura o una actualización.
El perfilado de aplicaciones ofrece la posibilidad de definir la siguiente jerarquía:
. Las tareas gestionadas por contenedor identifican unidades de trabajo (UOW - Units of Work) y se asocian a un método o un conjunto de métodos. Cuando se invoca un método asociado con la tarea, el nombre de la tarea se propaga con la solicitud. Por ejemplo, la UOW hace referencia a una vía de acceso única dentro de la aplicación que se puede corresponder con una transacción o sesión de actividad. El nombre de la tarea se asigna de forma declarativa a un cliente o servlet Java EE, o al método de un enterprise bean. El nombre de la tarea identifica el punto de inicio de un gráfico o subgráfico de llamada; el nombre de tarea va desde el punto de inicio del gráfico en sentido descendente por todas las solicitudes IIOP, identificando las siguientes invocaciones a lo largo del gráfico como pertenecientes a la tarea configurada. El procedimiento recomendado siempre que se inicie una UOW, por ejemplo, una transacción o una sesión de actividad, es asignar una tarea a ese punto de inicio.El servicio de perfilado de aplicaciones asocia las tareas propagadas con las políticas de intento de acceso. Cuando se carga un bean y se recuperan los datos, las características utilizadas para la recuperación de los datos vienen dictadas por el perfil de aplicación. El perfil de aplicación configura la política de intento de acceso y las alteraciones temporales que se deben utilizar para acceder a los datos para una tarea determinada.
Las políticas de intento de acceso determinan cómo se cargan los beans para cada tarea y cómo se accede a los datos durante la transacción. La política de intento de acceso es un grupo con nombre de sugerencias de intento de acceso. Las sugerencias se pueden utilizar según las características de la base de datos y el gestor de recursos. Las distintas sugerencias de intento de acceso que se aplican a la operación de acceso a datos determinan la integridad de los datos. La norma general es que cuanto mayor es la integridad de los datos, mayor es la carga adicional. El aumento de la carga adicional disminuye la productividad y las oportunidades de acceso simultáneo a datos desde varios clientes.
Si se especifican, las alteraciones temporales de intento de acceso proporcionan una configuración adicional de la política de intento de acceso.
Procedimientos recomendados
- Se carga el mismo bean con distintos patrones de acceso a datos
Se puede volver a utilizar el mismo bean o el mismo conjunto de beans en varias aplicaciones, pero cada una de estas aplicaciones tendrá requisitos diferentes para el bean o los beans dentro del gráfico de invocación. Una aplicación puede necesitar se carguen los beans para la actualización, mientras que otra necesitará que se carguen los beans sólo para la lectura. El perfilado de aplicaciones habilita la configuración en el momento del despliegue para que los beans distingan entre los requisitos de carga de EJB.
- Clientes diferentes tienen requisitos de acceso a datos diferentes
Se puede utilizar el mismo bean o el mismo conjunto de beans para distintos tipos de solicitudes de cliente. Cuando esos clientes tienen requisitos diferentes para el bean, o para los beans dentro del gráfico de invocación, se pueden utilizar el perfilado de aplicaciones para adaptar las características de carga de beans a los requisitos del cliente. Un cliente puede necesitar se carguen los beans para la actualización, mientras que otro necesitará que se carguen los beans sólo para la lectura. El perfilado de aplicaciones habilita la configuración en el momento del despliegue para que los beans distingan entre los requisitos de carga de EJB.
Herramientas de supervisión
Puede utilizar Tivoli Performance Viewer, la base de datos y los registros cronológicos como herramientas de supervisión.
- Ámbito de colección:
El grupo de enterprise beans contiene información de ciclo de vida de EJB, ya sea un valor acumulativo para un grupo de beans o para beans específicos. Puede supervisar esta información para determinar las diferencias entre el uso del ámbito de la sesión de actividad o el ámbito de la transacción. Para el ámbito de la transacción, según cómo se definan las transacciones de contenedor, se pueden asociar activaciones y desactivaciones con las invocaciones de método. La aplicación puede utilizar el ámbito de la sesión de actividad para reducir la frecuencia de activaciones y desactivaciones. Para obtener más información, consulte el tema Utilización del servicio ActivitySession.
- Incremento de colección:
El grupo de enterprise beans contiene información de ciclo de vida de EJB, ya sea un valor acumulativo para un grupo de beans o para beans específicos. Puede supervisar el Número de activaciones para observar el número de enterprise beans activados para una operación findByPrimaryKey determinada. Por ejemplo, si el incremento de colección se establece como 10, en lugar de como 25 (el valor por omisión), el Número de activaciones muestra un valor 10 para la operación findByPrimaryKey inicial, antes de que se ejecute ningún repetidor de conjunto de resultados. Si el número de activaciones no sobrepasa casi nunca el incremento de colección, reduzca el valor del incremento de colección.
- Incremento de búsqueda previa del gestor de recursos:
El incremento de búsqueda previa del gestor de recursos es una sugerencia que aplica el motor de la base de datos para depender de la base de datos. Tivoli Performance Viewer no tiene una métrica disponible para mostrar el efecto del valor del incremento de búsqueda previa del gestor de recursos.
- Sugerencia de lectura hacia adelante:
El grupo de enterprise beans contiene información de ciclo de vida de EJB, ya sea un valor acumulativo para un grupo de beans o para beans específicos. Puede supervisar el Número de activaciones para observar el número de enterprise beans activados para una solicitud determinada. Si no se está utilizando una asociación de lectura hacia adelante, el Número de activaciones muestra un número inicial inferior. Si se está utilizando una asociación de lectura hacia adelante, el Número de activaciones representa el número de activaciones de todo el gráfico de llamada.
Las herramientas de base de datos son muy útiles para supervisar las distintas características de carga de beans que tienen problemas de competencia y simultaneidad. Estos problemas se pueden solucionar con el perfilado de aplicaciones, o se pueden empeorar si se aplican incorrectamente políticas de intento de acceso.
Las herramientas de base de datos son muy útiles para supervisar características de bloqueo y competencia como, por ejemplo, los bloqueos, los puntos muertos y las conexiones abiertas. Por ejemplo, para los bloqueos, DB2 Snapshot Monitor puede mostrar estadísticas de las esperas de bloqueo, los tiempos de espera de bloqueo y las escaladas de bloqueo. Si se producen excesivas esperas de bloqueo y se sobrepasa demasiadas veces el tiempo de espera, el perfilado de aplicaciones puede definir tareas de cliente específicas que requieran un nivel más estricto de bloqueo, y otras tareas de cliente que no requieran bloqueos. O también se puede aplicar otra política de intento de acceso, con un bloqueo menos restrictivo. Después de aplicar este cambio de configuración, el supervisor de instantáneas mostrará un comportamiento con menos bloqueos. Consulte la información de la base de datos que esté utilizando sobre cómo supervisar los bloqueos y la competencia.
Las anotaciones cronológicas del servidor de aplicaciones se pueden supervisar para obtener información sobre las retrotracciones, los puntos muertos y otras características de transacciones o de acceso a datos que puedan disminuir el rendimiento o hacer que falle la aplicación.