Translate

quinta-feira, 13 de setembro de 2018

O Caso dos Oito Segundos Perdidos : Quando um Programador COBOL Descobre que o Verdadeiro Vilão Nunca Foi o CICS...

 

Bellacosa Mainframe e o caso dos 8 segundos perdidos

☕ Um Café no Bellacosa Mainframe

O Caso dos Oito Segundos Perdidos

Quando um Programador COBOL Descobre que o Verdadeiro Vilão Nunca Foi o CICS... Mas um Gargalo Escondido nas Sombras

"Naquela manhã chuvosa, os operadores juravam que o CICS estava lento. O gerente culpava o banco de dados. O DBA apontava para a CPU. O pessoal de infraestrutura acusava o storage. O Sysprog olhava silenciosamente para os gráficos do RMF. E, em algum lugar escondido entre milhões de linhas de COBOL, um único SQL aguardava para ser descoberto..."


Prólogo – O Mistério da Lentidão

Se você perguntar para um programador COBOL iniciante:

"O que faz um sistema ficar lento?"

Provavelmente ouvirá:

"A CPU está cheia."

É uma resposta compreensível.

Mas quase sempre...

Está errada.

Uma das maiores lições que um profissional IBM Mainframe aprende ao longo da carreira é que lentidão é um sintoma, não um diagnóstico.

Performance Tuning é praticamente um trabalho de detetive.

Cada métrica é uma pista.

Cada relatório é um depoimento.

Cada gráfico conta uma parte da história.

E, como todo bom romance policial dos anos 1950, o culpado quase nunca é quem parecia ser no primeiro capítulo.

Hoje vamos abrir os arquivos confidenciais do CPD para investigar um dos casos mais fascinantes do universo CICS.

Prepare seu bloco de notas.

A investigação começou.


Capítulo 1 – O CICS é uma Cidade que Nunca Dorme

Imagine uma enorme cidade.

Milhões de pessoas entram e saem todos os dias.

Existem:

  • bancos

  • hospitais

  • aeroportos

  • repartições públicas

  • supermercados

Tudo funcionando ao mesmo tempo.

Essa cidade chama-se CICS.

Cada cidadão é uma transação.

Cada rua representa um recurso do sistema.

Cada cruzamento é um ponto onde pode surgir congestionamento.

Enquanto você dorme...

Essa cidade continua trabalhando.

Ela processa:

  • PIX

  • cartões

  • seguros

  • folha de pagamento

  • bolsas de valores

  • companhias aéreas

  • telecomunicações

Em alguns ambientes...

Mais de 100 milhões de transações por dia.

E tudo isso precisa acontecer em poucos milissegundos.


Capítulo 2 – O Relógio Nunca Mente

O primeiro suspeito sempre atende pelo nome de:

Response Time

Ele representa o tempo entre:

ENTER

↓

Processamento

↓

Resposta

Parece simples.

Mas esse número esconde dezenas de acontecimentos.

Enquanto o usuário observa apenas uma tela parada...

O CICS está fazendo centenas de operações invisíveis.


O Iceberg da Performance

O usuário vê apenas isto:

Resposta em 8 segundos

O analista enxerga:

CPU

↓

Dispatcher

↓

Storage

↓

Task

↓

DB2

↓

VSAM

↓

MQ

↓

TCP/IP

↓

Locks

↓

I/O

↓

Rede

↓

WLM

↓

Cache

↓

Buffers

↓

SMF

↓

RMF

Cada bloco acrescenta alguns milissegundos.

Somados...

Transformam-se em segundos.


Capítulo 3 – O Detetive Nunca Acusa Sem Evidências

Um erro clássico dos iniciantes é fazer isto:

"O sistema está lento."

Então começam a alterar parâmetros.

Isso é como trocar o motor do carro porque um pneu furou.

Os profissionais experientes seguem uma regra sagrada:

Nunca modifique aquilo que você ainda não mediu.

Primeiro mede.

Depois entende.

Só então modifica.


A Regra de Ouro do Performance Tuning

Existe um mantra repetido por analistas veteranos:

Measure

↓

Analyze

↓

Identify

↓

Optimize

↓

Validate

Ou em português:

Medir

↓

Analisar

↓

Identificar

↓

Otimizar

↓

Validar

Perceba que "otimizar" aparece apenas no quarto passo.

Muitos iniciantes começam justamente por ele.


Capítulo 4 – O Julgamento da CPU

Sempre que algo fica lento...

Alguém diz:

"A CPU está em 95%."

Fim da discussão.

Mas espere.

CPU alta significa culpa?

Não.

