Ajuste de la memoria caché de EJB con el servicio de rastreo

El tamaño de la memoria caché de EJB (Enterprise JavaBeans) puede afectar al rendimiento del servidor de aplicaciones. Uno de los pasos para ajustar el contenedor de EJB a niveles de rendimiento óptimo es ajustar la memoria caché de EJB.

Antes de empezar

Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.

Acerca de esta tarea

El procedimiento siguiente describe cómo utilizar el servicio de rastreo de diagnóstico para ayudarle a determinar el mejor tamaño de memoria caché.

Procedimiento

  1. Habilite el rastreo de memoria caché de EJB. Para obtener información sobre cómo trabajar con el servicio de rastreo, consulte el tema Trabajar con el rastreo. [IBM i][AIX Solaris HP-UX Linux Windows]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

    [IBM i][AIX Solaris HP-UX Linux Windows]Establezca Tamaño máximo de archivo en 200 MB o más. Si deja el valor predeterminado de 20MB, podría llenar el registro cronológico de rastreo único de 20 MB y perder algunos datos debido a la acomodación del rastreo.

    [IBM i][AIX Solaris HP-UX Linux Windows]Establezca Número máximo de archivos históricos en 5. Cinco archivos deben ser suficientes, pero si ve que los cinco archivos están llenos y se produce una acomodación del rastreo, aumente este valor.

  2. [IBM i][AIX Solaris HP-UX Linux Windows]Detenga el servidor, suprima los archivos de registros cronológicos existentes y, a continuación, inicie el servidor.
  3. [z/OS]Detenga y reinicie el servidor.
  4. Ejecute casos de ejemplo corrientes para capturar los datos de rastreo de memoria caché. Ejecutando un escenario habitual con el rastreo habilitado, obtendrá los datos de rastreo de memoria caché de EJB para analizar en los pasos siguientes.
  5. Visualice y analice la salida del rastreo.
    1. Abra el registro cronológico de rastreo. Busque una de las siguientes series de rastreo, o ambas, para visualizar:

      [IBM i][AIX Solaris HP-UX Linux Windows]BackgroundLru 3  EJB Cache: Sweep (1,40) - Cache limit not reached : 489/2053
      BackgroundLru >  EJB Cache: Sweep (16,40) - Cache limit exceeded : 3997/2053 Entry

      [z/OS] Trace: 2007/03/22 11:47:07.048 01 t=7A9690 c=UNK key=P8 (13007002)
      ThreadId: 0000006a
      FunctionName: com.ibm.ejs.util.cache.BackgroundLruEvictionStrategy
      SourceId: com.ibm.ejs.util.cache.BackgroundLruEvictionStrategy
      Category: FINEST
      ExtendedMessage: EJB Cache: Sweep (23,40) - Cache limit not reached : 0/2053

      Trace: 2007/03/22 11:54:16.755 01 t=7BD3B0 c=UNK key=P8 (13007002)
      ThreadId: 0000006d
      FunctionName: EJB Cache: Sweep (75,37) - Cache limit exceeded : 3801/2053
      SourceId: com.ibm.ejs.util.cache.BackgroundLruEvictionStrategy
      Category: FINER
      ExtendedMessage: Entry

      En las series de rastreo que incluyen las palabras Cache limit (Límite de memoria caché) encontrará una proporción. Por ejemplo, 3997/2053. El primer número es el número de enterprise beans que actualmente están en la memoria caché de EJB (se denomina capacidad). El segundo número es el valor de memoria caché de EJB (en pasos posteriores aparece más información sobre esto). Utilice 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 Cache limit 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á malgastando memoria y debe reducir el tamaño de memoria caché a un valor más adecuado.
      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 la memoria 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 memoria caché cuando se alcanza el límite. Hacerlo podría significar que cuando la memoria caché está llena, no se satisfaría una solicitud de un bean o se retardaría al menos hasta que la memoria caché estuviera por debajo del límite. En su lugar, se puede superar el límite de memoria caché, pero el contenedor de EJB intenta 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 éste:

      [IBM i][AIX Solaris HP-UX Linux Windows]BackgroundLru <  EJB Cache: Sweep (64,38) - Evicted = 50 : 3589/2053 Exit

      [z/OS]EJB Cache: Sweep (64,38) - Evicted = 50 : 3589/2053

      Fíjese en la serie Evicted =. Si ve esta serie, está utilizando beans de sesión con estado o beans de entidad configurados para la opción A o B de colocación en memoria caché. Objetos desalojados (significa que no está aprovechando completamente la opción de almacenamiento en memoria caché que ha elegido. El primer paso es intentar aumentar el tamaño de memoria caché de EJB. Si la ejecución continuada de la aplicación provoca más desalojos, significa que la aplicación accede o crea más beans nuevos entre barridos de memoria caché de EJB de los que la memoria caché puede contener y NO reutiliza los beans existentes.
      Quizá prefiera considerar utilizar la Opción C de almacenamiento en memoria caché para los beans de entidad o comprobar la aplicación para ver si no se eliminan los beans de sesió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 en memoria 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é, pero se eliminan de memoria caché cuando finaliza la transacción. Además, si utiliza sólo beans de sesión sin estado o beans de entidad con la opción C de colocación en memoria caché (o ambas), quizá prefiera aumentar el intervalo de limpieza de la memoria caché de EJB en un número mayor. El intervalo de limpieza se puede establecer como se describe en Valores de memoria caché de EJB. Los beans de sesión sin estado NO están en la memoria caché de EJB y dado que los beans de entidad que utilizan la opción C de colocación en memoria caché nunca se desalojan mediante la estrategia de colocación en memoria caché (LRU), realmente no es necesario realizar el barrido muy a menudo. Cuando se utilizan sólo los beans de sesión sin estado o la opción C de colocación en antememoria, sólo debe aparecer "Evicted = 0" en el ejemplo de rastreo mostrado.
    2. Analice el registro cronológico de rastreo. Busque la serie de rastreo Cache limit exceeded (Superado el límite de memoria caché).
      • Podría encontrar más de una instancia de esta serie. Revíselas todas para encontrar el valor de máxima capacidad de beans en la memoria caché de EJB. Restablezca el tamaño de la memoria caché de EJB a aproximadamente el 110% de este número. En un paso posterior se describe cómo se establece el tamaño de memoria caché de EJB.
      • Puede que no encuentre ninguna instancia de esta serie. Esto significa que no ha superado la capacidad de la memoria caché de EJB (que es su objetivo final), pero no haberlo visto durante su análisis inicial también podría significar que la memoria caché es demasiado grande y utiliza memoria innecesaria. En este caso, todavía tendrá que ajustar la memoria caché reduciendo el tamaño de memoria caché hasta que no se exceda el límite de memoria caché y, a continuación, aumentándolo al valor óptimo. En un paso 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 que tampoco esté en exceso. Una buena configuración proporciona un rastreo en el que sólo aparece el mensaje Cache limit not reached (No se ha alcanzado el límite de memoria caché) y una proporción donde el número de capacidad puede estar próximo, pero por debajo de, el 100% del valor de memoria caché de EJB.
      Nota: Se recomienda no establecer el tamaño de la memoria caché en un valor inferior al valor predeterminado de 2053.
  6. Modifique los valores de memoria caché basándose en el análisis. Consulte los valores de memoria caché de EJB para obtener información sobre cómo hacerlo.
  7. [IBM i][AIX Solaris HP-UX Linux Windows]Detenga el servidor, suprima todos los archivos de registros cronológicos y, a continuación, reinicie el servidor.
  8. [z/OS]Detenga y reinicie el servidor.
  9. Repita los pasos anteriores hasta que esté satisfecho con los valores.
  10. Inhabilite el rastreo de memoria caché de EJB. Con la memoria caché correctamente ajustada, puede eliminar el rastreo, eliminar los archivos de registros cronológicos anteriores y reiniciar el servidor.

Qué hacer a continuación

En el análisis, se puede establecer la memoria caché de EJB de forma óptima desde una perspectiva de contenedor de EJB, pero quizá no de forma óptima desde una perspectiva de WebSphere Application Server. Un tamaño de memoria caché mayor proporciona más coincidencias y mejor rendimiento de memoria caché de EJB, pero utiliza más memoria. La memoria utilizada por la memoria caché no está disponible para otras áreas del producto, que potencialmente provocan que se vea afectado el rendimiento global. En un sistema con una amplia memoria, esto no sería un problema y si se ajusta correctamente la memoria caché de EJB podría aumentar el rendimiento global. No obstante, debe tener en cuenta este rendimiento del sistema frente al rendimiento de la memoria caché de EJB al configurar la memoria caché.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_tunecash
File name: tejb_tunecash.html