☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta MSU. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta MSU. Mostrar todas as mensagens

segunda-feira, 11 de maio de 2026

🔥💣 “O MAINFRAME NÃO FICOU CARO — VOCÊ É QUE DEIXOU O 4HRA VIRAR UM INCÊNDIO” ☕💾

 

Bellacosa Mainframe e o custo medio de uso do mainframe 4HRA

🔥💣 “O MAINFRAME NÃO FICOU CARO — VOCÊ É QUE DEIXOU O R4HA VIRAR UM INCÊNDIO” ☕💾

Rolling 4HRA no IBM Z: A Verdade Brutal que Todo Sysprog Junior Descobre Quando o CPU Começa a Derreter

Padawan…

Existe um momento sombrio na vida de todo SYSprog junior.

Um momento em que:

  • o CPU começa a subir,

  • o RMF vira filme de terror,

  • o DBA começa a suar frio,

  • o gerente pergunta sobre custos,

  • e alguém pronuncia uma sigla maldita dentro da sala de guerra:

🚨 R4HA

Ou:

🔥 Rolling 4-Hour Average

Nesse instante…

Você deixa de ser apenas “o cara que olha JES2 e IPL”.

E começa a entender a realidade brutal do mundo IBM Z moderno:

O maior inimigo do mainframe não é a falta de potência.

É workload mal otimizado queimando MSU como se CPU fosse lenha.


☕ O GRANDE MITO: “MAINFRAME É CARO”

Padawan…

O IBM Z não ficou caro por acaso.

O problema é que muita empresa roda:

  • SQL desastroso,

  • batch sem controle,

  • SORT monstruoso,

  • loops infinitos,

  • CICS mal desenhado,

  • e workloads completamente desequilibrados.

Depois olha para a conta mensal e diz:

  • “o mainframe custa caro”.

É como culpar a usina elétrica porque alguém deixou um forno industrial ligado dentro da garagem.


Bellacosa Mainframe e o rolling 4hra

🔥 O QUE É O ROLLING 4HRA?

O Rolling 4HRA é:

  • uma média móvel de consumo de CPU/MSU das últimas 4 horas.

Mas dizer só isso é simplificar demais.

Na prática ele é:

💀 O SENSOR FINANCEIRO DO DATACENTER

Porque ele mede:

  • consumo sustentado,

  • pressão operacional,

  • tendência de carga,

  • risco financeiro,

  • e eficiência arquitetural do ambiente.


💾 O MAINFRAME NÃO TEM MEDO DE PICOS

Esse é o detalhe genial do modelo IBM Z.

O sistema foi construído para absorver:

  • explosões de workload,

  • fechamento bancário,

  • Black Friday,

  • processamento massivo,

  • milhões de transações.

O problema nunca foi:

  • o pico curto.

O problema é:

🔥 O INCÊNDIO CONTÍNUO

É aí que o R4HA entra.


☕ A FILOSOFIA POR TRÁS DO R4HA

Imagine um motor Ferrari.

Uma acelerada rápida:

  • não destrói o motor.

Mas manter:

  • giro máximo,

  • temperatura extrema,

  • pressão contínua,

  • por horas…

Aí o sistema começa a sofrer.

O Rolling 4HRA existe justamente para medir:

  • desgaste sustentado.


🚨 POR QUE A IBM USA ISSO?

Porque seria injusto cobrar:

  • pelo pico de alguns minutos.

Então o ecossistema IBM criou:

  • média móvel de 4 horas.

Isso suaviza:

  • explosões temporárias,

  • spikes pequenos,

  • ruídos operacionais.

Mas também revela:

  • workloads persistentemente ruins.


🔥 E É AQUI QUE O SYSprog PADAWAN ACORDA PARA A VIDA

Você percebe que:

  • CPU não é apenas CPU.

Ela virou:

  • dinheiro,

  • licensing,

  • SLA,

  • capacidade,

  • reputação operacional.

No IBM Z moderno:

💰 MSU = DINHEIRO


💣 QUANDO O DESASTRE COMEÇA

Tudo parece normal.

Até que alguém sobe:

  • um SQL sem índice,

  • um tablespace scan monstruoso,

  • um batch paralelo sem controle,

  • um SORT insano,

  • um COBOL looping,

  • um CICS runaway task.

Aí…

O CPU começa a subir.

Mas o verdadeiro terror ainda nem começou.


☕ O “EFEITO VENENO” DO R4HA

Esse conceito separa:

  • o junior do veterano.

Porque mesmo depois de corrigir o problema:

  • o R4HA continua alto.

E o padawan pergunta:

“Mas já cancelamos o job… por que continua ruim?”

Porque o Rolling 4HRA:

  • ainda está carregando o histórico do desastre.


🔥 O R4HA TEM MEMÓRIA

Ele funciona como:

  • uma onda de calor.

Mesmo após apagar o incêndio:

  • o ambiente continua quente.

Isso gera:

  • impacto financeiro,

  • impacto operacional,

  • pressão no capacity planning.


💾 O ERRO CLÁSSICO DOS JUNIORS

Confundir:

  • CPU instantânea
    com

  • Rolling 4HRA.

São coisas completamente diferentes.

Você pode ter:

  • CPU baixa AGORA,

  • mas R4HA altíssimo.

Porque a média móvel ainda está contaminada pelas horas anteriores.


🚨 O QUE MAIS INCENDIA O R4HA?

🔥 DB2

Aqui mora um dos maiores vilões do datacenter.

Um único SQL ruim pode:

  • destruir cache,

  • explodir SORT,

  • aumentar GETPAGE,

  • saturar CPU,

  • gerar scan absurdo.

E tudo isso:

  • alimenta o R4HA.


🔥 CICS

Quando mal desenhado:

  • vira um triturador de MSU.

Problemas clássicos:

  • pseudo-conversational ruim,

  • polling excessivo,

  • loops de transação,

  • runaway tasks,

  • filas gigantes.


🔥 BATCH

O batch mal otimizado é um clássico.

Especialmente:

  • DFSORT gigantesco,

  • JOINKEYS abusivo,

  • I/O thrashing,

  • múltiplos jobs concorrentes.

O resultado:

💀 tempestade de CPU


☕ O WLM TENTA SALVAR O AMBIENTE

O WLM funciona como:

  • o maestro do caos.

Ele tenta:

  • priorizar workloads,

  • proteger online,

  • equilibrar recursos,

  • manter SLA.

Mas quando:

  • tudo começa a consumir demais…

Nem o WLM faz milagre.


🔥 SOFT CAPPING: A FACA DE DOIS GUMES

Então alguém diz:

“Vamos limitar MSU!”

Aí nasce o:

💣 Soft Capping

Objetivo:

  • evitar explosão financeira.

Mas se configurado errado:

  • batch atrasa,

  • online degrada,

  • filas explodem,

  • SLA morre.


💾 O PARADOXO DO SYSprog

Se libera CPU:
💰 custo explode.

Se limita demais:
💀 produção explode.

Esse equilíbrio delicado é uma das artes mais difíceis do IBM Z.


🚨 O QUE O SYSprog EXPERIENCED APRENDE

Ele aprende que performance tuning não é:

  • “deixar rápido”.

É:

🔥 impedir o datacenter de sangrar dinheiro


☕ O MAINFRAME MODERNO É UMA MÁQUINA DE EFICIÊNCIA

O IBM Z moderno:

  • processa milhões de TPS,

  • roda bancos inteiros,

  • suporta cloud híbrida,

  • executa IA,

  • integra APIs,

  • conversa com Kubernetes,

  • roda Linux massivamente.

O hardware é absurdamente poderoso.

O problema normalmente está:

  • no workload.


💣 O MAINFRAME NÃO ESTÁ LENTO

Na maioria dos casos:

  • o ambiente está sendo sabotado por software ruim.

E o Rolling 4HRA:

  • apenas revela isso de forma cruel.


🔥 O DIA EM QUE O PADAWAN EVOLUI

A evolução acontece quando ele entende:

tuning não é estética

Não é:

  • “ganhar benchmark”.

É:

  • sobrevivência financeira,

  • estabilidade operacional,

  • sustentabilidade do ambiente.


☕ RMF: O ORÁCULO DO IBM Z

O SYSprog veterano aprende a ler:

  • RMF,

  • SMF 70,

  • SMF 72,

  • OMEGAMON,

  • MXG,

  • IntelliMagic.

Porque nesses relatórios está:

  • a verdade do ambiente.

O R4HA conta uma história.

E essa história normalmente aponta:

  • quem está incendiando CPU.


🔥 O MAINFRAME CONTINUA SENDO O REI

E aqui está a ironia maravilhosa.

Mesmo sob caos:

  • milhões de transações continuam funcionando,

  • ATM continua online,

  • PIX continua passando,

  • cartão continua autorizando,

  • folha continua fechando.

Enquanto isso…

  • o IBM Z aguenta pancada absurda silenciosamente.


💾 A GRANDE VERDADE

O problema nunca foi:

  • a potência do mainframe.

O problema é:

  • arquitetura ruim,

  • SQL ruim,

  • falta de governança,

  • tuning inexistente,

  • e desconhecimento sobre workload management.


☕ LIÇÃO FINAL DO PADAWAN IBM Z

Quando você olha um Rolling 4HRA:

  • você não está vendo apenas CPU.

Você está vendo:

  • comportamento do ambiente,

  • disciplina operacional,

  • maturidade técnica,

  • eficiência arquitetural,

  • e o custo real das decisões ruins.


🔥 FRASE FINAL ESTILO BELLACOSA MAINFRAME

“O IBM Z não cobra caro por existir.
Ele apenas expõe, em MSU e R4HA, todas as decisões ruins que alguém colocou em produção.” ☕💾🔥



🔥 Rollinf 4HRA

 O Rolling 4HRA (Rolling 4-Hour Average) é a média móvel de consumo de capacidade do mainframe IBM Z durante as últimas quatro horas. Ele mede o uso sustentado de CPU e MSU, sendo utilizado pelo WLM, RMF e modelos de licenciamento IBM para calcular custos e avaliar performance do ambiente. Diferente do uso instantâneo de CPU, o 4HRA continua elevado mesmo após um pico terminar, refletindo impactos anteriores no workload. Por isso, SQL ruim, batch pesado e loops podem aumentar custos significativamente.

 

