Un
caso muy usual durante la operación del servidor WebLogic consiste en mejorar
el rendimiento y eficacia del servidor; Generalmente esto se necesita cuando se
requiere un mejor tiempo de respuesta de las aplicaciones o para
soportar una elevada carga de trabajo (cientos de peticiones por minuto).
Para
solventar dicho requisito, es necesario realizar una afinación, no sólo del
servidor WebLogic, sino también del Sistema Operativo, Red y, en algunos casos,
de la Base de Datos utilizada por nuestra aplicación.
En
el servidor WebLogic se pueden realizar varias tareas para mejorar el
rendimiento del mismo, por ejemplo:
- Ajustar parámetros de la Maquina Virtual de Java (JVM)
- Ajustar nivel y tipo de registro (Logging)
- Ajustar parámetros de orígenes de datos (DataSources), si existen
- Ajustar la administración de trabajo, hilos y timeouts (WorkManager)
- Ajustar sistema de Entrada/Salida (I/O System)
- Entre otras.
En esta ocasión
sólo hablaré de la administración de carga de trabajo y la configuración que podemos
realizar para aprovecharlo. Con el ajuste del WorkManager se pretende
principalmente lo siguiente:
- Especificar el tiempo respuesta máximo que el servidor debería de tolerar.
- Especificar la carga máxima de trabajo, es decir, cuantas peticiones y/o clientes puede soportar por un tiempo.
- Especificar el tiempo de espera máximo para la ejecución de una tarea, con el fin de liberar recursos y continuar con otras tareas.
La configuración
del WorkManager la podemos aplicar de dos maneras:
- Dentro de los archivos de despliegue de nuestra aplicación, resultando efectivo sólo para esta aplicación. Este se denomina administrador de trabajo de aplicación (Application WorkManager)
- Desde la consola de administración WebLogic, efectivo para una o más aplicaciones y/o recursos en el servidor. Este se denomina administrador de trabajo global (Global WorkManager)
De manera
nativa, cada dominio WebLogic cuenta con
un WorkManager por defecto, que se asigna a cada servidor manejado y al
servidor de administración para procesar
el trabajo que deben ejecutar. También, por defecto este WorkManager no está visible
en la consola de administración WebLogic.
Para mejorar
el rendimiento del servidor WebLogic podemos sobre-escribir el WorkManager por
defecto, para ello hacemos lo siguiente:
- Entrar a la consola de Administración WebLogic con un usuario con privilegios de administrador.
- Crear un WorkManager con el nombre default, y asígnarlo a todos los servidores existentes en el dominio. Ver imagen 01.
- Entrar a la configuración del nuevo WorkManager y especificar los atributos del mismo, crear cada uno de ellos con los valores con los que pretendemos mejorar el rendimiento. Ver imagen 02.
Por ejemplo:
Atributo
|
Tipo
|
Objetivo
|
Valor
afinado
|
Request Class
|
Response Time
Request Class
|
Mejorar el
tiempo de respuesta.
|
500
milisegundos
|
Request Class
|
Fair Share
Request Class
|
Mejorar el
tiempo de respuesta.
|
75
|
Minimum Threads Constraint
|
Buena
práctica
|
10
|
|
Maximum Threads Constraint
|
Soportar
mayor carga de trabajo
|
200
|
|
Capacity
Constraint
|
Soportar
mayor carga de trabajo
|
100
|
|
Ignore Stuck
Threads
|
Incrementar
tolerancia a fallas
|
Habilitado
|
Estos atributos deben tener el mismo destino que el
WorManager.
Una vez guardado y activado los cambios, el WorkManager está listo. Todas las aplicaciones y recursos son atendidas por
el mismo WorkManager por defecto, no obstante, ahora tiene nuevos valores para mejorar
su rendimiento.
Adicionalmente, podemos crear WorkManager personalizados y
asignarlos a servidores específicos, en donde se busque un diferente
rendimiento, claro, siempre será un mejor rendimiento.
En un
ambiente productivo, se recomienda crear un WorkManager personalizado para una
o más aplicaciones, o simplemente para una aplicación de misión crítica. Para
que nuestras aplicaciones hagan uso de dicho WorkManager, es necesario incluir
la referencia a éste en el descriptor de despliegue weblogic-application.xml,
por ejemplo:
<?xml version = '1.0' encoding =
'windows-1252'?>
<weblogic-application
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-application
http://www.bea.com/ns/weblogic/weblogic-application/1.0/weblogic-application.xsd"
xmlns="http://www.bea.com/ns/weblogic/weblogic-application">
…
<work-manager>
<name>MiWorkManager</name>
</work-manager>
…
</weblogic-application>
Imagen 01.
Imagen 02.
No hay comentarios:
Publicar un comentario