Introducción al Work Load Manager

Muy buenas a todos de nuevo. Despues de un paréntesis de mas de dos años, motivados entre otras cosas por circunstancias personales y laborales, vuelvo a la carga con nuevas recetas y guiaburros sobre procesos de mainframe. Esa vez le ha tocado el turno al WLM o Workload Manager

Que es WorkLoad Manager?

Para responder a esa pregunta, lo que debemos tener presente es que nuestra CPU es limitada, y hay muchos recursos a los que hacer caso. Por tanto, es necesario conocer bien los procesos que lleva a cabo el mainframe para poder ofrecerles la disponibilidad adecuada en el momento preciso. Tambien es importante conocer que un proceso puede implicar otro, y no hacer caso a uno puede llevar al no progreso de otro.

Despues de estas preguntas existenciales que todo administrador de sistemas ha tenido que formular alguna vez y que le han llevado por la calle de la amargura, el Work Load Manager es un administrador de cargas de trabajo, tal y como su nombre indica, y es el punto de partida para repartir toda la CPU en los procesos que necesitemos, y evitar que a ninguno le falte de nada.

Como funciona el WLM?

Pues técnicamente, es un entorno basado en políticas. Dentro de cada política, definiremos workloads, que es básicamente, una definición de cuanta CPU debe asignársele a un proceso y durante cuanto tiempo, y las asociaremos a clases de servicio (pueden ser Batch, online, de sistema, etc). Por ultimo, existen unas reglas de clasificación, para asignar los trabajos a ejecutar con mayor o menor importancia, de forma que en función del trabajo, entre en una clase de servicio y el workload le diga la importancia que tiene y la CPU que le será asignada. Sencillo, no? Lo vemos mejor con un ejemplo practico:

Creación de una Política WLM

Para crear una política WLM, lo primero de todo es que necesitamos entrar en nuestro TSO al entorno WLM, para ello desde la opción oportuna del ISPF, elegiremos Work Load Manager. Al entrar, veremos una ventana como la de la siguiente figura:

wlm1

 

 

 

 

 

 

 

Fig. 1: WorkLoad Manager

Dando al Intro, nos aparecerá un menú donde seleccionaremos la opción 3. Create a New Definition:

wlm2

 

 

 

 

 

 

 

Fig. 2: Create a new definition

Le ponemos un nombre, una descripcion opcional y damos sobre la opción 1. Policies:

wlm3

 

 

 

 

 

 

 

Fig. 3: Creación de política

La daremos un nombre, POLWLM por ejemplo, y con PF3 la salvaremos. Esto nos llevará a la siguiente pantalla:

wlm4

 

 

 

 

 

 

 

Fig. 4: Politica creada

Daremos a PF3 nuevamente para volver al menú principal.

Definición de WorkLoads

Pulsaremos sobre la opción 2. Workloads, y crearemos 3 Workloads tipo, BATCH, STC y TSO, que son los tres tipos de procesos mas comunes dentro de un mainframe. Para ello, rellenamos los campos de la pantalla de a continuación con los 3 tipos de workloads y salvamos:

wlm5

 

 

 

 

 

 

 

Fig. 5: Creación de Workloads

wlm6

 

 

 

 

 

 

 

Fig. 6: Workloads creados

Creación de Service Classes

Para que cada Workload sepa que CPU debe asignarse, se crearán unos service clases por cada Workload para que compitan en recursos de la máquina. Para ello, iremos a la opción 4. Service Classes del menú principal, y allí definiremos los parámetros de cada clase. Por ejemplo, definiremos una clase BATCH llamada BATCHLO, de muy poca prioridad, y que utilice los recursos de la máquina cuando no estén en uso por otros procesos, también llamado servicio discrecional (o Discretionary). Para ello, relenaremos la siguiente pantalla de la service Class:

wlm7

 

 

 

 

 

 

 

Fig. 7: Creación de Service class

A continuación elegiremos en Action, una I (Insert a New Period) y seleccionaremos 4. Discretionary:

wlm8

 

 

 

 

 

 

 

Fig. 8: Selección de Discretionary

Por tanto, nuestra clase de servicio quedará de la siguiente manera:

wlm9

 

 

 

 

 

 

 

Fig. 9: Clase BATCHLO para discretionary

Edición de Reglas de Clasificación

Y por último, crearemos las reglas de clasificación para decir al sistema que procesos utilizarán los workloads que acabamos de crear. Por tanto, desde el menú principal, seleccionaremos la opción 6. Classification Rules y de allí, nos aparecerá una lista por defecto de los tipos de procesos que puede llevar a cabo un mainframe. Pues bien, buscaremos JES, pondremos la opción 3 (Modify) y pondremos en la zona DEFAULTS, nuestra recién creada regla de BATCHLO.

wlm10

 

 

 

 

 

 

 

Fig. 10: Edición de regla de clasificación JES

Si damos a Intro, la clasificación final quedará de la siguiente manera:

wlm11

 

 

 

 

 

 

 

Fig. 11: Clase JES modificada con BATCHLO

Que hemos creado con esto? Pues que si no hay mas definiciones, todos los trabajos batch submitidos por JES se ejecutarán de forma discrecional, compitiendo entre ellos por CPU pero que sin que ninguno de ellos quite CPU al resto.

Instalación y Activación de la nueva política WLM

Para poner en marcha la política, desde el menú principal, nos iremos al menu superior, Utilities, y de allí a 1. Install Definition, nos pedirá reescribir el fichero COUPLE de WLM, lo hacemos, y una vez salvado, seleccionaremos sobre 3. Activate service policy para ponerla en marcha de forma dinámica.

wlm12

 

 

 

 

 

 

 

Fig. 12: Instalacion y posterior activación de la política WLM

Y con esto, acabamos de entrar en un mundo interesantísimo sobre la gestión de los recursos. En una entrega posterior, hablaré sobre clases de servicio hibridas y como asignar diferentes pesos a según que procesos.

 

About Urtzi Larrieta

Director de Proyectos de entornos Mainframe, AIX y AS/400, llevo mas de 10 años trabajando para el sector servicios y banca, así como proyectos de sistemas, renovación tecnológica, estrategias de backup, y consultoría de sistemas.