Translate

Mostrar mensagens com a etiqueta laboratório mainframe. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta laboratório mainframe. Mostrar todas as mensagens

quinta-feira, 4 de janeiro de 2024

☕💣🔥 LABORATÓRIO PRÁTICO — TESTES DE PERFORMANCE PARA O PADAWAN COBOL MAINFRAME

 

Bellacosa Mainframe e laboratorio pratico de performance

☕💣🔥 LABORATÓRIO PRÁTICO — TESTES DE PERFORMANCE PARA O PADAWAN COBOL MAINFRAME

Este laboratório foi criado para transformar conceitos em prática.

A ideia é que o aluno pense como um Analista de Performance, um Desenvolvedor COBOL e um Sysprog ao mesmo tempo.

Cada exercício possui:

  • Cenário

  • Desafio

  • Solução Comentada

  • Conceitos Envolvidos


EXERCÍCIO 1

Identificando o Tipo de Teste

Cenário

O banco deseja validar se o Internet Banking suporta 5.000 usuários simultâneos.

Pergunta

Qual tipo de teste deve ser realizado?

A) Estresse

B) Resistência

C) Carga

D) Pico


Solução

Resposta:

C) Carga

O objetivo é validar a capacidade prevista do ambiente.

Não estamos ultrapassando limites.

Não estamos testando durante horas.

Não estamos simulando explosões repentinas.

Estamos simulando o uso normal esperado.


EXERCÍCIO 2

Descobrindo o Gargalo

Cenário

Uma consulta de saldo apresenta:

ComponenteTempo
Front-End50 ms
API80 ms
CICS1200 ms
DB2950 ms

Pergunta

Onde está o principal gargalo?


Solução

CICS e DB2.

O tempo de resposta total está concentrado nessas camadas.

O Front-End e API representam parcela muito pequena do processamento.

O próximo passo seria analisar:

  • SQL

  • Índices

  • Plano de acesso

  • Locks


EXERCÍCIO 3

Avaliando Throughput

Cenário

Durante um teste foram processadas:

120.000 transações

em

60 segundos

Pergunta

Qual o Throughput?


Solução

Fórmula:

TPS = Transações ÷ Tempo

120.000 ÷ 60

TPS = 2.000

Resposta:

2.000 TPS


EXERCÍCIO 4

Encontrando Problema de Código COBOL

Programa

PERFORM UNTIL WS-FIM = 'S'

   READ ARQ-CLIENTES
      AT END
         MOVE 'S' TO WS-FIM
   END-READ

   PERFORM PROCESSA-CLIENTE

END-PERFORM

Pergunta

Qual risco de performance existe?


Solução

Se o arquivo possuir milhões de registros:

  • CPU elevada

  • I/O elevado

  • Tempo excessivo

O código não está errado.

Mas pode não escalar.

Performance depende do volume.


EXERCÍCIO 5

Escolhendo a Ferramenta

Cenário

Você precisa gerar:

10.000 usuários simultâneos

realizando chamadas HTTP.

Pergunta

Qual ferramenta apresentada seria mais indicada?


Solução

Apache JMeter.

Porque:

  • Open Source

  • Escalável

  • HTTP

  • HTTPS

  • REST

  • SOAP

Foi justamente a ferramenta mostrada na apresentação.


EXERCÍCIO 6

Teste de Resistência

Cenário

Uma aplicação funciona perfeitamente por:

30 minutos

Após:

8 horas

o consumo de memória cresce continuamente.

Pergunta

Qual tipo de teste identificou o problema?


Solução

Teste de Resistência.

Também chamado:

Soak Test

ou

Endurance Test.

Esse tipo de problema dificilmente aparece em testes rápidos.


EXERCÍCIO 7

Simulando Black Friday

Cenário

Usuários simultâneos:

09:00 → 1.000

09:01 → 10.000

09:02 → 15.000

09:03 → 1.000

Pergunta

Qual tipo de teste está sendo realizado?


Solução

Teste de Pico.

Objetivo:

Validar explosões repentinas de acesso.

Muito comum em:

  • Black Friday

  • PIX

  • Campanhas

  • Venda de ingressos


EXERCÍCIO 8

Análise de Mainframe

Cenário

Durante o teste:

CPU = 35%

Tempo de Resposta = 8 segundos

Pergunta

A CPU é o problema?


Solução

Não necessariamente.

Esse é um erro clássico.

Mesmo com CPU baixa podem existir:

  • Locks DB2

  • Espera de I/O

  • MQ congestionado

  • SQL ruim

  • Contenção CICS

CPU baixa não significa ambiente saudável.


EXERCÍCIO 9

Virtualização de Serviços

Cenário

O microsserviço precisa chamar:

  • Serviço A

  • Serviço B

  • Mainframe

Mas o Mainframe está indisponível.

Pergunta

Como continuar os testes?


Solução

Utilizando Virtualização.

Criamos respostas simuladas.

Exemplo:

{
  "conta":"12345",
  "saldo":"1500.00"
}

Assim os testes continuam sem depender do ambiente real.


EXERCÍCIO 10

Diagnóstico Completo

Cenário

O Grafana mostra:

CPU = 40%

Memória = 45%

Tempo Médio = 5 segundos

Dynatrace mostra:

API = 100 ms

CICS = 250 ms

DB2 = 4200 ms

Pergunta

Onde você investigaria primeiro?


Solução

DB2.

O banco responde por mais de 80% do tempo total.

Possíveis causas:

  • Full Scan

  • Índice ausente

  • Estatísticas desatualizadas

  • Lock

  • SQL mal otimizado


DESAFIO FINAL DO PADAWAN ☕💣

Imagine a seguinte arquitetura:

Mobile
   ↓
Apache
   ↓
WebSphere
   ↓
API
   ↓
MQ
   ↓
CICS
   ↓
COBOL
   ↓
DB2

Você recebe a reclamação:

"Consultar saldo está demorando 12 segundos."

Descreva:

  1. Quais ferramentas utilizaria?

  2. Quais métricas analisaria?

  3. Quais componentes investigaria primeiro?

  4. Como executaria um teste de carga?

  5. Como validaria a correção?


GABARITO ESPERADO

Ferramentas:

  • JMeter

  • Dynatrace

  • Grafana

  • OMEGAMON

  • RMF

  • SMF

Métricas:

  • CPU

  • TPS

  • Tempo Médio

  • P95

  • P99

  • I/O

  • MQ Depth

  • Tempo DB2

Investigação:

  1. Dynatrace

  2. DB2

  3. CICS

  4. MQ

  5. API

Teste:

  • 5.000 usuários

  • Ramp-up gradual

  • Monitoramento simultâneo

Validação:

Comparar:

Antes = 12 segundos

Depois = meta inferior a 2 segundos


Missão Extra Bellacosa Mainframe

Pegue um programa COBOL real do seu ambiente e responda:

  • Quantos READs ele executa?

  • Quantos WRITEs?

  • Quantos SELECTs DB2?

  • Qual o maior loop?

  • Qual o volume esperado?

  • Como ele se comportaria com 10 milhões de registros?

Se você conseguir responder essas perguntas, já começou a pensar como um profissional de Performance Mainframe e não apenas como um programador COBOL. ☕💣🚀