domingo, 26 de abril de 2026

💣🔥 O MAINFRAME NÃO PERDOA: 1 LINHA DE CÓDIGO PODE CUSTAR MILHARES

 

Bellacosa Mainframe falando sobre performance

💣🔥 O MAINFRAME NÃO PERDOA: 1 LINHA DE CÓDIGO PODE CUSTAR MILHARES

Vamos destrinchar isso no estilo Bellacosa: direto, profundo e com aquela visão de bastidor que pouca gente comenta.


🧠 Performance eom contexto real de guerra

🚀 Ajuste de Performance em Mainframe: pequenas mudanças, impacto massivo

No mundo de processamento corporativo de alto volume, a diferença entre um programa eficiente e um “pesado” não é segundos…


👉 pode significar milhares de dólares economizados em MSU (unidade que mede consumo e custo no mainframe).

Muitas vezes focamos em “funcionar”… mas esquecemos de “rodar leve”.


⚙️ Explicação — o que está POR TRÁS disso

Aqui está o ponto que muita gente subestima:

👉 Mainframe não é só CPU — é economia por instrução executada.

Cada ciclo desnecessário vira:

  • 💸 mais cobrança de licença (MLC)
  • 🐢 mais tempo de resposta
  • 💥 risco em janelas batch

🔥 Por que isso é ainda MAIS crítico em 2026?

Mesmo com cloud híbrida dominando:

  • Bancos globais ainda rodam em IBM z/OS
  • DB crítico continua em IBM Db2
  • Processamento massivo ainda depende de batch pesado

💡 Ou seja: o mainframe virou o coração invisível da economia digital.

E código ruim ali… custa caro TODO DIA.


💣 Análise técnica aprofundada dos pontos

1. 🗃️ DB2 Cursor mal usado = desperdício brutal

Se você faz:

SELECT * FROM CLIENTES

…mas só usa 10 registros:

👉 você está pagando por 10.000.

💡 Solução:

  • OPTIMIZE FOR n ROWS
  • índices corretos
  • evitar full table scan

🔥 Curiosidade:
Já vi job cair de 40 minutos → 3 minutos só ajustando índice.


2. 💾 SORT vs I/O: a guerra invisível

Quando você não usa memória suficiente:

👉 o sistema escreve em disco (WORK FILES)

Resultado:

  • I/O explode
  • tempo de execução dispara

💡 Ajuste fino:

  • REGION / MEMLIMIT
  • SORTWK corretamente dimensionado

🧠 Easter egg:
SORT mal configurado pode custar MAIS CPU que o próprio programa COBOL.


3. 🔢 COMP vs COMP-3 — detalhe que vira milhões

  • COMP → binário (rápido)
  • COMP-3 → packed decimal (mais compacto, porém mais lento em cálculo)

👉 Em loops massivos:
isso vira diferença real de CPU.

💣 Regra prática:

  • cálculo intensivo → use COMP
  • armazenamento → use COMP-3

4. ⚠️ SSRANGE — o vilão silencioso

Ótimo para debug…
PÉSSIMO em produção.

👉 Ele verifica limites de array a cada acesso.

Resultado:

  • CPU explode
  • performance despenca

🔥 Já vi aumento de +20% de CPU só por esquecer isso ligado.


🧨 O que ELE NÃO falou (mas deveria)

Aqui vai a camada avançada:

🧠 1. COBOL “bonito” pode ser lento

Código legível ≠ código eficiente

Ex:

  • PERFORM dentro de PERFORM dentro de PERFORM
  • MOVE desnecessário
  • IF redundante

🧠 2. I/O é o verdadeiro inimigo

Não é CPU.

👉 É acesso a disco.

Quem domina isso:

  • usa buffering
  • reduz READ/WRITE
  • evita datasets intermediários

🧠 3. Batch Window é política, não técnica

Se seu job estoura janela:

👉 não é só problema técnico
👉 vira problema de negócio (SLA)


💡 Exemplos reais (estilo “guerra de produção”)

  • 🏦 Banco:
    Um cursor sem índice → +300 MSU/dia
    👉 custo mensal absurdo
  • 📦 Logística:
    SORT mal dimensionado → job atrasava expedição
    👉 impacto físico real
  • 💳 Cartão de crédito:
    SSRANGE ligado → sistema 15% mais caro sem ninguém perceber

🧪 Easter Eggs de Mainframe 🕵️

  • 🧩 Programas COBOL podem rodar MAIS RÁPIDO que Java até hoje em batch massivo
  • 💣 Um único DISPLAY em loop pode matar performance
  • 🧠 Muitas empresas NÃO sabem quanto custa cada programa individual
  • ⚠️ O maior gargalo raramente é onde o dev acha que está

🎯 Conclusão — a verdade nua e crua

Modernizar não é só API, cloud ou DevOps.

👉 É respeitar a máquina.

No mainframe:

Eficiência não é otimização — é sobrevivência financeira.


🚀 Pergunta provocativa

Se hoje você tivesse que pagar do seu bolso o MSU do seu código…

👉 você ainda programaria do mesmo jeito?



💣🔥 CHECKLIST CIRÚRGICO DE PERFORMANCE — COBOL + DB2 (NÍVEL PRODUÇÃO) 🔥💣

Aqui não é teoria — é checklist de guerra, pra você olhar um programa e já saber onde cortar custo, CPU e tempo de execução.


🧠 1. ACESSO AO DB2 (onde mais se perde dinheiro)

🔍 Checklist rápido:

  • Existe índice cobrindo o WHERE?
  • Evita SELECT *?
  • Usa OPTIMIZE FOR n ROWS quando necessário?
  • Evita ORDER BY desnecessário?
  • Cursor está com FETCH controlado (não trazendo milhares sem uso)?
  • Usa WITH UR quando leitura suja é aceitável?
  • Evita funções em colunas indexadas (SUBSTR, UPPER, etc)?

💣 Cirurgia clássica:

SELECT * FROM CLIENTES

⬇️

SELECT NOME, CPF FROM CLIENTES
WHERE CPF = :WS-CPF

👉 Redução brutal de I/O + CPU


⚙️ 2. LOOPS COBOL (o assassino silencioso)

🔍 Checklist:

  • Existe PERFORM dentro de PERFORM desnecessário?
  • Loop depende de I/O (READ dentro de loop)?
  • Variáveis são recalculadas sem necessidade?
  • Usa EXIT PERFORM corretamente?

💡 Dica de ouro:

👉 Tire tudo que puder de dentro do loop


💾 3. I/O (o verdadeiro vilão)

🔍 Checklist:

  • Quantos READ/WRITE estão sendo feitos?
  • Arquivo poderia ser processado em memória?
  • Existe buffering?
  • Dataset está corretamente definido (BLKSIZE, BUFNO)?

💣 Regra brutal:

1 acesso a disco ≈ milhares de instruções CPU


🔢 4. TIPOS DE DADOS (COMP vs COMP-3)

🔍 Checklist:

  • Campos de cálculo estão como COMP?
  • Campos apenas armazenados estão como COMP-3?
  • Evita conversões constantes?

💡 Impacto real:

Loops matemáticos + tipo errado = CPU desnecessária


⚠️ 5. PARÂMETROS DE COMPILAÇÃO

🔍 Checklist:

  • SSRANGE está desligado em produção?
  • OPTIMIZE ativo?
  • NUMPROC, TRUNC corretos?

💣 Clássico erro:

👉 esquecer SSRANGE ligado = CPU queimando dinheiro


🧮 6. SORT (onde muita gente erra feio)

🔍 Checklist:

  • Está usando SORT externo em vez de COBOL?
  • Memória suficiente foi alocada?
  • Evita SORT desnecessário?

💡 Insight:

👉 SORT bem configurado = menos I/O + mais velocidade


🧠 7. DESIGN DO PROGRAMA

🔍 Checklist:

  • Programa faz mais do que deveria?
  • Existe lógica duplicada?
  • Pode dividir em etapas menores?

💣 Verdade dura:

Código grande demais = difícil de otimizar


🔥 8. JCL E EXECUÇÃO

🔍 Checklist:

  • REGION adequado?
  • MEMLIMIT ajustado?
  • Uso correto de GDG?
  • Evita datasets temporários desnecessários?

📊 9. MONITORAMENTO (quem não mede, perde dinheiro)

🔍 Checklist:

  • Analisou SMF / accounting?
  • Usou EXPLAIN no DB2?
  • Avaliou tempo CPU vs elapsed?

💡 Ferramentas típicas:

  • IBM Db2 EXPLAIN
  • SDSF
  • IBM z/OS metrics

🧪 10. MICRO-OTIMIZAÇÕES QUE VIRAM MILHARES 💸

  • Evitar MOVE desnecessário
  • Evitar DISPLAY em produção
  • Reduzir chamadas de programa
  • Evitar validações redundantes
  • Usar tabelas internas corretamente

🧨 CHECK FINAL (modo produção)

Se responder NÃO pra qualquer um abaixo, tem dinheiro sendo perdido:

  • Esse programa usa o mínimo de I/O possível?
  • O DB2 está usando índice corretamente?
  • O CPU está sendo usado de forma eficiente?
  • O tempo está dentro da janela batch?
  • O código foi pensado para performance ou só para funcionar?

🎯 FECHAMENTO ESTILO MAINFRAME ROOT

No mundo distribuído:
👉 você paga por servidor

No mainframe:
👉 você paga por cada instrução mal escrita









sexta-feira, 27 de fevereiro de 2026

O Caso dos MIPS que Cresceram Três Vezes Mais Rápido : Quando Dick Tracy entra no CPD para investigar o assassinato do COBOL

 

Bellacosa Mainframe e o caso do mips comilao

☕ Um Café no Bellacosa Mainframe

