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.


posted under , , |

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio