![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Procedimientos recomendados para la configuración de colas
Existe una metodología para configurar las colas de WebSphere Application Server. Si se mueve el servidor de la base de datos a otro equipo, o se proporcionan recursos más potentes, por ejemplo un conjunto de CPU más rápido y con más memoria, la dinámica del sistema puede cambiar significativamente.
- Minimice el número de solicitudes en las colas de WebSphere Application Server.
En general, las solicitudes esperan en la red delante del servidor web, en vez de esperar en WebSphere Application Server. Esta configuración sólo da soporte a la entrada en la cola de red de aquellas solicitudes que estén listas para el proceso. Especifique que las colas más en sentido ascendente o más cerca del cliente sean algo mayores, y que las colas más en sentido descendente o más alejadas del cliente sean progresivamente más pequeñas.
Las colas de la red de colas son progresivamente más pequeñas a medida que el trabajo fluye en sentido descendente. Cuando lleguen al servidor web 200 solicitudes de clientes, 125 solicitudes permanecerán en cola en la red porque el servidor web está configurado para manejar 75 clientes simultáneos. A medida que las 75 solicitudes pasen del servidor web al contenedor web, quedarán 25 solicitudes en cola en el servidor web, y las 50 restantes las manejará el contenedor web. Este proceso proseguirá hasta el origen de datos, hasta que finalmente 25 solicitudes de usuarios lleguen al destino final: el servidor de bases de datos. Como hay trabajo esperando para entrar un componente en cada punto en sentido ascendente, ningún componente de este sistema debe esperar que llegue trabajo. El grueso de las solicitudes espera en la red, fuera de WebSphere Application Server. Este tipo de configuración añade estabilidad, ya que ningún componente está sobrecargado.Puede utilizar Edge Server para dirigir usuarios en espera a otros servidores en un clúster de WebSphere Application Server.
- Dibujar curvas de rendimiento para determinar cuándo se maximizan las posibilidades
del sistema.
Se puede utilizar una serie de pruebas que representen fielmente a la aplicación de producción mediante la prueba de todas las vías de acceso de código que tengan sentido o utilizando la aplicación de producción. Ejecute una serie de pruebas para determinar el límite de las posibilidades del sistema, o cuándo se alcanza el punto de saturación. Realice estas pruebas una vez que se hayan eliminado la mayoría de los cuellos de botella de la aplicación. El objetivo de estas pruebas es llevar las CPU a un punto cercano al 100% de utilización. Para conseguir la máxima simultaneidad en el sistema, comience el experimento inicial básico con colas grandes. Por ejemplo, inicie el primer experimento con un tamaño de cola de 100 en cada uno de los servidores de la red de colas: servidor web, contenedor web y origen de datos. Inicie una serie de experimentos para trazar una curva de rendimiento, aumentando la carga de usuarios simultáneos después de cada experimento. Por ejemplo, realice experimentos con un usuario, dos usuarios, cinco, 10, 25, 50, 100, 150 y 200 usuarios. Después de cada ejecución, registre las solicitudes de rendimiento por segundo y los tiempos de respuesta en segundos por solicitud. La curva resultante de los experimentos de línea base se parece a la siguiente curva de rendimiento típica que se muestra a continuación:
El rendimiento de WebSphere Application Server está en función del número de solicitudes simultáneas presentes en el total del sistema. La sección A, zona de carga ligera, muestra que, a medida que aumenta el número de solicitudes de usuario simultáneas, el rendimiento aumenta casi linealmente con el número de solicitudes. Con cargas ligeras, las solicitudes simultáneas sufren poca congestión en las colas de sistema WebSphere Application Server. En algún punto, surge la congestión y el rendimiento aumenta a un ritmo mucho más lento hasta que llega a un punto de saturación que representa el rendimiento máximo, como lo determinan algunos cuellos de botella en el sistema WebSphere Application Server. El mejor tipo de cuello de botella se produce cuando las CPU del equipo de WebSphere Application Server se utilizan por completo, ya que la adición de CPU o unas CPU más potentes soluciona el cuello de botella.
En la zona de mucha carga o sección B, a medida que crece la carga de clientes simultáneos, el rendimiento permanece relativamente constante. No obstante, el tiempo de respuesta aumenta de forma proporcional con la carga de usuarios. Esto es, si la carga de usuarios se dobla en la zona de mucha carga, el tiempo de respuesta es también el doble. En algún momento, representado por la Sección C, la zona de caída, uno de los componentes del sistema se satura. En este punto, el rendimiento comienza a decaer. Por ejemplo, el sistema podría entrar en la zona de caída cuando las conexiones de red del servidor web superen los límites del adaptador de red o si se supera los límites del sistema operativo para los descriptores de archivos.
Si ha alcanzado el punto de saturación porque el uso de las CPU del sistema están cerca del 100%, puede proceder con el paso siguiente. Si la saturación de la CPU se produce antes de que la utilización del sistema alcance el 100%, es probable que la aplicación esté perjudicando otro cuello de botella. Por ejemplo, la aplicación podría estar creando objetos Java, que a su vez causan cuellos de botella de recogida excesiva de basura en el código Java.
Hay dos formas de gestionar los cuellos de botella de las aplicaciones: quitar el cuello de botella, o clonarlo. La mejor forma de gestionar un cuello de botella es eliminarlo. Puede utilizar un perfilador de aplicaciones basado en Java, como Rational Application Developer, Performance Trace Data Visualizer (PTDV), Optimizeit de Borland, JProbe o Jinsight para examinar la utilización general de objetos.
- Disminuir los tamaños de cola mientras se mueve en sentido descendente desde el
cliente.
El número de usuarios simultáneos en el punto de saturación de rendimiento representa la simultaneidad máxima de la aplicación. Por ejemplo, si la aplicación satura WebSphere Application Server al llegar a 50 usuarios, el uso de 48 usuarios podría ser la mejor combinación entre rendimiento y tiempo de respuesta. Este valor se denomina Max Application Concurrency (Concurrencia de aplicación máxima). La simultaneidad máxima de aplicación es el valor preferido para el ajuste de las colas del sistema WebSphere Application Server. Hay que tener presente que es preferible para la mayoría de los usuarios esperar en la red; por lo tanto, los tamaños de cola deben disminuirse cuando el movimiento es en sentido descendente alejándose del cliente. Por ejemplo, dado un valor de 48 para la simultaneidad máxima de aplicación, se inician las colas del sistema con los valores siguientes: servidor web 75, contenedor web 50, origen de datos 45. Realice una serie de pruebas adicionales, ajustando estos valores ligeramente por encima y por debajo hasta encontrar los mejores valores.
Para ayudar a determinar el número de usuarios simultáneos, consulte la métrica Servlet Engine Thread Pool and Concurrently Active Threads en Tivoli Performance Viewer.
- Ajustar los valores de cola para que se correspondan con patrones de acceso.
En muchos casos, sólo una parte de las solicitudes que pasan por una cola entran en la siguiente cola en sentido descendente. En un sitio con muchas páginas estáticas, se llevan a cabo muchas solicitudes en el servidor web y no se pasan al contenedor web. En estos casos, la cola del servidor web puede ser bastante más grande que la cola del contenedor web. En el ejemplo anterior, se estableció la cola del servidor web en 75 en lugar de en un valor cercano a la simultaneidad máxima de la aplicación. Se pueden realizar ajustes similares cuando componentes diferentes tienen tiempos de ejecución diferentes.
Por ejemplo, considérese una aplicación que gasta el 90% de su tiempo en un servlet complejo y sólo el 10% de su tiempo en realizar una consulta JDBC breve; como media, el 10% de los servlets utilizan conexiones a bases de datos en cualquier momento, por lo que la cola de conexión a la base de datos puede ser bastante más pequeña que la cola del contenedor web. Por el contrario, si la mayor parte del tiempo de ejecución de un servlet se dedica a realizar una consulta compleja de una base de datos, se recomienda aumentar los valores de cola en el contenedor web y en el origen de datos. Siempre debe supervisar la utilización de la CPU y la memoria para WebSphere Application Server y los servidores de bases de datos, para comprobar que no se está saturando la CPU ni la memoria.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cprf_queuetip
File name: cprf_queuetip.html