🧪 Plano de Tuning Batch
COBOL – IBM Mainframe
“Batch lento não é destino, é diagnóstico.”
🟥 FASE 0 — PRINCÍPIO SAGRADO
❌ Nunca tune sem medir
❌ Nunca mude tudo de uma vez
❌ Nunca confie só em elapsed time
🟦 FASE 1 — IDENTIFICAÇÃO DO PROBLEMA
🎯 Objetivo
Descobrir ONDE o batch gasta tempo:
-
CPU?
-
I/O?
-
Espera?
-
Lock?
-
Storage?
📌 Ações
☑ Identificar JOB / STEP problemático
☑ Horário de execução
☑ Pico ou fora do pico
🔧 Ferramentas
-
SMF 30 (Job)
-
SMF 72 (CPU)
-
OMEGAMON
-
RMF
-
SDSF (CPU TIME)
💬 Fofoquinha:
Batch “lento” às vezes só roda no horário errado.
🟨 FASE 2 — CPU vs ELAPSED (o divisor de águas)
| Situação | Diagnóstico |
|---|---|
| CPU alto / Elapsed baixo | Código ruim |
| CPU baixo / Elapsed alto | I/O, lock, espera |
| Ambos altos | Tudo errado |
☑ Compare:
-
CPU TIME
-
EXCP
-
SRB vs TCB
🟩 FASE 3 — ANÁLISE DE CPU (quando a conta dói)
🧠 Verificar compilação COBOL
☑ Parâmetros:
☑ Evitar:
-
NUMCHECK em produção sem necessidade
-
SSRANGE
-
INITCHECK
📉 Ganho típico: 5% a 30%
🟪 FASE 4 — CÓDIGO COBOL (o crime mais comum)
🔪 Pontos clássicos de CPU alta
☑ DISPLAY em loop
☑ MOVE repetido
☑ IF aninhado
☑ PERFORM THRU
☑ Conversão implícita de tipos
💡 Melhoria
-
Código linear
-
Parágrafos curtos
-
Cálculo com COMP/COMP-5
🥚 Easter egg:
Um DISPLAY por registro já custou mais que licença de compilador.
🟧 FASE 5 — I/O (onde o tempo some)
📊 Analisar
-
EXCP alto
-
WAIT I/O
-
VSAM CI/CA mal dimensionado
☑ Ajustes
-
Buffers maiores
-
Redução de leitura repetida
-
SORT externo em vez de interno
📉 Ganho típico: 10% a 50% de elapsed
🟫 FASE 6 — SORT (o vilão invisível)
☑ Verificar:
-
SORT interno vs DFSORT
-
Quantidade de registros
-
Campos de chave
💣 Erro comum:
SORT interno com milhões de registros sem tuning.
☑ Preferir:
🟥 FASE 7 — JCL (ninguém olha, mas paga)
☑ Revisar:
-
REGION exagerado
-
STEPLIB duplicado
-
Programas obsoletos rodando
☑ Ajustar:
-
DISP correto
-
CONCATENATION mínima
-
DD redundante removido
🟦 FASE 8 — PARALELISMO E JANELA
☑ Avaliar:
-
Jobs sequenciais sem dependência
-
Execução fora do pico
-
Divisão por partição lógica
💬 Fofoquinha:
Batch mais rápido é o que não disputa CPU.
🟩 FASE 9 — zIIP / LE (dinheiro dormindo)
☑ Verificar:
-
LE habilitado
-
Versão do COBOL
-
Ambiente preparado
📉 Offload possível:
-
XML
-
JSON
-
Serviços
-
Partes do LE
🟪 FASE 10 — MEDIR NOVAMENTE (o momento da verdade)
☑ Comparar:
-
CPU antes/depois
-
Elapsed antes/depois
-
EXCP antes/depois
-
SMF
☑ Documentar:
-
Mudança aplicada
-
Ganho real
-
Risco
☠️ ERROS QUE ARRUÍNAM O TUNING
| Erro | Consequência |
|---|---|
| Mudar tudo de uma vez | Incidente |
| Não medir SMF | Ilusão |
| Otimizar DEV só | Nenhum ganho real |
| Ignorar I/O | Elapsed explode |
| Culpar o mainframe | Vergonha técnica |
🎓 RESUMO PADAWAN
✔ Batch lento tem causa
✔ CPU não mente
✔ Código importa
✔ I/O mata
✔ JCL conta
✔ zIIP salva
🧠 FRASE FINAL BELLACOSA™
“Tuning não é mágica.
É respeito à máquina.”
Sem comentários:
Enviar um comentário