📉 Como Caçar MIPS Desperdiçado
IBM Mainframe COBOL – Manual do Caçador de Custos para Padawans
“MIPS não somem sozinhos.
Alguém os está queimando.”
🧠 Antes de Tudo: O que é MIPS (na vida real)
-
MIPS = dinheiro
-
Não é performance “bonita”
-
É CPU faturada
-
Batch ruim = fatura triste 😭
☑️ Um programa pode estar correto
☑️ E ser financeiramente criminoso
🐘 Onde os MIPS se Escondem (Mapa do Crime)
| Área | Crime comum |
|---|---|
| COBOL | MOVE inútil, PERFORM em loop |
| SORT | Sort desnecessário |
| DB2 | Fetch linha a linha |
| I/O | Leitura registro a registro |
| JCL | Classes erradas |
| Compilação | Parâmetro errado |
🧪 1. O Maior Vilão: LOOP INÚTIL
🔥 Sintoma
-
CPU alto
-
Pouca E/S
-
Tempo absurdo
💀 Crime clássico
🛠️ Cura Bellacosa™
-
Elimine MOVE redundante
-
Tire código de dentro do loop
☑️ Código dentro de loop custa MIPS
🧪 2. MOVE em Cadeia (o Vampiro Silencioso)
🔥 Sintoma
-
CPU sobe
-
Programa “simples”
💀 Crime clássico
🛠️ Cura Bellacosa™
☑️ COBOL não cobra por linha… cobra por execução.
🧪 3. PERFORM CALLADO (Sem necessidade)
🔥 Sintoma
-
Modularização “bonita”
-
CPU feia
💀 Crime clássico
chamado milhões de vezes.
🛠️ Cura Bellacosa™
-
Inline lógica crítica
-
Evite PERFORM em massa
☑️ Modularidade demais custa caro.
🧪 4. SORT Burro (Quando não precisava)
🔥 Sintoma
-
CPU alto
-
Disco suando
💀 Crime clássico
-
SORT de arquivo já ordenado
-
SORT para eliminar duplicidade
🛠️ Cura Bellacosa™
-
Valide se já vem ordenado
-
Use controle lógico
☑️ SORT é um monstro de MIPS.
🧪 5. DB2: FETCH Um a Um (Pecado Mortal)
🔥 Sintoma
-
CPU altíssimo
-
SQL “simples”
💀 Crime clássico
milhões de vezes.
🛠️ Cura Bellacosa™
-
Use FETCH BLOCK
-
Aumente ARRAY FETCH
☑️ Banco pensa em bloco, não em linha.
🧪 6. COMMIT Mal Posicionado
🔥 Sintoma
-
Lock
-
Reprocesso
-
CPU extra
💀 Crime clássico
-
COMMIT a cada registro
-
COMMIT gigante demais
🛠️ Cura Bellacosa™
-
Commit por lote
-
Ajustar checkpoint
🧪 7. I/O Excessivo (Leitura Burra)
🔥 Sintoma
-
Muito tempo de execução
-
Pouca CPU útil
💀 Crime clássico
-
READ dentro de loop
-
Releitura desnecessária
🛠️ Cura Bellacosa™
-
Buffer
-
Carregar em memória quando possível
☑️ I/O custa caro e demora.
🧪 8. Compilação Errada = MIPS Perdido
🔥 Crime silencioso
-
Compilar COBOL 5 com PARMs antigos
🛠️ Cura Bellacosa™
☑️ Compilador moderno gera código melhor.
🧪 9. JCL Mal Enquadrado
🔥 Sintoma
-
Job pequeno em classe errada
💀 Crime clássico
-
Classe de alto consumo
-
Prioridade indevida
🛠️ Cura Bellacosa™
-
Classe certa
-
WLM ajustado
🧪 10. Falta de Métrica = Cegueira
🔥 Erro fatal
-
“Acho que melhorou”
🛠️ Ferramentas
-
SMF
-
RMF
-
Accounting DB2
-
EXPLAIN PLAN
☑️ Sem métrica, não há tuning.
🧠 Checklist Rápido do Caçador de MIPS
☑️ Tirou código de loop
☑️ Reduziu SORT
☑️ Ajustou FETCH
☑️ Ajustou COMMIT
☑️ Compilou certo
☑️ Mediu antes e depois
🧙 Easter Eggs Bellacosa™
-
1 MOVE em loop pode custar milhões por mês
-
Batch “simples” costuma ser o mais caro
-
Melhor otimização: não executar
🏁 Conclusão
“MIPS não se otimizam…
MIPS se caçam.”