O Caso dos MIPS que Cresceram Três Vezes Mais Rápido

Quando Dick Tracy entra no CPD para investigar o assassinato do COBOL — e descobre que a vítima continua processando milhões de transações

A madrugada havia engolido a cidade.

Do lado de fora, a chuva desenhava linhas tortas nas janelas do edifício. Do lado de dentro, no vigésimo andar de um banco que jamais dormia, milhares de transações atravessavam silenciosamente um IBM Z.

Cartões eram autorizados.

Pagamentos eram compensados.

Contas eram atualizadas.

Fraudes eram avaliadas.

Arquivos eram classificados.

Jobs eram executados.

E, em uma sala iluminada apenas pelo brilho verde de um terminal 3270, um programador COBOL iniciante observava uma mensagem inquietante no monitor:

A INTELIGÊNCIA ARTIFICIAL VAI MATAR O COBOL.

Ele afastou as mãos do teclado.

Naquele instante, a porta se abriu.

Entrou um homem de sobretudo amarelo, chapéu inclinado sobre os olhos e um estranho relógio-comunicador preso ao pulso.

— Meu nome não importa — disse o detetive. — O que importa é descobrir quem inventou essa história.

Sobre a mesa havia três objetos:

  1. uma queda de 13% nas ações da IBM;

  2. uma ferramenta chamada watsonx Code Assistant for Z;

  3. uma declaração afirmando que clientes usuários da ferramenta estavam aumentando sua capacidade em MIPS três vezes mais rapidamente.

Parecia um caso simples.

Mas, no mainframe, como em toda boa investigação, o primeiro suspeito raramente é o verdadeiro culpado.


Capítulo 1 — A manchete que assustou Wall Street

Em fevereiro de 2026, a Anthropic anunciou recursos de inteligência artificial voltados à compreensão e modernização de sistemas escritos em COBOL. A reação do mercado foi imediata: as ações da IBM caíram aproximadamente 13,2% em um único pregão.

A interpretação de muitos investidores foi direta:

IA compreende COBOL
        ↓
IA converte COBOL
        ↓
Empresas abandonam o mainframe
        ↓
IBM perde clientes
        ↓
Fim do IBM Z

A Reuters registrou que a queda ocorreu após o mercado interpretar o anúncio como uma possível ameaça ao negócio de modernização de aplicações legadas e ao ecossistema de mainframe da IBM. (Reuters)

Para quem observa o mainframe apenas de fora, o raciocínio parece razoável.

Existem milhões de programas COBOL em bancos, seguradoras, governos, indústrias, empresas de telecomunicações e companhias aéreas. Se uma inteligência artificial puder converter tudo isso para Java, Python ou outra linguagem, então bastaria apertar um botão, esperar algumas horas e desligar o mainframe.

Caso encerrado.

O detetive, porém, olhou para a manchete e comentou:

— Rápido demais. Quando alguém apresenta uma migração corporativa como se fosse um MOVE, procure as provas que desapareceram.

Porque transformar um sistema corporativo não é isto:

MOVE PROGRAMA-COBOL TO PROGRAMA-JAVA.

A sintaxe pode ser convertida.

O significado do negócio, não necessariamente.


Capítulo 2 — O COBOL não trabalha sozinho

Um programador iniciante pode imaginar que uma aplicação COBOL seja apenas um arquivo-fonte contendo algumas centenas de linhas.

Em um exercício de treinamento, talvez seja assim:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CALCULA-SALDO.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       01 WS-SALDO        PIC S9(9)V99 COMP-3.
       01 WS-CREDITO      PIC S9(9)V99 COMP-3.
       01 WS-DEBITO       PIC S9(9)V99 COMP-3.

       PROCEDURE DIVISION.

           COMPUTE WS-SALDO =
                   WS-CREDITO - WS-DEBITO

           DISPLAY 'SALDO: ' WS-SALDO

           GOBACK.

Entretanto, uma aplicação real pode envolver:

Programa COBOL
   │
   ├── COPYBOOKS
   ├── arquivos sequenciais
   ├── VSAM
   ├── tabelas Db2
   ├── transações CICS
   ├── mensagens IBM MQ
   ├── chamadas IMS
   ├── serviços REST
   ├── programas Assembler
   ├── rotinas PL/I
   ├── JCL
   ├── PROCs catalogadas
   ├── Control-M, IWS ou outro scheduler
   ├── regras RACF
   └── procedimentos operacionais

O programa não vive isolado.

Ele pertence a uma teia operacional.

Considere um simples campo:

01 WS-TIPO-CLIENTE PIC X(01).

Uma ferramenta automática pode reconhecer que se trata de um caractere.

Mas o que significa A?

Pode significar:

  • cliente ativo;

  • cliente antigo;

  • cliente especial;

  • conta de alto risco;

  • agência;

  • pessoa autorizada;

  • produto categoria A.

E o valor B?

Talvez não exista em nenhum manual. Pode ter sido criado em 1997 para atender uma resolução temporária que, por alguma razão, tornou-se permanente.

É aí que começa o verdadeiro mistério.

Código não é apenas código. Código corporativo é história empresarial executável.


Capítulo 3 — O cadáver que nunca apareceu

O mercado procurava o corpo do COBOL.

Não encontrou.

Cinco meses depois da queda provocada pelo temor de que a IA aceleraria a saída do mainframe, a própria IBM voltou a mencionar um dado curioso: clientes que implantaram o watsonx Code Assistant for Z estariam aumentando sua capacidade em MIPS três vezes mais rapidamente do que clientes que não o utilizavam.

A afirmação apareceu nos comentários financeiros da IBM já no primeiro trimestre de 2026 e foi repetida posteriormente. Nos comentários preparados do primeiro trimestre, a empresa declarou que os clientes que haviam implantado a solução apresentavam crescimento de capacidade três vezes superior. (IBM)

O mesmo indicador foi novamente citado na conferência de resultados de julho de 2026, associado à expansão de cargas, modernização e adoção de inteligência artificial no IBM Z. (Roic AI)

O detetive colocou duas fotografias sobre a mesa.

Na primeira:

FEVEREIRO DE 2026

IA PARA COBOL
       ↓
MERCADO IMAGINA MIGRAÇÃO
       ↓
AÇÃO DA IBM CAI

Na segunda:

MESES DEPOIS

IA PARA COBOL
       ↓
APLICAÇÕES SE TORNAM MAIS FÁCEIS DE EVOLUIR
       ↓
NOVOS PROJETOS ENTRAM EM PRODUÇÃO
       ↓
CAPACIDADE CRESCE

— Temos uma contradição — disse o programador.

— Não — respondeu o detetive. — Temos uma hipótese errada.

A inteligência artificial pode ajudar uma empresa a migrar partes de uma aplicação. Mas também pode tornar o ambiente existente mais compreensível, produtivo e modernizável.

Nesse segundo cenário, a IA não esvazia o mainframe.

Ela o destrava.


Capítulo 4 — O que são MIPS?

Antes de prosseguir, precisamos examinar uma das principais pistas.

MIPS significa:

Millions of Instructions Per Second
Milhões de instruções por segundo.

Historicamente, o termo foi usado como uma forma de representar a capacidade de processamento de um computador. No universo mainframe, ele também se tornou uma maneira informal de falar sobre o tamanho da capacidade instalada ou consumida.

Entretanto, para um profissional iniciante, é importante não transformar MIPS em uma medida mágica.

MIPS não responde sozinho a perguntas como:

  • o sistema está eficiente?

  • o programa está bem escrito?

  • o custo está controlado?

  • o tempo de resposta está adequado?

  • a carga está sendo executada no processador correto?

  • o crescimento corresponde a novas receitas?

  • houve aumento de desperdício?

No licenciamento e no gerenciamento de capacidade do IBM Z também aparecem conceitos como:

  • MSU;

  • R4HA;

  • rolling four-hour average;

  • capacidade contratada;

  • subcapacity;

  • Tailored Fit Pricing;

  • zIIP eligibility;

  • consumo por workload;

  • métricas de WLM e SMF.

Portanto, quando a IBM afirma que determinado grupo está crescendo capacidade em MIPS três vezes mais rapidamente, a leitura correta não é:

“A IA deixou o processador três vezes mais veloz.”

A leitura mais razoável é:

“As organizações que usam a ferramenta estão adicionando ou consumindo capacidade em ritmo significativamente maior.”

A IA não colocou nitroglicerina na CPU.

Ela pode ter acelerado o ciclo de desenvolvimento, análise e modernização.


Capítulo 5 — Correlação não é confissão

Todo bom detetive precisa desconfiar das evidências fáceis.

A declaração dos três vezes mais MIPS vem da IBM, fabricante tanto do mainframe quanto da ferramenta de inteligência artificial. Portanto, deve ser tratada como um indicador comercial relevante, não como uma prova científica independente.

Existem várias explicações possíveis.

Hipótese A — A ferramenta provoca crescimento

O watsonx Code Assistant for Z reduz o esforço de compreensão e modernização. Com isso, mais projetos são concluídos e mais cargas entram em produção.

Hipótese B — Empresas que já cresciam compraram a ferramenta

Organizações que adotam soluções avançadas de IA talvez já estivessem ampliando seus ambientes, aumentando transações e modernizando aplicações.

Nesse caso, o crescimento não teria sido causado exclusivamente pela ferramenta.

Hipótese C — Os dois fatores trabalham juntos

Clientes em expansão adotam a IA; a IA aumenta a produtividade; a produtividade permite ainda mais expansão.

Provavelmente, a realidade contém uma combinação dessas hipóteses.

A estatística é interessante, mas não demonstra sozinha causalidade. Ela não nos informa, por exemplo:

  • quantos clientes foram analisados;

  • qual foi o período exato;

  • quais setores estavam representados;

  • quanto do crescimento veio de novas aplicações;

  • quanto veio de crescimento orgânico;

  • quanto foi capacidade geral ou consumo específico;

  • como os clientes foram comparados.

Por isso, não devemos transformar o “3x” em religião.

Mas também não devemos ignorá-lo.

