Está en la página 1de 57

Workshop WebLogic Server 11gR1

Tuning

© 2010 - GFI Informática


Tuning

Los Work Managers aparecen en la


versión 9 de WebLogic Server
Antes de la versión 9
• El tamaño del pool de threads se ajustaba
manualmente
• Se usaban varias colas de ejecución (execute
queues) para distribuir el trabajo
• Las colas de ejecución se ajustaban
modificando los siguientes parámetros
• Número de hilos
• Longitud de la cola
• Máximo número de hilos
• Prioridad de los hilos

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 2


Tuning

Work Managers
• Self-tuning
• Uso de un único pool de threads
• WebLogic Server ajusta el tamaño del pool
dinámicamente para maximizar el rendimiento
• Los administradores pueden ajustar el
rendimiento mediante el uso de Work
Managers
• Se pueden asociar Work Managers a una o
más aplicaciones o a componentes de una
aplicación (servlet, JSP, EJB)

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 3


Tuning

Para un Work Manager se pueden definir los siguientes


elementos
• Clases de petición (Request Classes)
• Fair Share Request Class
• Response Time Request Class
• Context Request Class
• Restricciones (Constraints)
• Min Threads Constraint
• Max Threads Constraint
• Capacity Constraint
• Stuck Thread Handling
Estos elementos permiten controlar el rendimiento de las
aplicaciones
Es necesario referenciar el nombre del elemento o del Work
Manager en el descriptor de despliegue de la aplicación
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 4
Tuning

Se pueden definir Work Managers a nivel de


• Dominio
• Aplicación
• Módulo
Se pueden definir mediante la consola de
administración o en los siguientes
descriptores
• config.xml
• weblogic-application.xml
• weblogic-ejb-jar.xml
• weblogic.xml
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 5
Tuning

Ejemplo de definición de Work Manager


en descriptor de WebLogic Server
<work-manager>
<name>HighPriorityWorkManager</name>
<fair-share-request-class>
<name>HighPriorityRequestClass</name>
<fair-share>750</fair-share>
</fair-share-request-class>
<min-threads-constraint>
<name>MinThreadsCountFive</name>
<count>5</count>
</min-threads-constraint>
</work-manager>
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 6
Tuning

Ejemplo de referencia a Work Manager en


web.xml
<servlet>
<servlet-name>nuevo_mensaje</servlet-name>
<jsp-file>/nuevo_mensaje.jsp</jsp-file>
<init-param>
<param-name>wl-dispatch-policy</param-name>
<param-value>
HighPriorityWorkManager
</param-value>
</init-param>
</servlet>
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 7
Tuning

Ejemplo de referencia a Work Manager en


weblogic.xml
<wl-dispatch-policy>
HighPriorityWorkManager
</wl-dispatch-policy>

También se puede hacer referencia a un


elemento del Work Manager
<wl-dispatch-policy>
HighPriorityRequestClass
</wl-dispatch-policy>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 8


Tuning

Ejemplo de referencia a Work Manager en


weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>EjemploEJB</ejb-name>
<jndi-name>EjemploEJB</jndi-name>
<dispatch-policy>EJBWorkManager1</dispatch-policy>
</weblogic-enterprise-bean>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 9


Tuning

Default Work Manager


• Es el Work Manager por defecto que usan las
aplicaciones si no se especifica ningún otro
en los descriptores de despliegue
• Suele ser suficiente para los requisitos de la
mayoría de las aplicaciones
• Asigna la misma prioridad a todas las
aplicaciones (algoritmo de reparto equitativo)
• El comportamiento del default Work
Manager puede ser sobrescrito creando y
configurando un Work Manager que se llame
default

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 10


Tuning

¿Cuándo usar Work Managers?


• Cuando el algoritmo de reparto
equitativo no es suficiente (unas
aplicaciones requieren mayor prioridad
que otras)
• Cuando se requiere un objetivo de
tiempo respuesta para determinadas
aplicaciones
• Para evitar deadlocks

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 11


Tuning

