Puede utilizar WebSphere Real Time con WebSphere eXtreme Scale. Mediante la habilitación de WebSphere Real Time, puede obtener una recogida de basura más predecible junto con un tiempo de respuesta estable y coherente y un rendimiento de transacciones en un entorno autónomo de eXtreme Scale.
Instale WebSphere Real Time y el WebSphere eXtreme Scale autónomo en los sistemas en los que tiene previsto ejecutar eXtreme Scale. Establezca la variable de entorno JAVA_HOME para indicar un Java SE Runtime Environment (JRE) estándar.
Establezca la variable de entorno JAVA_HOME para indicar al WebSphere Real Time instalado. A continuación, habilite WebSphere Real Time del modo siguiente.
WXS_REAL_TIME_JAVA="-Xrealtime -Xgcpolicy:metronome -Xgc:targetUtilization=80"
Ahora, ha habilitado WebSphere Real Time. Si desea inhabilitar WebSphere Real Time, puede volver a añadir el comentario a la misma línea.
WebSphere Real Time permite a las transacciones eXtreme Scale tener un tiempo de respuesta más predecible. Los resultados muestran que la desviación de un tiempo de respuesta de una transacción eXtreme Scale mejora significativamente con WebSphere Real Time, en comparación con el Java estándar con su recogida de basura predeterminada. La habilitación de WebSphere Real Time con eXtreme Scale es óptima si la estabilidad y el tiempo de respuesta de la aplicación son esenciales.
Los mejores procedimientos descritos en esta sección explican cómo hacer más eficaz a WebSphere eXtreme Scale a través del ajuste y de las prácticas de código, en función de la carga esperada.
WebSphere Real Time proporciona la capacidad para controlar el uso del procesador, de forma que el impacto de la recogida de basura en la aplicación está controlado y minimizado. Utilice el parámetro -Xgc:targetUtilization=NN para especificar el NN porcentaje del procesador que es utilizado por la aplicación cada 20 segundos. El valor predeterminado para WebSphere eXtreme Scale es 80%, pero puede modificar el script en el archivo objectgridRoot/bin/setupCmdLine.sh para definir un número distintos como, por ejemplo, 70, que proporciona más capacidad de procesador a la recogida de basura. Despliegue los suficientes servidores para mantener la carga del procesador por debajo del 80% para las aplicaciones.
WebSphere Real Time utiliza más memoria que el Java típico, así que planifique WebSphere eXtreme Scale con una memoria de almacenamiento dinámico grande y establezca el tamaño del almacenamiento dinámico cuando inicie los servidores y contenedores de catálogo con el parámetro –jvmArgs –XmxNNNM en el mandato ogStartServer. Por ejemplo, podría utilizar el parámetro –jvmArgs –Xmx500M para iniciar los servidores de catálogo y utilizar el tamaño de memoria apropiado para iniciar los contenedores. Puede establecer el tamaño de la memoria en un 60-70% del tamaño de datos esperado por JVM. Si no establece este valor, se podría generar un error OutOfMemoryError. De forma opcional, también puede utilizar el parámetro –jvmArgs –Xgc:noSynchronousGCOnOOM para impedir el comportamiento nondeterministic cuando la JVM agota la memoria.
WebSphere eXtreme Scale crea muchos objetos temporales asociados a cada transacción y a hebras de llamada de procedimiento remoto (RPC). La recogida de basura tiene ventajas de rendimiento si el sistema tiene los suficientes ciclos de procesador. El número predeterminado de hebras es 1. Puede cambiar el número de hebras con el argumento –Xgcthreads n. El valor sugerido de este argumento es el número de núcleos que están disponibles con consideración del número de máquinas virtuales Java por sistema.
WebSphere Real Time se ajusta para las aplicaciones de larga ejecución. Normalmente, debe ejecutar las transacciones continuas de WebSphere eXtreme Scale durante dos horas para obtener datos de rendimiento fiables. Puede utilizar el parámetro –Xquickstart para mejorar el rendimiento de las aplicaciones de corta ejecución. Este parámetro indica al compilador JIT (just-in-time) que utilice el nivel inferior de optimización.
La principal ventaja de utilizar WebSphere eXtreme Scale con WebSphere Real Time es tener un tiempo de respuesta de transacción muy fiable, que normalmente tiene varios tiempos de mejoras de magnitud de orden en la desviación del tiempo de respuesta de transacción. Las peticiones de cliente en cola y la transmisión de solicitud de cliente a través de otro software impacta en el tiempo de respuesta que está más allá del control de WebSphere Real Time y WebSphere eXtreme Scale. Debe cambiar las hebras y los parámetros de sockets para mantener una carga fija sin problemas sin ningún retardo significativo y reducir la profundidad de la cola.
Sin modificar la aplicación, puede obtener un tiempo de respuesta de transacción de WebSphere eXtreme Scale muy fiable con varias mejoras de magnitud de orden en la desviación del tiempo de respuesta. Puede explotar de forma adicional la ventaja de hebras de las aplicaciones transaccionales de la hebra Java regular en RealtimeThread que proporciona un mejor control en la prioridad de la hebras y una planificación del control.
Actualmente, la aplicación incluye el siguiente código.
public class WXSCacheAppImpl extends Thread implements WXSCacheAppIF
De forma opcional, puede sustituir este código por lo siguiente.
public class WXSCacheAppImpl extends RealtimeThread implements WXSCacheAppIF