Em uma investigação, uma pegada não condena o suspeito. Porém, mostra onde ele esteve.


Capítulo 6 — O que o watsonx Code Assistant for Z realmente faz?

Aqui está uma das maiores confusões sobre IA e COBOL.

Muita gente imagina que a ferramenta possua apenas uma função:

COBOL → Java

Na realidade, a proposta é muito mais ampla.

A IBM descreve o watsonx Code Assistant for Z como uma solução que apoia diferentes fases do ciclo de vida: descoberta e análise de aplicações, explicação de código, refatoração, geração, otimização, transformação para linguagens mais novas e testes. (IBM)

Entre suas possibilidades estão:

1. Descoberta da aplicação

Antes de modernizar, é necessário saber o que existe.

A ferramenta pode ajudar a identificar:

  • programas;

  • chamadas;

  • COPYBOOKS;

  • arquivos;

  • tabelas;

  • jobs;

  • transações;

  • dependências;

  • fluxos de dados.

É o equivalente digital a espalhar fotografias, endereços e linhas vermelhas sobre a parede da delegacia.

PGM-A
  │
  ├── CALL PGM-B
  │      └── DB2.TBCLIENTE
  │
  ├── READ ARQVSAM
  │
  └── CALL PGM-C
         └── MQ.PUT

Sem esse mapa, uma alteração aparentemente pequena pode atingir dezenas de componentes.

2. Explicação de código

O desenvolvedor pode pedir uma explicação de determinada rotina ou fluxo.

Isso é particularmente útil quando encontramos algo assim:

       IF WS-COD-OPERACAO = '17'
          AND WS-TIPO-CONTA NOT = '9'
          AND WS-FLAG-ESP = 'S'
              PERFORM 4300-TRATA-LIMITE
       ELSE
              PERFORM 4500-TRATA-EXCECAO
       END-IF.

A IA pode resumir a lógica:

Quando a operação for do tipo 17, a conta não pertencer à categoria 9 e estiver marcada como especial, o programa processa o limite; caso contrário, executa o tratamento de exceção.

Isso ajuda.

Mas ainda precisamos perguntar:

  • O que é operação 17?

  • Por que a conta 9 foi excluída?

  • Quem define o indicador especial?

  • Essa regra continua válida?

  • Existe uma exigência regulatória?

  • O comportamento está coberto por testes?

A IA explica o que está escrito.

O especialista descobre o que aquilo significa para a empresa.

3. Descoberta de regras de negócio

A interface Z Understand foi criada para ajudar arquitetos e desenvolvedores a analisar aplicações e descobrir regras de negócio usando uma abordagem conversacional. (IBM)

Essa capacidade pode revelar que uma regra importante está espalhada entre:

3 programas COBOL
2 COPYBOOKS
1 tabela Db2
1 parâmetro em arquivo
1 passo de JCL

É muito comum que a regra real não esteja concentrada em um único lugar.

4. Documentação

Sistemas antigos nem sempre possuem documentação atualizada.

Na verdade, existe uma piada clássica no CPD:

“A documentação está perfeita. Só não corresponde mais ao programa.”

A IA pode auxiliar na produção de:

  • resumo funcional;

  • descrição técnica;

  • fluxo de execução;

  • inventário de componentes;

  • explicação de parágrafos;

  • documentação de interfaces;

  • identificação de entradas e saídas.

Em um caso divulgado pela IBM, a NOSI utilizou o produto para obter visibilidade sobre código e integrações não documentadas e automatizar parte da documentação. A IBM afirma que houve redução de 94% no tempo necessário para analisar código COBOL considerado supérfluo naquele contexto específico. É um estudo de caso do fornecedor, portanto deve ser interpretado dentro dessas condições. (IBM)

5. Refatoração

Refatorar não significa necessariamente trocar de linguagem.

Pode significar:

  • dividir um programa gigantesco;

  • isolar uma regra de negócio;

  • reduzir duplicações;

  • remover código morto;

  • separar acesso a dados;

  • transformar uma função em serviço;

  • melhorar nomes;

  • facilitar testes;

  • preparar uma API.

Imagine um programa de 40 mil linhas chamado:

PGM0001

Ele calcula tarifas, consulta clientes, atualiza contas, gera relatórios e talvez prepare café.

A modernização pode começar separando responsabilidades:

PGM0001
   │
   ├── SERVICO-CLIENTE
   ├── SERVICO-TARIFA
   ├── SERVICO-LIMITE
   └── SERVICO-AUDITORIA

O programa continua em COBOL, mas torna-se mais modular.

6. Transformação seletiva

Em alguns casos, uma parte da aplicação pode ser transformada em Java ou outra tecnologia. A própria IBM apresenta a transformação como seletiva e incremental, não como uma conversão automática indiscriminada de todo o ambiente. (IBM Mediacenter)

Essa diferença é crucial.

Modernização séria não pergunta:

“Como removemos todo o COBOL?”

Ela pergunta:

“Qual componente deve permanecer, qual deve ser refatorado, qual deve ser exposto por API e qual realmente precisa ser substituído?”


Capítulo 7 — O teste é a testemunha principal

Suponha que a IA converta o seguinte cálculo:

COMPUTE WS-JUROS ROUNDED =
        WS-SALDO * WS-TAXA / 100.

A versão gerada em Java pode parecer correta.

Mas precisamos investigar:

  • o COBOL utiliza decimal empacotado?

  • qual é a precisão?

  • onde ocorre o arredondamento?

  • existe truncamento intermediário?

  • o sinal está preservado?

  • quais valores máximos são permitidos?

  • existe ON SIZE ERROR?

  • o Java está usando double ou BigDecimal?

  • como os valores nulos são tratados?

  • existe diferença na representação da data?

  • como ocorre o commit?

Uma tradução sintaticamente bonita pode produzir resultados financeiramente errados.

COBOL: R$ 1.245,37
JAVA:  R$ 1.245,36

Um centavo parece pouco.

Multiplique por dez milhões de operações.

Agora temos uma ocorrência para a divisão de crimes financeiros.

Pesquisas sobre transformação automática de COBOL mostram que a validação da equivalência funcional continua sendo um dos pontos mais difíceis. Um trabalho publicado por pesquisadores ligados ao desenvolvimento de testes para o watsonx Code Assistant for Z observa que código transformado por modelos de linguagem não deve ser considerado correto sem validação, tornando necessários testes de equivalência entre o COBOL original e o código gerado. (arXiv)

Outro relato anterior de migração real de COBOL para Java também identificou os testes como uma das partes mais problemáticas do projeto, além da transferência do conhecimento do domínio. (arXiv)

Essa é a pista decisiva:

Converter código é uma atividade. Demonstrar que o negócio continua correto é outra completamente diferente.


Capítulo 8 — Como a IA pode aumentar os MIPS?

Agora conseguimos reconstruir o crime.

Imagine um banco com 120 solicitações de modernização.

Sem assistência de IA, cada equipe gasta grande parte do tempo tentando localizar componentes, interpretar código e mapear impactos.

120 solicitações
      ↓
análise lenta
      ↓
fila crescente
      ↓
poucas entregas
      ↓
aplicação congelada

Com ferramentas de descoberta, explicação e documentação:

120 solicitações
      ↓
análise mais rápida
      ↓
melhor compreensão
      ↓
mais testes preparados
      ↓
mais entregas
      ↓
mais serviços em produção

Essas entregas podem gerar:

  • novas transações CICS;

  • consultas adicionais ao Db2;

  • mensagens MQ;

  • chamadas de APIs;

  • processamento antifraude;

  • integração com aplicativos móveis;

  • novos lotes noturnos;

  • uso de IA próximo aos dados;

  • novos produtos bancários;

  • expansão da base de clientes.

O consumo de capacidade cresce não porque a IA tornou um ADD mais pesado, mas porque a organização conseguiu colocar mais funcionalidades em operação.

A equação é esta:

MAIOR COMPREENSÃO DO LEGADO
             +
MENOR TEMPO DE MODERNIZAÇÃO
             +
MAIOR VELOCIDADE DE ENTREGA
             =
MAIS CARGAS EXECUTADAS

O aumento de MIPS pode ser consequência de crescimento do negócio, modernização bem-sucedida ou novas cargas.

Isso não significa necessariamente desperdício.

Também não significa automaticamente economia.

Significa que o ambiente está evoluindo.


Capítulo 9 — Um roteiro prático para o programador COBOL iniciante

O detetive abriu o caderno.

— Chega de teoria. Vamos ao procedimento operacional.

Passo 1 — Aprenda COBOL antes de delegá-lo à IA

Não use a inteligência artificial como substituta dos fundamentos.

Você precisa compreender:

  • divisões do programa;

  • níveis de dados;

  • cláusula PIC;

  • USAGE;

  • COMP, COMP-3 e binários;

  • MOVE;

  • COMPUTE;

  • IF;

  • EVALUATE;

  • PERFORM;

  • tabelas;

  • arquivos;

  • tratamento de erros;

  • chamadas;

  • SQL embutido;

  • conceitos de CICS.

Sem conhecimento básico, você não consegue avaliar a resposta recebida.

A IA pode afirmar algo incorreto com aparência impecável.

Passo 2 — Peça explicações pequenas

Em vez de entregar um programa inteiro com 30 mil linhas, selecione uma rotina.

Exemplo:

Explique o objetivo deste parágrafo COBOL.
Identifique entradas, saídas, condições e possíveis erros.
Não invente o significado comercial dos códigos.

Essa última frase é importante.

A ferramenta deve separar:

  • o que pode observar;

  • o que está inferindo;

  • o que não sabe.

Passo 3 — Confirme no código

Se a IA disser que um campo recebe dados de uma tabela Db2, procure:

EXEC SQL
   SELECT ...
END-EXEC

Se afirmar que um programa é chamado, procure:

CALL 'PROGRAMA'

ou uma chamada dinâmica:

CALL WS-NOME-PROGRAMA

A resposta da IA é uma pista.

O código é a cena do crime.

Passo 4 — Consulte especialistas