CPU alta pode ser consequência.

Imagine um caixa eletrônico tentando consultar um cliente.

O SQL demora.

Enquanto espera...

A CPU continua trabalhando em outras tarefas.

Quando finalmente recebe os dados...

Executa um enorme processamento COBOL.

Resultado:

CPU sobe.

Mas ela não foi o problema inicial.

Ela apenas trabalhou mais porque outra peça atrasou todo o restante.


Curiosidade Noir

Os analistas antigos costumavam dizer:

"CPU é como febre. Ela mostra que existe um problema, mas quase nunca diz qual."


Capítulo 5 – O Sombrio Reino do Db2

Se existe um lugar onde muitos mistérios começam...

É o banco de dados.

Um SQL aparentemente inocente pode esconder um verdadeiro desastre.

Veja:

SELECT *
FROM CLIENTES

Parece simples.

Mas imagine uma tabela com:

120 milhões de registros.

Sem índice.

O Db2 inicia um Table Space Scan.

Milhões de páginas são lidas.

Buffers começam a encher.

Discos trabalham.

CPU cresce.

O usuário espera.

E o gerente conclui:

"CICS está lento."

Na verdade...

Era apenas um SQL mal escrito.


O EXPLAIN é a Lupa de Sherlock Holmes

Nenhum DBA sério trabalha sem EXPLAIN.

Ele responde perguntas como:

  • Qual índice será utilizado?

  • Haverá Table Scan?

  • Quantos registros serão lidos?

  • Qual Join será escolhido?

  • Quantas páginas serão acessadas?

É literalmente a autópsia do SQL antes da execução.


Easter Egg nº 1

Se você encontrar um programa COBOL com:

SELECT *

Sem WHERE...

Você acabou de descobrir o equivalente mainframe de deixar a porta da geladeira aberta o dia inteiro.


Capítulo 6 – Os Arquivos VSAM Também Contam Segredos

Muito antes do Db2 dominar os grandes sistemas...

O VSAM já guardava milhões de registros.

E continua fazendo isso.

Os tipos mais comuns:

  • KSDS

  • ESDS

  • RRDS

  • LDS

Cada um possui comportamento diferente.

Um KSDS muito fragmentado pode sofrer:

  • CI Split

  • CA Split

Resultado?

Mais I/O.

Mais espera.

Mais tempo de resposta.


O Mistério dos Buffers

Imagine procurar um livro.

Você pode:

Ir até a biblioteca toda vez.

Ou deixá-lo sobre a mesa.

Os buffers fazem exatamente isso.

Quanto melhores os buffers...

Menos viagens ao disco.

Mais velocidade.


Capítulo 7 – A Memória Invisível

Poucos iniciantes estudam Storage.

Mas deveriam.

No CICS existem áreas famosas:

  • DSA

  • EDSA

  • CDSA

  • UDSA

  • SDSA

Quando alguma delas fica cheia...

Começam acontecimentos estranhos.

Transações recusadas.

Lentidão.

Abends.

Filas.

Até surgir uma sigla temida:

SOS

Short On Storage.

Veteranos arrepiam só de ouvir esse nome.


Easter Egg nº 2

No universo CICS, "SOS" não significa "Save Our Souls".

Significa:

"Prepare o café... hoje ninguém vai embora cedo."


Capítulo 8 – O Engarrafamento Invisível

Nem toda lentidão significa problema técnico.

Imagine um banco às 10 horas da manhã.

Milhares de clientes.

Todos chegam ao mesmo tempo.

Os caixas são limitados.

Forma-se uma fila.

No CICS acontece igual.

500 usuários

↓

1000 transações

↓

200 Tasks disponíveis

As demais esperam.

Não existe erro.

Existe congestionamento.

Esse fenômeno chama-se:

Transaction Queuing.


Capítulo 9 – Throughput: O Herói Esquecido

Todo mundo fala em velocidade.

Poucos falam em capacidade.

Imagine dois carros.

Primeiro:

200 km/h

Transporta 2 pessoas.

Segundo:

80 km/h

Transporta 70 passageiros.

Qual leva mais gente?

O segundo.

O mesmo vale para o Mainframe.

Às vezes uma transação demora um pouco mais.

Mas o sistema atende milhares simultaneamente.

Isso é Throughput.


Capítulo 10 – Os Relatórios Nunca Mentem

Quando surge um incidente...

Entram em cena os investigadores.

Cada ferramenta possui uma especialidade.

SMF

É o diário secreto do z/OS.

Tudo fica registrado.

Cada evento.

Cada consumo.

Cada erro.


RMF

