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)
Sem Prioridade
1 - Restauração levou o tempo de 25.29 minutos;
2 - Restauração levou o tempo de 24.48 minutos;
3 - Restauração levou o tempo de 24.06 minutos;
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);
1 - Restauração com prioridade levou o tempo de 20.85 minutos;
2 - Restauração com prioridade levou o tempo de 20.24 minutos;
3 - Restauração com prioridade levou o tempo de 20.39 minutos;
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.
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