Converse com:

  • analista de negócios;

  • programador experiente;

  • DBA;

  • administrador CICS;

  • equipe de produção;

  • segurança;

  • operação;

  • suporte;

  • usuário-chave.

Um operador pode saber que determinado job não deve executar antes das 2 horas porque depende de um arquivo externo que chega por transmissão.

Essa regra talvez não esteja no COBOL.

Passo 5 — Gere documentação revisável

Produza um documento contendo:

Nome do programa
Objetivo
Entradas
Saídas
Arquivos
Tabelas
Chamadas
Regras identificadas
Pontos de dúvida
Riscos
Testes necessários

Marque claramente o que foi:

  • confirmado;

  • inferido;

  • informado por especialista;

  • ainda não investigado.

Passo 6 — Crie testes antes de alterar

Antes de modernizar, capture o comportamento atual.

Inclua:

  • caso normal;

  • valores mínimos;

  • valores máximos;

  • zero;

  • negativo;

  • campo vazio;

  • dado inválido;

  • data de virada de mês;

  • ano bissexto;

  • duplicidade;

  • falha de arquivo;

  • erro SQL;

  • rollback;

  • timeout.

O programa antigo pode conter comportamentos estranhos.

Alguns são defeitos.

Outros são regras do negócio que ninguém documentou.

Não corrija aquilo que você ainda não compreendeu.

Passo 7 — Faça mudanças incrementais

Evite a estratégia:

Converter tudo
Desligar tudo
Torcer

Prefira:

Descobrir
      ↓
Documentar
      ↓
Testar
      ↓
Isolar
      ↓
Refatorar
      ↓
Comparar
      ↓
Implantar gradualmente
      ↓
Monitorar

Em mainframe, coragem sem controle de mudança recebe outro nome:

incidente de produção.


Capítulo 10 — O que a IA não consegue fazer sozinha

Mesmo uma ferramenta avançada não possui automaticamente:

  • conhecimento completo do negócio;

  • responsabilidade jurídica;

  • autoridade para alterar produção;

  • compreensão de acordos informais;

  • conhecimento de exceções históricas;

  • garantia absoluta de equivalência;

  • contexto de todos os sistemas externos;

  • discernimento político da organização;

  • memória dos incidentes antigos;

  • responsabilidade pelo resultado.

Ela também pode:

  • interpretar incorretamente uma condição;

  • ignorar uma chamada dinâmica;

  • não perceber dados montados em tempo de execução;

  • confundir código morto com código raramente usado;

  • sugerir tipos inadequados;

  • gerar testes insuficientes;

  • explicar com confiança uma regra que não existe.

Portanto:

IA SEM ESPECIALISTA
       =
SUSPEITO INTERROGANDO A SI MESMO

A inteligência artificial deve atuar como assistente.

O profissional continua responsável pela decisão.


Capítulo 11 — Curiosidades encontradas no arquivo confidencial

Curiosidade 1 — COBOL não sobreviveu por acidente

Ele permanece porque milhões de regras empresariais foram codificadas, testadas e refinadas durante décadas.

Um programa pode parecer antigo, mas ter sobrevivido a:

  • mudanças de moeda;

  • fusões bancárias;

  • novas regulamentações;

  • crises econômicas;

  • mudanças tributárias;

  • milhões de execuções diárias.

Idade não é prova de qualidade.

Mas também não é prova de inutilidade.

Curiosidade 2 — “Legado” não significa “abandonado”

Legado é aquilo que foi herdado.

Uma aplicação pode ser antiga e continuar recebendo manutenção, integração, atualização de compilador, APIs e recursos de segurança.

O problema não é ser legado.

O problema é ser legado incompreendido.

Curiosidade 3 — A melhor modernização pode preservar o COBOL

Uma empresa pode:

  • manter o núcleo transacional em COBOL;

  • expor serviços por APIs;

  • integrar com aplicações móveis;

  • usar eventos e mensageria;

  • incorporar análises de IA;

  • modernizar a experiência do desenvolvedor;

  • automatizar testes e pipelines.

Modernização não exige obrigatoriamente remoção da linguagem.

Curiosidade 4 — Código morto pode estar apenas dormindo

Uma rotina pode não ser chamada há meses e ainda representar um processo anual, uma contingência ou um procedimento de recuperação.

Antes de removê-la, investigue:

  • scheduler;

  • JCL;

  • chamadas dinâmicas;

  • transações;

  • procedimentos manuais;

  • execução de fechamento anual;

  • planos de continuidade.

Como diria o detetive:

“Ausência de execução recente não é atestado de óbito.”


Easter egg — O comunicador de pulso

O jovem programador observou o relógio do detetive.

— Isso é uma espécie de smartphone?

— Smartphone? — respondeu ele. — Em 1946 eu já usava rádio de pulso nas histórias em quadrinhos.

O programador sorriu.

A ideia parecia futurista décadas antes de relógios inteligentes se tornarem produtos comuns.

O detetive então apontou para o terminal 3270:

— A tecnologia adora anunciar como novidade aquilo que alguém imaginou muito antes.

No canto da tela apareceu:

READY

Era o TSO aguardando o próximo comando.

Ou talvez fosse o próprio mainframe respondendo à notícia de sua morte.


Capítulo 12 — A sentença do caso

Depois de examinar programas, relatórios, declarações financeiras, diagramas e testes, o detetive reuniu todos na sala de operações.

— Já sei quem tentou matar o COBOL.

O programador arregalou os olhos.

— Foi a IA?

— Não.

— Java?

— Também não.

— A nuvem?

— Inocente neste caso.

O detetive escreveu no quadro:

CULPADO:

A SIMPLIFICAÇÃO EXCESSIVA

A narrativa de que uma IA converterá milhões de linhas COBOL e eliminará instantaneamente o mainframe ignora quase tudo o que torna uma aplicação corporativa complexa:

  • dados;

  • regras;

  • integrações;

  • segurança;

  • operação;

  • testes;

  • desempenho;

  • disponibilidade;

  • auditoria;

  • conhecimento humano;

  • risco empresarial.

A IA pode facilitar migrações? Sim.

Pode ajudar a transformar COBOL em Java? Sim.

Pode auxiliar na remoção de partes do legado? Sim.

Mas também pode:

  • documentar aplicações;

  • acelerar novos profissionais;

  • encontrar dependências;

  • preparar testes;

  • melhorar código COBOL;

  • isolar serviços;

  • aumentar a velocidade de entrega;

  • prolongar a vida econômica do IBM Z.

A tecnologia não possui uma única direção obrigatória.

Ela amplia a capacidade de quem a utiliza.


Conclusão — O COBOL não precisa de um coveiro; precisa de investigadores

A pergunta inicial era:

E se a inteligência artificial não fosse inimiga do COBOL, mas sua melhor aliada?

Depois de examinar as evidências, a resposta mais honesta é:

Ela pode ser uma grande aliada, desde que seja utilizada com conhecimento, governança, testes e responsabilidade humana.

O dado dos clientes que ampliaram MIPS três vezes mais rapidamente é uma declaração da própria IBM e não deve ser tratado como prova independente de causalidade. Ainda assim, ele oferece uma pista importante: aparentemente, pelo menos em parte do mercado, a adoção de IA para modernização não está sendo acompanhada por uma fuga imediata do mainframe.

Ao contrário, organizações capazes de compreender melhor suas aplicações podem encontrar novas razões para investir nelas.

O verdadeiro gargalo nunca foi simplesmente escrever COBOL.

O verdadeiro gargalo era entrar em um sistema com 30 ou 40 anos de história e responder com segurança:

O que este programa faz?

Quem o chama?

Quais dados ele altera?

Que regra empresarial está escondida aqui?

O que acontece se modificarmos esta condição?

Como provamos que nada foi quebrado?

Ferramentas como o watsonx Code Assistant for Z podem reduzir o tempo necessário para investigar essas perguntas. Elas não eliminam a necessidade do programador COBOL. Na realidade, tornam o profissional que conhece COBOL, negócio, testes, dados e arquitetura ainda mais valioso.

O iniciante não deve temer a IA.

Também não deve ajoelhar-se diante dela.

Deve aprender a interrogá-la.

Deve exigir evidências.

Deve comparar respostas com o código.

Deve verificar os dados.

Deve construir testes.

Deve conversar com especialistas.

Deve registrar as conclusões.

E, sobretudo, deve desconfiar de qualquer relatório que termine com:

RC=0000

sem explicar exatamente o que foi executado.

A chuva parou.

O detetive vestiu o sobretudo, ajustou o chapéu e caminhou em direção à porta.

Antes de partir, olhou uma última vez para o programador.

— Então o COBOL está salvo? — perguntou o jovem.

O detetive respondeu:

— Linguagens não são salvas por discursos. São salvas quando continuam resolvendo problemas.

No terminal, uma nova transação foi processada.

Depois outra.

Depois mais dez mil.

O relógio marcou duas da manhã.

O mainframe não estava morto.

Ele estava apenas começando o próximo batch.

sábado, 29 de novembro de 2025

💣🔥 10 MIL SEGUNDOS ROUBADOS POR DIA: O ASSASSINO SILENCIOSO DO SEU MAINFRAME

 

Bellacosa Mainframe falando sobre performance e custo de processamento

💣🔥 10 MIL SEGUNDOS ROUBADOS POR DIA: O ASSASSINO SILENCIOSO DO SEU MAINFRAME 🔥💣

Por que cada milissegundo no z/OS pode ser a diferença entre lucro e caos


🧠 Performance na veia, sem anestesia

No mundo do processamento de transações em alto volume, “rápido o suficiente” é uma mentira confortável.

Quando você roda milhões (ou bilhões) de transações por dia em um ambiente como z/OS, qualquer ineficiência — mesmo microscópica — vira um monstro financeiro.

Não importa se você escreve em COBOL, PL/I ou Java.
Se o seu código desperdiça tempo, o mainframe cobra — e cobra caro.

👉 Performance tuning não é “nice to have”.
👉 É sobrevivência corporativa.


⚙️ O Efeito Multiplicador (ou: como 10ms viram uma conta absurda)

