| Bellacosa Mainframe analise o triangulo da performance no Mainframe |
💥 🧠 VISÃO GERAL — O TRIÂNGULO DA PERFORMANCE
👉 Em 90% dos problemas reais:
- COBOL → lógica
- VSAM → I/O
- DB2 → acesso a dados
🔥 1. TUNING COBOL — CPU (o assassino silencioso)
🎯 Problema típico
- CPU alto
- EXEC alto no sampling
🧨 Anti-patterns clássicos
❌ Loop ineficiente
PERFORM UNTIL WS-END = 'Y'
READ FILE
END-PERFORM
❌ Reprocessamento desnecessário
- Mesmo cálculo várias vezes
- Falta de cache em memória
✅ Boas práticas
✔ Reduzir chamadas repetidas
IF WS-CALCULATED = 'N'
PERFORM CALC
END-IF
✔ Usar tabelas em memória (lookup)
- Evita I/O repetido
✔ Minimizar chamadas externas
- DB2
- VSAM
- APIs
💣 Insight
COBOL lento raramente é COBOL…
geralmente é acesso a dados mal feito
🐢 2. TUNING VSAM — I/O (o vilão invisível)
🎯 Problema típico
- WAIT alto
- I/O dominante no sampling
🧨 Problemas clássicos
❌ Acesso aleatório excessivo
- KSDS sem chave eficiente
❌ CI/CA splits
- Dataset mal definido
❌ Buffer insuficiente
- Muitas operações físicas
✅ Boas práticas
✔ Aumentar buffers
- BUFNI / BUFND
✔ Acesso sequencial sempre que possível
- Evitar random
✔ Ajustar definição do dataset
- CI size
- CA size
✔ Usar READ NEXT quando possível
READ FILE NEXT RECORD
💥 Insight
VSAM mal configurado transforma CPU em WAIT
🗄️ 3. TUNING DB2 — O campeão de problemas
🎯 Problema típico
- WAIT alto
- CPU alto distribuído
- SQL dominante
🧨 Problemas clássicos
❌ Full table scan
- Falta de índice
❌ SQL executado milhares de vezes
PERFORM 10000 TIMES
EXEC SQL SELECT ...
END-EXEC
❌ Falta de filtro adequado
- WHERE mal definido
✅ Boas práticas
✔ Criar índices corretos
- Baseado no WHERE
✔ Reduzir chamadas SQL
- Buscar em bloco
- Usar cursor
✔ Evitar SELECT dentro de loop
👉 mover lógica para fora
✔ Usar EXPLAIN
- Ver access path
💣 Insight
1 SQL ruim pode destruir toda a performance
🔗 4. INTEGRAÇÃO (onde mora o problema real)
💥 Cenário clássico
COBOL → chama DB2 → DB2 faz I/O → VSAM/disco
🧠 Diagnóstico via sampling
| Sintoma | Causa |
|---|---|
| CPU alto | COBOL |
| WAIT alto | VSAM |
| CPU + WAIT | DB2 |
🔥 5. CASO REAL COMPLETO
🎯 Sintoma
- Job lento
- 2 horas de execução
📊 Sampling mostra
DB2 → 50%
VSAM → 30%
COBOL → 20%
🧠 Diagnóstico
👉 Problema NÃO é COBOL
👉 É acesso a dados
🔧 Ações
- Criar índice DB2
- Reduzir chamadas SQL
- Ajustar VSAM
🚀 Resultado
- Tempo: 2h → 20min
💥 ganho de 6x
⚡ 6. CHECKLIST RÁPIDO (produção)
1. CPU ou WAIT?
2. Identificar hotspot
3. COBOL → otimizar lógica
4. VSAM → otimizar I/O
5. DB2 → otimizar SQL
6. Validar com nova coleta
💣 ERROS QUE MAIS VEJO EM PRODUÇÃO
❌ Ajustar COBOL sem olhar DB2
❌ Culpar DB2 sem olhar VSAM
❌ Ignorar I/O
❌ Não usar sampling
🧠 MODELO MENTAL FINAL
COBOL = processamento
VSAM = acesso físico
DB2 = acesso lógico
💥 FRASE FINAL (nível arquiteto)
“O gargalo não está no código…
está na forma como o código acessa os dados.”