É o cardiologista do sistema.

Mede:

CPU

Disco

Canal

Memória

LPAR

WLM


CICS Performance Analyzer

Mostra tendências.

Permite descobrir:

Quando começou a degradação?

Ela piora em determinados horários?

Existe sazonalidade?


Db2 Performance Monitor

Mostra:

Locks.

Buffer Pools.

Getpages.

Elapsed.

CPU.

SQL.

É praticamente uma câmera de segurança do banco de dados.


O Método CSI Mainframe

Imagine uma investigação.

A transação SALD demora oito segundos.

O analista segue o roteiro:

Cena do crime.

Coleta evidências.

Analisa SMF.

Consulta RMF.

Verifica WLM.

Observa CPU.

Analisa SQL.

Examina VSAM.

Confere Storage.

Encontra o gargalo.

Nenhuma hipótese é descartada sem provas.


Curiosidade Histórica

Na década de 1980 muitos problemas eram resolvidos observando apenas consoles, dumps impressos e enormes relatórios em papel contínuo.

Era comum encontrar analistas caminhando pelos corredores carregando pilhas de listagens maiores do que uma mesa de escritório.

Hoje usamos dashboards sofisticados.

Mas o raciocínio investigativo continua exatamente o mesmo.


Passo a Passo para Investigar uma Transação Lenta

Se amanhã você entrar em uma equipe de suporte CICS e ouvir:

"A transação CONSULTA demorou oito segundos."

Siga este roteiro:

  1. Descubra quando o problema começou.

  2. Compare com dias anteriores.

  3. Consulte os relatórios SMF.

  4. Verifique o RMF.

  5. Analise a utilização da CPU.

  6. Verifique o WLM.

  7. Procure espera por recursos.

  8. Analise SQL com EXPLAIN.

  9. Verifique buffers do Db2.

  10. Analise VSAM.

  11. Procure contenção.

  12. Verifique Storage.

  13. Confira MXT e filas.

  14. Compare com a baseline.

  15. Só depois faça alterações.

Essa sequência evita mudanças precipitadas e aumenta muito a chance de encontrar a causa raiz.


Dicas para um Programador COBOL Iniciante

  • Aprenda SQL antes de tentar otimizar COBOL.

  • Entenda o funcionamento de índices Db2.

  • Estude VSAM e seus padrões de acesso.

  • Conheça as principais áreas de storage do CICS.

  • Aprenda a ler relatórios SMF e RMF.

  • Familiarize-se com conceitos de WLM e Dispatching.

  • Nunca presuma que CPU alta é a causa do problema.

  • Documente cada alteração realizada em produção.

  • Crie o hábito de comparar métricas antes e depois de qualquer mudança.

  • Pense sempre no sistema como um conjunto integrado, e não como componentes isolados.


Curiosidades que Impressionam em Entrevistas

  • Uma redução de apenas 5 milissegundos em uma transação executada milhões de vezes ao dia pode economizar horas de CPU ao longo do mês.

  • Em muitos ambientes corporativos, mais de 90% das reclamações de lentidão acabam tendo origem fora do código COBOL, envolvendo SQL, configuração, infraestrutura ou contenção de recursos.

  • O CICS foi projetado para operar continuamente, processando cargas enormes com alta disponibilidade, o que explica sua presença em bancos, seguradoras, companhias aéreas e órgãos governamentais há décadas.


O Último Suspeito

Quando toda investigação termina...

Os novatos perguntam:

"Então qual era o culpado?"

A resposta dos veteranos costuma ser a mesma.

"Depende."

Porque o verdadeiro segredo do Performance Tuning nunca foi decorar comandos.

Nem decorar parâmetros.

Nem decorar tabelas.

O verdadeiro segredo é aprender a pensar como um investigador.

Cada métrica conta uma história.

Cada relatório revela uma pista.

Cada gráfico esconde um detalhe.

Cada segundo perdido possui uma explicação.

E quando você finalmente domina essa arte, deixa de ser apenas um programador COBOL.

Torna-se um detetive do desempenho, capaz de seguir rastros invisíveis entre milhões de instruções, atravessar as sombras do CICS e revelar o culpado que ninguém mais conseguia enxergar.

Na próxima vez que alguém disser, com toda a convicção, "o CICS está lento", sorria discretamente, pegue sua lupa imaginária e lembre-se da maior lição desta investigação:

No Mainframe, o gargalo raramente está onde todos estão olhando. O verdadeiro mistério está escondido entre as métricas — esperando por alguém paciente o suficiente para conectar todas as pistas.

Sem comentários:

Enviar um comentário

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