Vamos ao ponto crítico:

Você otimiza um trecho e economiza 10 milissegundos.

Agora multiplica isso:

  • 1.000.000 execuções por dia
  • Resultado:
    👉 10.000 segundos economizados/dia (~2h46min de CPU)

Agora entra o mundo real:

  • Menos CPU → menos consumo de MSU
  • Menos MSU → menor custo de licenciamento
  • Menos contenção → mais throughput
  • Mais throughput → mais negócio rodando

💣 Resumo estilo Bellacosa:

“Você não economizou milissegundos… você salvou dinheiro REAL.”


🧨 Onde isso explode na prática

💥 Cenário clássico (batch assassino)

Um JOB COBOL com loop:

PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 1000000
EXEC SQL
SELECT * INTO :HOST-VAR
FROM CLIENTES
WHERE ID = :WS-I
END-EXEC
END-PERFORM

💀 Problemas:

  • SELECT * (crime hediondo)
  • 1 milhão de chamadas SQL
  • Possível table scan

🔧 Cirurgia de performance (passo a passo)

1️⃣ Reduzir dados (SQL cirúrgico)

SELECT NOME, STATUS
FROM CLIENTES
WHERE ID = ?

✔ Menos I/O
✔ Menos CPU
✔ Menos transporte de dados


2️⃣ Garantir acesso via índice

Use EXPLAIN no DB2:

  • Evite:
    • TABLE SCAN 😱
  • Busque:
    • INDEX SEEK 😎

3️⃣ Trocar loop por processamento em bloco

💡 Em vez de 1 milhão de SELECTs:

  • Use cursor
  • Ou fetch em lote

4️⃣ Buffer Pool tuning (ouro puro)

Se seu dado é acessado frequentemente:

  • Ajuste buffer pools
  • Evite I/O físico

💣 Easter Egg:

Em muitos ambientes, só ajustar buffer pool já deu ganho de 30%+ sem mexer em uma linha de código.


🚀 Quick Wins que parecem pequenos… mas NÃO são

🧩 1. SQL eficiente

  • Nunca use SELECT *
  • Sempre valide acesso via índice
  • Use EXPLAIN como religião

⚡ 2. Compiler moderno (COBOL v6+)

Se você ainda usa compilador antigo:

💀 Você está ignorando otimizações do hardware moderno

Ganhos comuns:

  • Melhor uso de CPU
  • Otimização automática de loops
  • Instruções mais eficientes

💾 3. Movimento de dados (I/O mata performance)

Regra de ouro:

“Disco é lento. Memória é rei.”

Faça:

  • Cache inteligente
  • Sort interno (quando adequado)
  • Evite leituras repetidas

🧠 Curiosidade de guerra (história real de bastidor)

Em um banco:

  • Um único SELECT mal indexado
  • Executado milhões de vezes/dia

Resultado após correção:

👉 Redução de MSU suficiente para economizar dezenas de milhares por mês

💣 O código tinha 10 anos em produção
💣 Ninguém questionava
💣 Até alguém olhar com lupa


🔍 Análise profunda (nível arquiteto)

Performance no mainframe não é só código.

É um ecossistema:

  • CPU (MIPS/MSU)
  • I/O (disco vs memória)
  • Locking (DB2)
  • Concorrência (CICS)
  • Batch window

👉 Uma otimização local pode gerar ganho global
👉 Ou causar efeito colateral (cuidado!)


🧨 Anti-patterns que destroem performance

  • SELECT *
  • Loop com SQL dentro
  • Falta de índice
  • Reprocessamento de dados
  • Leitura repetida de VSAM/DB2
  • Uso de compilador legado

🏆 O verdadeiro “modernizar o mainframe”

Não é só:

  • API
  • Cloud
  • Microservices

💣 Isso é maquiagem se o core estiver ineficiente

Modernizar de verdade é:

✔ Código otimizado
✔ Banco bem indexado
✔ CPU bem utilizada
✔ I/O sob controle


🔥 Conclusão (estilo Bellacosa raiz)

“Mainframe não é lento.
Código ruim é.”

Um sistema bem ajustado não é só estável —
👉 Ele vira vantagem competitiva.


🛠️ Provocação final

Qual foi aquele “fix ridiculamente simples” que você fez e:

  • Derrubou consumo de CPU?
  • Salvou batch window?
  • Ou evitou um caos em produção?

Se cavar… todo ambiente tem um “vilão escondido” esperando alguém enxergar.

E quando você acha…

💣 o ganho vem em escala industrial.


sexta-feira, 6 de dezembro de 2024

MIPS, MSU e o Mistério da Conta que Cresce Mais Rápido que o Banco

 


☕ Um Café no Bellacosa Mainframe

MIPS, MSU e o Mistério da Conta que Cresce Mais Rápido que o Banco

Ou: como um programador COBOL iniciante descobre que um PERFORM inocente pode terminar numa reunião com o CFO

Se você está começando em COBOL, provavelmente alguém já lhe contou a versão resumida da história.

O mainframe é grande.

O mainframe é caro.

MIPS é alguma coisa relacionada a capacidade.

MSU é alguma coisa relacionada a cobrança.

E se você mexer num programa errado, algum senhor de barba grisalha aparecerá atrás de você com uma planilha impressa e uma expressão que significa:

— Filho… o que exatamente você colocou em produção ontem?

Essa versão não está completamente errada.

Mas está longe de contar a história inteira.

Porque existe um detalhe fascinante no universo IBM Z: uma linha de código pode ser tecnicamente correta, produzir exatamente o resultado esperado, passar nos testes, não gerar ABEND, não provocar S0C7, não derrubar CICS, não assustar RACF e ainda assim ser economicamente horrível.

E é aqui que nosso jovem gafanhoto COBOL entra no dojo.

Imagine o Sr. Miyagi diante de um terminal 3270.

Ele olha para você e diz:

— Bellacosa-san… programa bom não é programa que apenas funciona.

Você pergunta:

— Então o que é?

Ele aponta para o SMF.

— Programa bom trabalha certo, trabalha rápido e não põe fogo na fatura.

A aula começa.



🥋 1. Primeiro golpe: MIPS não é MSU

Antes de continuar, precisamos desmontar uma confusão muito comum.

MIPS e MSU aparecem frequentemente na mesma conversa, mas não são a mesma coisa.

MIPS significa, historicamente:

Millions of Instructions Per Second.

É uma forma tradicional de falar de capacidade computacional.

Só que em mainframe moderno isso precisa ser tratado com cuidado, porque uma “instrução” não é simplesmente uma moedinha universal que vale a mesma coisa em qualquer processador, geração ou workload.

Duas máquinas podem ter características diferentes.

Dois workloads podem exercitar partes diferentes do processador.

Uma aplicação matemática pesada se comporta de uma forma.

Um workload de transações CICS de outra.

Um batch COBOL gigante de outra.

Por isso, MIPS virou muito mais uma linguagem de capacidade e planejamento — e também, em muitos casos, uma unidade comercial usada por fornecedores de software — do que uma medida física absoluta.

MSU significa:

Million Service Units.

E aqui entramos diretamente no mundo de pricing e capacidade do software IBM Z.

A primeira regra do dojo é esta:

MIPS é normalmente uma conversa sobre capacidade. MSU pode ser uma conversa sobre capacidade, licenciamento e custo.

Mas cuidado.

Não saia por aí tentando converter:

1 MSU = 7,3 MIPS

como se estivesse convertendo quilômetros em milhas.

Não funciona assim.

Não existe uma conversão universal simples.

Se algum colega lhe entregar uma tabela mágica dizendo:

MSU × número secreto = MIPS

faça aquilo que todo programador COBOL experiente faz diante de uma planilha duvidosa:

olhe desconfiado.

Depois peça a fonte.



🧠 2. CPU também não é custo

Aqui vem a segunda rasteira.

O iniciante pensa:

“Se meu programa gastou 10% mais CPU, a empresa pagará 10% mais.”

Não necessariamente.

Você pode gastar mais CPU sem aumentar determinada parte do custo.

Pode gastar a mesma CPU e aumentar a conta.

Pode diminuir CPU e ter pouco impacto financeiro.

Pode simplesmente mudar o horário de execução e alterar completamente o efeito econômico.

Você acabou de conhecer uma das verdades mais importantes do mainframe:

Performance e custo são parentes, mas não são gêmeos.

Isso explica um fenômeno aparentemente absurdo.

Um banco pode crescer 8% em volume de negócio.

O consumo pode crescer 15%.

E a conta de software subir 30%.

O CFO olha para aquilo e pergunta:

— Quem roubou os outros 22%?

Nesse momento todos olham para o mainframe.

O mainframe olha para o teto.

O COBOL olha para o Db2.

O Db2 olha para o batch.

E o batch diz:

— Eu só estava seguindo o JCL.



⏰ 3. Conheça o monstro chamado R4HA

Agora o Sr. Miyagi pega quatro pedras e coloca sobre a mesa.

Cada pedra representa uma hora.

Ele diz:

— Quatro horas. Observe.

Em vários modelos tradicionais de subcapacity pricing existe um conceito muito importante:

Rolling Four-Hour Average, ou R4HA.

Em português informal:

média móvel de quatro horas.

A ideia é simples de entender.

Imagine o consumo:

08h — 70 MSU
09h — 80 MSU
10h — 85 MSU
11h — 90 MSU

Existe uma média para essa janela.

Depois:

09h — 80
10h — 85
11h — 90
12h — 95

Nova janela.

Depois:

10h — 85
11h — 90
12h — 95
13h — 110

E assim por diante.

A janela vai deslizando.

Daí o nome rolling.

Agora vem a parte importante.

Em determinados modelos tradicionais de cobrança, o pico relevante dessa média móvel pode influenciar a capacidade faturável.

E então acontece a tragédia clássica.

Durante o dia:

CICS            70
Db2             40
APIs            20
online geral    15

Tudo administrável.

Às 17h alguém dispara:

fechamento
relatório regulatório
batch contábil
extração de dados
reconciliação
backup lógico