Clases de petición (Request Classes)


• Ayudan a planificar el trabajo basado en
prioridades
• 3 tipos
•fair-share-request-class
•response-time-request-class
•context-request-class

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 12


Tuning

Fair Share Request Class


• Especifica el porcentaje promedio de
tiempo de uso de threads necesario
para procesar solicitudes
• Valor por defecto: 50
• Valor mínimo: 1
• Valor máximo:1000

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 13


Tuning

Ejemplos de Fair Share Request Class


<work-manager>
<name>HighPriorityWorkManager</name>
<fair-share-request-class>
<name>HighPriorityRequestClass</name>
<fair-share>80</fair-share>
</fair-share-request-class>
</work-manager>

<work-manager>
<name>LowPriorityWorkManager</name>
<fair-share-request-class>
<name>LowPriorityRequestClass</name>
<fair-share>20</fair-share>
</fair-share-request-class>
</work-manager>
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 14
Tuning

Fair Share Request Class


• El valor de fair share especifica un valor
relativo, no un porcentaje.
• En el ejemplo anterior, valores de 400 y
100 respectivamente, tendrían el mismo
efecto.

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 15


Tuning

Response Time Request Class


• Especifica un objetivo de tiempo de respuesta en
milisegundos
• Valor por defecto: 0
• El objetivo de tiempo de respuesta no se aplica a cada
petición individual sino que se calcula un tiempo de espera
tolerable restando al tiempo de respuesta objetivo el tiempo
medio de uso de threads observado, y se planifica de forma
que el tiempo medio de espera para las peticiones sea
proporcional a su tiempo de espera tolerable.
• Los tiempos medios de respuesta reales para dos
aplicaciones podrían ser superiores o inferiores a los
objetivos de tiempo de respuesta, pero mantendrán la
misma proporción que tienen los tiempos objetivo de ambas
aplicaciones.

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 16


Tuning

Ejemplos de Response Time Request Class


<work-manager>
<name>FastResponseTimeWorkManager</name>
<response-time-request-class>
<name>FastResponseTimeRequestClass</name>
<goal-ms>1000</goal-ms>
</response-time-request-class>
</work-manager>

<work-manager>
<name>SlowResponseTimeWorkManager</name>
<response-time-request-class>
<name>SlowResponseTimeRequestClass</name>
<goal-ms>8000</goal-ms>
</response-time-request-class>
</work-manager>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 17


Tuning

Response Time Request Class


• En el ejemplo anterior, se planificarán
las solicitudes de ambas aplicaciones
para mantener el tiempo medio de
respuesta en la proporción 1:8.
• Por ejemplo, si el tiempo medio de
respuesta para la primera aplicación es
de 500 ms., el tiempo medio de
respuesta para la segunda es de 4.000
ms.
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 18
Tuning

Context Request Class


• Asigna distintas request classes a cada
petición en función de información del
contexto como el usuario o el grupo del
usuario

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 19


Tuning

Ejemplo de Context Request Class


<work-manager>
<name>context_workmanager</name>
<context-request-class>
<name>test_context</name>
<context-case>
<user-name>system</user-name>
<request-class-name>high_fairshare</request-class-name>
</context-case>
<context-case>
<group-name>everyone</group-name>
<request-class-name>low_fairshare</request-class-name>
</context-case>
</context-request-class>
</work-manager>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 20


Tuning

Restricciones (Constraints)
• Una restricción define un número mínimo o
máximo de threads asignados para atender
peticiones o el número total de peticiones que
pueden ser encoladas o se encuentran en
ejecución antes de que WebLogic Server
comience a rechazar peticiones
• 3 tipos
• max-threads-constraint
• min-threads-constraint
• capacity

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 21


Tuning

Max Threads Constraint


• Limita el número de hilos concurrentes que
pueden ejecutar peticiones
• El valor por defecto es ilimitado
• Un max-threads-constraint de 10 hilos,
compartidos por 3 aplicaciones, asegurará que
la suma de todos los hilos usados por las 3
aplicaciones no superará los 10 hilos
establecidos en el constraint.
• Se puede definir una restricción de número
máximo de hilos en referencia al tamaño de un
Data Source
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 22
Tuning

