sábado, setembro 07, 2019

Alterar Prioridade de um Job no Mainframe

Este mês eu estou de volta para discutir sobre Adabas Mainframe, no inicio do ano descobri um lance no mainframe que achei espetacular, alterar as prioridades dos jobs, o z/OS administra jobs baseado em "classes de serviço". Todos os jobs do sistema é atribuído uma classe de serviço com base na política do WLM. Há duas classes de serviço fornecido pelo sistema que fixa as prioridades de despacho. SYSTEM é a maior das prioridade (255) e é geralmente usado para address spaces do sistema operacional. Já a SYSSTC é executado próxima a prioridade mais alta (254) e é geralmente usado para tarefas muito importantes iniciadas que estão processando o job de aplicação. E tem a prioridade batch, esta com uma importancia menor que a da SYSTEM e a SYSSTC, os jobs que rodamos geralmente ficam com essa prioridade.

Com esse conceito em mente imagine a situação, o banco de dados mais importante da empresa foi corrompido e esta tudo parado, para resolver o problema temos que restaurar o último backup junto com os PLOGs para voltar a situação que estava no momento antes da corrupção, na hora que rodar o job de restauração ele vai ter a prioridade igual aos outros jobs que os outros usuários rodam, mais esta situação atipica, esta tudo parado, se eu alterar a prioridade desse job para SYSSTC o z/OS vai dar uma prioridade maior fazendo ele terminar mais rápido, como posso pra provar que realmente a performance muda quando se dá o comando para SYSSTC? Vamos restaurar um banco de dados Adabas 3 vezes, primeiro vamos restaurar ele sem mexer na prioridade, depois vamos rodar 3 jobs de restauração com a prioridade SYSSTC e comparar o tempo.

Job que vamos Rodar

Job que vamos testar, vamos pegar um backup e restaurar no mesmo banco e queimar os arquivos que lá já existam (opção overwrite faz isso)
//AAFPREST JOB (ABBP,DIBD),SUPORTE,CLASS=S,MSGCLASS=A,TYPRUN=HOLD              
//*UQ ALLOW                                                                    
//*  ----------------------------------------------------------                
//*         RESTORE DO BANCO ID 211 - BANCO OFFLINE                              
//*  ----------------------------------------------------------                
//RESTORE  EXEC AAFAU211                                                      
//DDREST1   DD DSN=ADABAS.C.SAVE.DB211.LIBERA,                                
//          DISP=OLD,UNIT=CVRT,LABEL=(1,SL),                                  
//          VOL=SER=VC1993                                                    
//*  ----------------------------------------------------------                
//DDCARD    DD *                                                              
ADARUN PROG=ADASAV,DBID=211,MODE=SINGLE,PLOGRQ=NO                              
//DDKARTE   DD *                                                              
ADASAV RESTORE OVERWRITE

Sem Prioridade

1 - Restauração levou o tempo de 25.29 minutos;
0------ JES2 JOB STATISTICS ------                                              
-  23 APR 2019 JOB EXECUTION DATE                                               
-           16 CARDS READ                                                       
-        1,590 SYSOUT PRINT RECORDS                                             
-            0 SYSOUT PUNCH RECORDS                                             
-           54 SYSOUT SPOOL KBYTES                                              
-        25.29 MINUTES EXECUTION TIME 

2 - Restauração levou o tempo de 24.48 minutos;
-  23 APR 2019 JOB EXECUTION DATE                                               
-           16 CARDS READ                                                       
-        1,590 SYSOUT PRINT RECORDS                                             
-            0 SYSOUT PUNCH RECORDS                                             
-           54 SYSOUT SPOOL KBYTES                                              
-        24.48 MINUTES EXECUTION TIME

3 - Restauração levou o tempo de 24.06 minutos;
0------ JES2 JOB STATISTICS ------                                              
-  23 APR 2019 JOB EXECUTION DATE                                               
-           16 CARDS READ                                                       
-        1,590 SYSOUT PRINT RECORDS                                             
-            0 SYSOUT PUNCH RECORDS                                             
-           54 SYSOUT SPOOL KBYTES                                              
-        24.06 MINUTES EXECUTION TIME

Com Prioridade

Esse foi o comando dado para mudar a prioridade, damos ele na console do mainframe, temos que dar este comando cada vez que rodarmos a restauração (3 vezes no total);
e AAFPREST,srvclass=SYSSTC

1 - Restauração com prioridade levou o tempo de 20.85 minutos;
0------ JES2 JOB STATISTICS ------                                              
-  23 APR 2019 JOB EXECUTION DATE                                               
-           16 CARDS READ                                                       
-        1,590 SYSOUT PRINT RECORDS                                             
-            0 SYSOUT PUNCH RECORDS                                             
-           54 SYSOUT SPOOL KBYTES                                              
-        20.85 MINUTES EXECUTION TIME

2 - Restauração com prioridade levou o tempo de 20.24 minutos;
0------ JES2 JOB STATISTICS ------                                              
-  23 APR 2019 JOB EXECUTION DATE                                               
-           16 CARDS READ                                                       
-        1,590 SYSOUT PRINT RECORDS                                             
-            0 SYSOUT PUNCH RECORDS                                             
-           54 SYSOUT SPOOL KBYTES                                              
-        20.24 MINUTES EXECUTION TIME

3 - Restauração com prioridade levou o tempo de 20.39 minutos;
0------ JES2 JOB STATISTICS ------                                              
-  23 APR 2019 JOB EXECUTION DATE                                               
-           16 CARDS READ                                                       
-        1,590 SYSOUT PRINT RECORDS                                             
-            0 SYSOUT PUNCH RECORDS                                             
-           54 SYSOUT SPOOL KBYTES                                              
-        20.39 MINUTES EXECUTION TIME

Conclusão

Os jobs que foram dados o comando de prioridade rodaram mais rápido, imagina em uma situação critica que o job leva de 18 a 20 horas rodando sem o comando, com a prioridade esse tempo pode diminuir, essa simulação dá pra se ter uma idéia da melhora para situações que precisamos com urgencia que acabe um job. A prioridade é um rémedio que tem os seus efeitos colaterais, usando sem critério pode causar lentidão pra todos no mainframe, o seu uso deve ser bem critérioso.

0 comentários:

Enviar um comentário