Todos juntos.

Porque sempre foi assim.

Desde 1998.

Ninguém sabe exatamente por quê.

Mas existe um comentário no JCL:

//* NAO ALTERAR - PRODUCAO

E isso, no mainframe, às vezes tem o mesmo poder psicológico de uma placa escrita:

TUMBA DO FARAÓ — NÃO ABRIR.

O consumo dispara.

O banco não ficou três vezes maior.

O mundo não começou a fazer três vezes mais PIX.

Apenas vários workloads decidiram executar simultaneamente.

E aquela concentração pode produzir impacto econômico.

Esse é um dos motivos pelos quais scheduling pode ser tão importante quanto programação.



🎯 4. Primeira lição de ouro: deslocar não é otimizar

Imagine um batch que consome:

60 CPU seconds

Você executa às 17h.

Depois desloca para 02h.

Ele continua consumindo:

60 CPU seconds

Tecnicamente você não otimizou o código.

Não reduziu nenhuma instrução.

Não mexeu no COBOL.

Não mudou Db2.

Não alterou VSAM.

Mas pode ter melhorado a economia do ambiente dependendo do modelo de cobrança.

Isso é lindo porque destrói uma ideia muito comum:

otimização = mexer no programa.

Não.

Você pode otimizar:

  • código;

  • SQL;

  • scheduling;

  • arquitetura;

  • classificação de workload;

  • uso de processadores especializados;

  • política de capacidade;

  • configuração;

  • contrato.

Programador COBOL iniciante costuma enxergar apenas o programa.

Engenheiro mainframe experiente começa a enxergar o sistema inteiro.

Essa é a evolução.



🧾 5. Antes de mexer em qualquer coisa, descubra o contrato

Aqui está uma frase que deveria ser impressa em canecas:

Antes de otimizar o mainframe, descubra como o mainframe está sendo cobrado.

Porque não existe “a conta do mainframe”.

Existem várias contas.

Você pode ter:

hardware
software IBM
software ISV
storage
suporte
DR
licenças por capacidade
licenças por consumo
licenças por MIPS
modelos tradicionais
Tailored Fit Pricing
contratos especiais

E cada parte pode reagir de maneira diferente.

Imagine que você passe uma semana reduzindo um batch em 20%.

Excelente.

Mas descubra depois que aquele componente específico não altera o custo relevante do contrato atual.

Você melhorou performance.

Ótimo.

Só não economizou o que esperava.

Agora faça o contrário.

Você move um workload, altera uma janela de execução e reduz um pico economicamente relevante.

Nenhuma linha COBOL mudou.

E o financeiro percebe o efeito.

Bem-vindo ao mainframe.



🐍 6. O segundo monstro está dentro do seu COBOL

Agora finalmente chegamos à parte que interessa diretamente ao jovem programador.

Imagine este código:

PERFORM UNTIL WS-EOF = 'Y'
    READ ARQUIVO-CLIENTES
    ...
END-PERFORM.

Em 2001 o arquivo tinha:

500.000 registros

Em 2026:

40.000.000 registros

O código não piorou.

Ele é exatamente o mesmo.

Mas o mundo ao redor cresceu.

Isso ensina uma coisa importante:

Código velho pode ficar economicamente pior sem mudar uma única linha.

Não porque o código “apodrece”.

Porque os dados crescem.

Agora imagine coisa pior.

Dentro do loop existe outro acesso:

PERFORM PARA-CADA-CLIENTE
    PERFORM PROCURA-MOVIMENTO
END-PERFORM.

E PROCURA-MOVIMENTO faz uma busca ineficiente.

Talvez você tenha construído algo próximo de:

para cada cliente
    procurar em muitos registros

Com base pequena, aceitável.

Com base enorme, desastre.

Essa é a diferença entre:

funciona

e

escala.

Sr. Miyagi diria:

— Programa que vence teste com mil registros ainda não venceu produção com quarenta milhões.



🗄️ 7. Db2: onde uma linha aparentemente inocente pode virar um incêndio

Agora chegamos ao dojo subterrâneo.

SQL.

Um SQL pode continuar retornando exatamente os mesmos dados, mas consumir muito mais recursos.

Imagine:

SELECT NOME,
       SALDO
FROM CLIENTE
WHERE CPF = :WS-CPF

Ontem o Db2 usava um índice maravilhoso.

Hoje, por alguma mudança de estatística, cardinalidade, distribuição, acesso, manutenção ou desenho, o access path mudou.

Agora ele faz algo muito mais caro.

Uma consulta que custava pouco passa a custar cinco vezes mais CPU.

Uma execução?

Talvez ninguém perceba.

Agora multiplique por:

3.000.000 execuções por dia

A diferença aparece.

E muitas vezes ninguém associa a mudança imediatamente ao custo.

O programa entrou em produção em março.

A conta assustou em junho.

Finanças pergunta em agosto.

Desenvolvimento diz:

— Mas essa alteração foi meses atrás.

Exatamente.

O mainframe tem excelente memória.

Inclusive para as coisas que você gostaria que ele esquecesse.



📚 8. SMF: o livro-caixa secreto do reino

Se você é iniciante, guarde essa sigla:

SMF — System Management Facilities.

Não precisa decorar todos os record types agora.

Mas entenda o conceito.

O z/OS registra uma quantidade fantástica de informações sobre o que acontece no sistema.

Jobs.

Steps.

CPU.

I/O.

Workloads.

Subsistemas.

Consumo.

Horários.

Recursos.

Imagine o SMF como um gigantesco livro de bordo.

O CFO pergunta:

— Quem gastou?

Você não deveria responder:

— Produção.

Isso é o equivalente tecnológico de dizer:

— Foi alguém.

O objetivo é chegar perto disto:

LPAR PROD1
↓
service class X
↓
JOB ABC123
↓
STEP040
↓
programa COB987
↓
package Db2 XYZ
↓
SQL statement específico
↓
execuções aumentaram 300%

Agora temos investigação.

Não opinião.

O dashboard diz:

CPU aumentou.

O SMF ajuda a perguntar:

quem
quando
quanto
onde
por quê

Um mostra a fumaça.

O outro ajuda a encontrar o fósforo.


📈 9. RMF: enxergando a máquina respirando

Outro amigo importante:

RMF — Resource Measurement Facility.

Enquanto SMF oferece registros fundamentais para análise, RMF ajuda profundamente na observação e análise de recursos e performance do ambiente.

Pense assim:

SMF é o livro contábil.

RMF é o estetoscópio.

Você observa:

CPU
LPAR
workload
storage
I/O
delay
utilização

E começa a compreender se o sistema está saudável, pressionado, desequilibrado ou simplesmente executando o que deveria.




🧙 10. WLM: o mestre de cerimônias

Agora entra outro personagem:

WLM — Workload Manager.

O WLM é uma das ideias mais bonitas do z/OS.

Ele não pensa simplesmente:

“todo processo merece CPU igual.”

Ele trabalha com objetivos, importância e classes de serviço.

Porque no mundo real:

transação de cliente

não tem necessariamente a mesma prioridade que:

relatório interno

Um batch pode esperar.

Uma transação bancária olhando para um cliente na tela talvez não possa.

Então WLM ajuda o sistema a responder:

  • qual workload importa mais?

  • qual objetivo precisa ser atendido?

  • quem está atrasado?

  • como distribuir recursos?

  • existe pressão?

  • existem políticas de capacidade?

O iniciante vê CPU.

O WLM vê serviço.

Isso é uma mudança mental importantíssima.



🚀 11. zIIP: nem todo ciclo custa igual

Outro easter egg fundamental para quem está entrando no mundo IBM Z:

zIIP.

Certos tipos de trabalho podem ser elegíveis para execução em processadores especializados.

Isso muda completamente uma análise econômica.

Imagine:

Mês A
CP   = 70
zIIP = 40

Depois:

Mês B
CP   = 90
zIIP = 42

Você pergunta:

— Por que CP cresceu tanto?

Talvez o volume tenha mudado.

Talvez a arquitetura tenha mudado.

Talvez workload antes elegível esteja se comportando de outra maneira.

Talvez exista spillover.

Talvez haja configuração ou concorrência envolvida.

A pergunta correta deixa de ser:

“Quanto CPU usamos?”

e passa a ser:

“Onde o trabalho está sendo executado e qual é a implicação econômica disso?”

Isso é pensamento mainframe maduro.



📱 12. O aplicativo móvel que transformou uma transação em dez

Agora vem uma armadilha moderna.

O banco diz:

— Crescemos apenas 8% em clientes.

Então alguém conclui:

— CPU deveria crescer 8%.

Errado.

Imagine o aplicativo antigo.

Cliente abre o sistema.

Faz:

login
consulta saldo
logout

Três eventos relevantes.

Agora o aplicativo novo abre e dispara silenciosamente:

saldo
limite
PIX
cartões
investimentos
ofertas
notificações
score
extrato
financiamentos

O usuário fez uma ação.

O backend recebeu dez.

O negócio cresceu 8%.

A atividade computacional talvez tenha crescido 40%.

Isso é o que podemos chamar de:

amplificação digital.

A aplicação moderna fica mais bonita.

A UX fica mais rica.

O cliente vê tudo numa tela.

O mainframe recebe uma pequena chuva de APIs.

E depois alguém pergunta por que aumentou o consumo.



🧮 13. Pare de contar apenas transações

Outra lição.

Nem toda transação vale a mesma coisa.

Imagine:

consulta simples VSAM

e:

PIX com antifraude, auditoria, MQ, Db2 e logging

Ambas podem aparecer em algum relatório como:

1 transação

Mas economicamente são bichos diferentes.

Por isso uma organização madura começa a medir:

CPU por 1.000 transações
CPU por PIX
CPU por consulta
CPU por cliente ativo
Db2 CPU por chamada
batch CPU por conta

Essa ideia é poderosa porque aproxima TI do negócio.

Agora o CFO consegue entender.

Em vez de:

— Gastamos 140 MSU.

Você diz:

— O custo computacional por mil transações caiu 6%.