Ejemplo de Max Threads Constraint


<max-threads-constraint>
<name>MaxThreads</name>
<count>10</count>
<connection-pool-name></connection-pool-name>
</max-threads-constraint>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 23


Tuning

Min Threads Constraint


• Garantiza un número mínimo de hilos
concurrentes para ejecutar peticiones
• El valor por defecto es cero
Ejemplo
<min-threads-constraint>
<name>MinThreads</name>
<count>3</count>
</min-threads-constraint>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 24


Tuning

Capacity Constraint
• Define el máximo número de peticiones que
pueden ser encoladas o se encuentran en
ejecución en un determinado momento
antes de que WebLogic Server comience a
rechazar peticiones
• Sólo se cuentan las peticiones que están
esperando por threads o aquellas que se
encuentran en ejecución
• Puede compartirse entre varios Work
Managers
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 25
Tuning

Ejemplo de Capacity Constraint


<work-manager>
<name>MyWorkManager</name>
<capacity>
<name>MyCapacity</name>
<count>10</count>
</capacity>
</work-manager>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 26


Tuning

Stuck Thread Handling


• En respuesta a un stuck threads se
puede definir un Stuck Thread Work
Manager que puede apagar el Work
Manager matando todos los threads,
pasando la aplicación a modo
administración o marcando el servidor
como FAILED.
• Proporciona protección contra la
sobrecarga
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 27
Tuning

Stuck Thread Handling


• Opciones de configuración
• Max Stuck Thread Time: El número de
segundos que un thread tiene que estar
trabajando de forma continua para que el
servidor diagnostique el thread como
atascado (stucked)
• Stuck Thread Count: El número de stuck
threads necesarios para que se lleve a
cabo el Stuck Thread Handling

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 28


Tuning

Ejemplo de Stuck Thread Handling


• El Work Manager definido en el ejemplo
apaga el Work Manager cuando 2 threads
permanecen atascados durante más de 30
segundos
<work-manager>
<name>stuckthread_workmanager</name>
<work-manager-shutdown-trigger>
<max-stuck-thread-time>30</max-stuck-thread-time>
<stuck-thread-count>2</stuck-thread-count>
</work-manager-shutdown-trigger>
</work-manager>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 29


Tuning

Work Managers a nivel global


• Están disponibles para todas las aplicaciones y
módulos desplegados en un servidor
• Se pueden crear desde la consola de
administración o en el config.xml del
dominio
• Cada aplicación tiene su propia instancia de
Work Manager. Permite matar los hilos de una
aplicación sin que ello afecte a la gestión de
hilos de otras aplicaciones.
• Los componentes del Work Manager se
comparten entre las aplicaciones
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 30
Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 31


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 32


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 33


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 34


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 35


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 36


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 37


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 38


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 39


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 40


Tuning

Work Managers a nivel de aplicación


• Están disponibles sólo para una
aplicación o módulo
• Se pueden definir en la consola de
administración y en los siguientes
descriptores
•weblogic-application.xml
•weblogic-ejb-jar.xml
•weblogic.xml

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 41


Tuning

Asignación de Work Managers a nivel de


aplicación
• Se debe asignar explícitamente el nuevo Work Manager
a la aplicación, sino usará el Work Manager default
• Se debe usar el elemento <dispatch-policy> para la
asignación de un Work Manager en los descriptores de
despliegue weblogic-application.xml y
weblogic-ejb-jar.xml
• Con el elemento <dispatch-policy> también se
puede asignar una cola de ejecución (Execute Queue).
Esto permite mantener la compatibilidad con versiones
anteriores.
• Para el descriptor weblogic.xml se debe usar el
elemento <wl-dispatch-policy>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 42


Tuning

Ejemplo de definición y asignación de Work


Managers en weblogic-ejb-jar.xml
<weblogic-ejb-jar xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar"
xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar
http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd">

<weblogic-enterprise-bean>
<ejb-name>WorkEJB</ejb-name>
<jndi-name>core_work_ejb_workbean_WorkEJB</jndi-name>
<dispatch-policy>weblogic.kernel.System</dispatch-policy>
</weblogic-enterprise-bean>

<weblogic-enterprise-bean>
<ejb-name>NonSystemWorkEJB</ejb-name>
<jndi-name>core_work_ejb_workbean_NonSystemWorkEJB</jndi-name>
<dispatch-policy>workbean_workmanager</dispatch-policy>
</weblogic-enterprise-bean>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 43


Tuning

<weblogic-enterprise-bean>
<ejb-name>MinThreadsWorkEJB</ejb-name>
<jndi-name>core_work_ejb_workbean_MinThreadsWorkEJB</jndi-name>
<dispatch-policy>MinThreadsCountFive</dispatch-policy>
</weblogic-enterprise-bean>

<work-manager>
<name>workbean_workmanager</name>
<fair-share-request-class>
<name>low_priority</name>
<fair-share>10</fair-share>
</fair-share-request-class>
</work-manager>

<work-manager>
<name>minthreads_workmanager</name>
<min-threads-constraint>
<name>MinThreadsCountFive</name>
<count>5</count>
</min-threads-constraint>
</work-manager>
</weblogic-ejb-jar>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 44


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 45


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 46


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 47


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 48


Tuning

Compatibilidad hacia atrás con las


Execute Queues
• Mediante opción de línea de comandos
-Dweblogic.Use81StyleExecuteQueues=true
• Cambiando la configuración del servidor
en el config.xml
<use81-style-execute-queues>
true
</use81-style-execute-queues>

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 49


Tuning

La compatibilidad hacia atrás se proporciona


para facilitar la migración de aplicaciones
Los Work Managers configurados son
convertidos en Execute Queues en tiempo
de ejecución
El número de hilos de la Execute Queue se
basa en el valor definido en la constraint
Si el Work Manager no tiene ninguna
constraint se usa la Execute Queue
default

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 50


Tuning

La migración de Execute Queues a Work


Managers no se realiza de forma automática en
WebLogic Server 10
Las Execute Queues definidas en la
configuración del servidor se continúan creando
durante el arranque del servidor
La migración de aplicaciones a WebLogic Server
10 necesitan usar un dispatch policy para
poder usar Execute Queues
Se deben crear Work Managers que sustituyan a
las Execute Queues y hacer referencia a ellos
usando un dispatch policy
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 51
Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 52


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 53


Tuning

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 54


Laboratorio

Crear con la consola de administración un Work


Manager global con una Fair Share Request
Class
Crear con la consola de administración un Work
Manager global con una Response Time
Request Class
Crear en los descriptores de despliegue de la
aplicación JForos un Work Manager a nivel de
aplicación con una Fair Share Request Class y
una constraint que garantice al menos 5 hilos
Asignar el Work Manager a nivel de aplicación al
JSP nuevo_mensaje.jsp
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 55
Laboratorio

Asignar el Work Manager con la Fair Share


Request Class a la aplicación JForos
Asignar el Work Manager con la Response
Time Request Class al JSP
lista_foros.jsp
Crear la base de datos de la aplicación JForos
mediante la ejecución de la siguiente línea de
comandos desde el directorio en el que se
encuentre el fichero jforos.sql
sqlplus / as sysdba @jforos.sql

© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 56


Laboratorio

Crear un Data Source llamado JForosDS con la


siguiente configuración:
• Nombre JNDI: JForosDS
• URL: jdbc:oracle:thin:@localhost:1521:xe
• Driver: oracle.jdbc.OracleDriver
• Usuario: jforos
• Password: jforos
Desplegar la aplicación JForos
Navegar por las distintas funcionalidades de la
aplicación JForos y monitorizar en la consola de
administración el uso de los distintos Work
Managers
© 2010 - GFI Informática Workshop WebLogic Server 11gR1 Página 57

También podría gustarte