Estrategias claves de optimización de procesos batch
IBM
recomienda 7 estrategias claves para optimizar los procesos batch. Estas
estrategias afectan no solo al desarrollo de procesos y programas COBOL, sino
también al área de sistemas.
Aunque
vamos a mencionar todas las estrategias en este documento, vamos a centrarnos
en aquellas que podamos abordar desde el área de Desarrollo.
- Asegurarnos
que el sistema está correctamente configurado
- Implementar
técnicas de datos en memoria
- Optimizar
la entrada / salida de los procesos
- Incrementar
el paralelismo
- Reducir
el impacto de los errores
- Incrementar
la efectividad operacional
- Mejorar
la eficiencia de las aplicaciones
Configuración correcta del sistema
En
ninguna instalación podemos realizar una optimización de los procesos batch si
no partimos del hecho que el sistema posea los recursos y configuración adecuada:
- Procesador
suficiente para evitar encolamientos (CPU queuing)
- Memoria
suficiente para reducir la paginación
- Un
sistema potente de entrada / salida
- Un
entorno DB2 de base de datos con los recursos adecuados
Además:
- Configuración
correcta del Workload Manager (WLM) o gestor de la carga de trabajo
- Los
subsistemas DB2 configurados correctamente para el batch
Si
el procesador está siempre ocupado al 100% y la paginación es constante, poco
margen de maniobra tendremos para realizar tareas de optimización.
Implementar técnicas de datos en memoria
Las
técnicas de datos en memoria tienen como objetivo que los procesos se ejecuten
más rápidamente reduciendo la entrada / salida.
Utilizando
técnicas de cache o creando búferes para almacenar datos leídos de cintas o
discos se consiguen dos beneficios fundamentales:
·
Si
se reducen las entradas / salidas se reduce en proporción el tiempo
transcurrido en realizarlas que realmente no es invertido en procesar los datos
- A
menos entrada / salidas el subsistema de entrada / salida del sistema
operativo z/OS estará menos ocupado con lo cuál tendrá una mejor respuesta
para todos los procesos
Optimizar la entrada / salida de los procesos
El
procesamiento de cargas de trabajo en batch requiere procesador, memoria y
recursos de entrada / salida. Cuando analizamos el tiempo de respuesta de cada
uno de estos componentes, encontramos que la gran mayoría del tiempo (60-70%)
se emplea en la entrada / salida.
Una
de las formas más adecuadas de reducir la ventana batch, es reducir el tiempo
de entrada / salida. Existen varias formas de mejorar estos tiempos agrupadas
en dos categorías fundamentales:
- Basada
en tecnología: utilización de dispositivos más rápidos tales como ESCON,
DFW, Dynamic Cache Management Enhancement y otros
- Soluciones
de administración tales como: donde se colocan los ficheros,
particionamiento de bases de datos, asignación correcta de la clase de
almacenamiento, etc.
Mejorar
los tiempos de entrada / salida no producirá ningún resultado apreciable, a
menos que tengamos los recursos de procesador y memoria para tratar los datos.
Incrementar el paralelismo
Otro
de los factores de mayor influencia en el tiempo de procesamiento de la carga
de trabajo en batch es el grado de solapamiento de los procesos (cuantos
procesos pueden ejecutarse en paralelo).
El
grado de paralelismo o solapamiento de procesos está influenciado por las
dependencias entre procesos así como por la disponibilidad de capacidad del
propio sistema z/OS.
Reducir el impacto de los errores
En
muchas instalaciones, cancelar procesos debido a errores graves tiene una
influencia significativa en el tiempo de procesamiento de la carga de trabajo
en batch.
En
muchas instalaciones, es la única causa significativa de los problemas de
rendimiento en la ventana batch.
Incrementar la efectividad operacional
Es
importante que la gran mayoría de los procesos se ejecuten de forma planificada
en la venta batch.
El
incremento de procesos no planificados o esporádicos, puede traer como
consecuencia:
- Demoras
entre el final de un proceso y el lanzamiento de otro que depende de él
- Demoras
si hay que realizar acciones manuales con los procesos como ponerlos en
HOLD
- Demoras
cuando se lanza una gran cantidad de procesos no planificados
- Demoras
cuando hay dependencias de la carga de trabajo online para poder procesar
determinados datos en batch
- Algunos
procesos una vez lanzados pueden quedarse a la espera de que determinados ficheros
estén disponibles desde otros procesos o sean transmitidos desde otros
sistemas
- Demoras
al tener que verificar de forma manual determinadas condiciones para que
un proceso esporádico pueda ser lanzado
- Demoras
en detectar manualmente si otros procesos fallaron antes de lanzar el
nuestro debido a dependencia de datos
- Acciones
de restart / recovery del proceso que puedan provocar demoras en la
ventana batch
La
importancia de incrementar la efectividad operacional mediante la reducción de
procesos esporádicos cobra sentido ante el aumento de los requerimientos de
negocio, que demandan cada día nuevos productos y más procesamiento.
Si
los procesos esporádicos aumentan significativamente, en una instalación
grande, la ventana batch puede quedar inmanejable o sufrir afectaciones
importantes.
Mejorar la eficiencia de los programas
Ningún
programa COBOL es tan eficiente como debiera. Esto ocurre porque tenemos en
mente al codificar unas reglas generales y no nos detenemos nunca a mejorar un
programa una vez que las pruebas en Desarrollo demuestran que cumple los
requerimientos de negocio para el cuál fue diseñado.
Hay
que tener en mente que los procesos están compuestos por pasos que ejecutan
programas y que el tiempo que el proceso no invierta en utilidades de sistema
como IDCAMS o DFSORT, lo invierte en el procesamiento escrito por nosotros.
0 comentarios:
Publicar un comentario