Isso é música para finanças.


💰 14. Nasce o Mainframe Unit Economics

Aqui está uma forma muito boa de pensar.

Crie indicadores como:

CPU segundos / 1.000 transações
MSU / milhão de operações
custo / cliente ativo
custo / PIX
custo / conta processada

Agora compare ao longo do tempo:

          JAN   FEV   MAR   ABR

Volume    100   103   106   108
CPU       100   104   116   130
CPU/txn   100   101   109   120

Veja março.

Alguma coisa aconteceu.

Pergunta Mr. Miyagi:

— O que mudou entre fevereiro e março?

Essa pergunta talvez encontre:

  • novo release;

  • novo relatório;

  • access path Db2 ruim;

  • logging excessivo;

  • API nova;

  • antifraude;

  • rotina duplicada;

  • batch movido;

  • volume inesperado;

  • reprocessamento.

Agora você tem um método investigativo.




📉 15. Custo médio é bom. Custo marginal é melhor.

Existe uma pergunta ainda mais sofisticada:

Quanto custa processar o próximo crescimento do negócio?

Matematicamente:

Δ custo
───────
Δ volume

Imagine:

negócio +10%
consumo +10%

Normal.

Agora:

negócio +10%
consumo +25%

Alerta.

Por outro lado:

negócio +10%
consumo +4%

Talvez você esteja ganhando escala.

Isso é lindo porque destrói outro mito:

“Conta maior significa sistema pior.”

Não.

Você pode gastar mais dinheiro e ficar mais eficiente.

Exemplo:

transações +20%
custo +5%

A conta aumentou.

Mas o custo por transação caiu brutalmente.

O CFO precisa enxergar isso.



⚖️ 16. Nem todo consumo é desperdício

Essa talvez seja uma das lições mais importantes deste artigo.

Existem pelo menos três categorias de crescimento.

1. Consumo necessário

O negócio cresceu.

Mais clientes.

Mais transações.

Mais contas.

Mais pagamentos.

Naturalmente o mainframe trabalha mais.

2. Consumo deliberado

Você adicionou:

antifraude
criptografia
auditoria
compliance
observabilidade
novas funcionalidades

Tudo isso custa CPU.

Mas gera valor.

3. Consumo evitável

Aqui mora o desperdício:

loop desnecessário
SQL ruim
leitura redundante
job duplicado
reprocessamento
programa órfão
batch mal agendado
consulta desnecessária

A missão não é:

reduzir CPU a qualquer custo.

A missão é:

reduzir consumo que não produz valor.

Porque você também pode destruir performance tentando economizar demais.

O sistema economiza 3%.

O cliente passa a esperar.

O SLA vai embora.

Parabéns.

Você economizou CPU e perdeu negócio.

Mr. Miyagi bate com a régua no terminal.

— Não economizar assim.



🧟 17. O job zumbi

Todo ambiente antigo tem algum.

Ninguém sabe quem criou.

Ninguém sabe quem usa.

Executa todo domingo às 03h17.

Nome:

BCHX8712

Comentário:

//* PROCESSO ESPECIAL

Especial para quem?

Mistério.

Tentaram desligar uma vez em 2007.

Alguém telefonou reclamando.

Desde então ninguém mexe.

Esse é o famoso:

job zumbi.

Ambientes mainframe grandes acumulam processos por décadas.

Migrações.

Fusões.

Mudanças regulatórias.

Aplicações substituídas.

Relatórios que ninguém lê.

Interfaces abandonadas.

Por isso um dos melhores projetos de otimização pode não envolver performance.

Pode envolver coragem.

Pergunta:

Quem consome a saída deste job?

Se ninguém souber, não desligue no impulso.

Investigue.

Rastreie.

Valide dependências.

Teste.

Desative controladamente.

Mainframe não gosta de heroísmo sem evidência.



🔍 18. Passo a passo para o jovem programador

Se você está começando agora, siga esta sequência.

Passo 1 — descubra o que seu programa realmente faz

Não leia apenas COBOL.

Entenda:

entrada
processamento
arquivos
Db2
VSAM
MQ
CICS
chamadas externas
saída

Passo 2 — descubra o volume

Pergunte:

Quantas execuções?
Quantos registros?
Quantas transações?
Qual crescimento mensal?

Passo 3 — observe o custo por unidade

Não pense apenas:

programa gastou 200 CPU seconds

Pergunte:

200 CPU seconds para quantos registros?

Passo 4 — procure regressões

Compare versões.

Antes:

10 ms por transação

Depois:

18 ms

Alguma coisa mudou.

Passo 5 — veja SQL

Se usa Db2:

qual access path?
qual frequência?
quantas rows examinadas?
quantas retornadas?

Passo 6 — olhe scheduling

Seu job executa quando?

Ele compete com quem?

Existe motivo?

Passo 7 — pergunte sobre WLM

Qual service class?

Qual prioridade?

Qual objetivo?

Passo 8 — correlacione com negócio

Essa aplicação atende:

PIX?
cartões?
clientes?
folha?
fraude?

Passo 9 — documente

Porque seis meses depois alguém perguntará.

E talvez esse alguém seja você.




🕵️ 19. Um exemplo completo

O CFO diz:

— Conta de mainframe subiu 30%.

O time investiga.

Descobre:

crescimento normal do negócio      +8%
novo antifraude                    +5%
nova observabilidade               +3%
SQL regressivo                     +7%
batch concentrado em pico          +4%
processo duplicado                 +2%
outros                             +1%
                                  ----
                                   30%

Agora a conversa mudou.

Dos 30%:

16% = crescimento + capacidade nova
13% = problemas investigáveis/otimizáveis
1%  = ainda desconhecido

Isso é infinitamente melhor do que:

— Mainframe ficou caro.

Agora temos ações.

SQL regressivo?

Corrigir.

Batch?

Reagendar se fizer sentido no modelo econômico.

Processo duplicado?

Eliminar.

Antifraude?

Manter.

Porque aquilo protege o banco.




🧩 20. Easter egg para quem chegou até aqui

Existe uma velha tendência em computação de tentar transformar tudo numa métrica simples.

MIPS.

CPU.

TPS.

latência.

custo.

Mas sistemas complexos odeiam métricas isoladas.

É quase um princípio de Douglas Adams aplicado ao datacenter:

A resposta pode ser 42. O problema é descobrir qual era a pergunta.

Se alguém chegar na reunião dizendo:

— O sistema usa 12.000 MIPS.

A pergunta correta é:

— E daí?

12.000 MIPS pode ser excelente.

Pode ser horrível.

Pode ser barato.

Pode ser caro.

Pode estar processando milhões de transações com eficiência fantástica.

Ou pode estar queimando CPU lendo o mesmo arquivo quinze vezes.

A métrica sem contexto é apenas um número muito bem vestido.



🥋 21. A última lição do dojo

O jovem programador começa querendo aprender:

MOVE
PERFORM
IF
EVALUATE
READ
WRITE
CALL

Depois aprende:

JCL
VSAM
Db2
CICS

Depois entende:

SMF
RMF
WLM
R4HA
zIIP
pricing
capacity

E então acontece uma mudança interessante.

Ele deixa de pensar:

“Meu programa funciona?”

E começa a perguntar:

“Meu programa funciona bem dentro do sistema?”

Depois:

“Meu sistema usa recursos de maneira eficiente?”

E finalmente:

“O custo computacional produzido por esse workload faz sentido para o negócio?”

Nesse ponto você deixou de ser apenas programador COBOL.

Começou a pensar como engenheiro de plataforma.



☕ Epílogo — O CFO, o COBOL e a conta de luz

Voltemos à primeira cena.

Sala de reunião.

CFO na ponta da mesa.

Gráfico na tela.

Ele pergunta:

— Por que o custo do mainframe subiu 30% se o negócio cresceu 8%?

Silêncio.

Antigamente alguém responderia:

— Houve aumento de capacidade.

Hoje uma equipe madura deveria responder:

— Dos 30 pontos, oito correspondem ao crescimento do negócio. Cinco vieram do antifraude novo. Três da observabilidade. Sete são uma regressão Db2 já identificada. Quatro vieram de concentração de workloads numa janela economicamente desfavorável. Dois correspondem a processos redundantes em eliminação. Um ainda estamos investigando.

Agora o CFO entende.

E o mais importante:

confia.

Porque ninguém está defendendo mainframe com religião.

Está defendendo com dados.

Essa é talvez a grande diferença entre o velho discurso:

“Mainframe é caro, mas confiável.”

e o discurso moderno:

“Eu sei exatamente quanto custa, quem consome, por que consome e o que recebemos em troca.”

No fundo, MIPS e MSU não são apenas unidades técnicas.

São pistas.

SMF é a cena do crime.

RMF é o perito.

WLM organiza o trânsito.

Db2 às vezes é o suspeito.

O batch jura inocência.

O COBOL diz que só cumpriu ordens.

O CFO quer saber quem vai pagar.

E em algum canto escuro do datacenter existe um job de 1997 executando toda terça-feira às 02h13 porque alguém escreveu no JCL:

//* NAO REMOVER

Ninguém sabe quem.

Ninguém sabe por quê.

Mas ele continua lá.

Consumindo CPU.

Silenciosamente.

À espera de um jovem gafanhoto suficientemente curioso para perguntar:

— Mestre… isto ainda serve para alguma coisa?

E o Sr. Miyagi do mainframe sorri.

Porque finalmente você fez a pergunta certa.



https://eljefemidnightlunch.blogspot.com/2026/02/o-caso-dos-mips-que-cresceram-tres.html

https://eljefemidnightlunch.blogspot.com/2026/08/o-leilao-reverso-do-conhecimento-quando.html

https://eljefemidnightlunch.blogspot.com/2026/05/o-segredo-sujo-da-performance-no.html

https://eljefemidnightlunch.blogspot.com/2026/05/o-mainframe-nao-esta-lento-seu-sql-e.html

https://eljefemidnightlunch.blogspot.com/2026/03/bellacosa-mainframe-simulator-mainframe.html

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...