A garantia de alta disponibilidade e o tempo de resposta otimizado dos sistemas de produção exigem o acompanhamento constante dos ativos de memória. Recentemente, a monitoração proativa do ambiente de produção através do utilitário SYSBPM (Natural Buffer Pool Utility) acendeu um alerta de capacidade: os dados históricos acumulados revelaram que o Buffer Pool operava no limite de sua saturação. Para mitigar gargalos operacionais antes que houvesse impacto direto na experiência do usuário final, foi conduzida uma análise aprofundada em conjunto com o suporte do fabricante. Este documento apresenta o diagnóstico técnico inicial, as justificativas para a reestruturação e a solução adotada para expandir a capacidade do ambiente, assegurando a estabilidade das operações.
Buffer Pool hoje
Stop Buffer Pool
Start Buffer Pool
Display do Buffer Pool
1. Diagnóstico Inicial do Ambiente
A análise estática realizada diretamente no painel do SYSBPM indicava o seguinte cenário de ocupação de memória: Até o momento da análise, a inicialização do Buffer Pool primário utilizava a seguinte parametrização de 25 MB via JCL://* ----------------------------------------------------------------- //* INICIALIZA O GLOBAL BUFFER POOL DO NATURAL //* ----------------------------------------------------------------- //STARTNAT EXEC PGM=NATGBP41, // PARM='BPN=NATGBP,S=NAT4,N=(25M,XA,2),R=N' //STEPLIB DD DSN=ADA8.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=A //GBPPRINT DD SYSOUT=A //SYSPRINT DD SYSOUT=A
Buffer Pool hoje
12:38:32 ***** NATURAL SYSBPM UTILITY ***** 01/06/2026
BPNAME NATGBP - General Buffer Pool Statistics - Type Global Nat
BPPROP OFF Loc CPAC NAT4
Buffer Pool Address ..... 13C63000 Buffer Pool Size (MB) ... 25,00
Directory Section ...... 00000400 Directory Entry Size .... 128
Text Record Section .... 001A5000 Text Record Size (KB) ... 2
Dataspace attached ......
Initialization .......... 23:20:13 2025-12-06
Last Refresh ............ 23:20:13 2025-12-06 by User .. NATBPMG4
_______________________________ Text Records ______________________________
Total Used in % Max Used Total Size Avg Usage %
11,958 11,785 98,55 11,956 24,135,680 90,47
_____________________ Objects ________________________________
Space Used % Loaded Max Loaded Total Size Avg TR Used
89,16 2,301 2,777 21,836,723 5,1
SumOfUseCounts AvgLifetimeUsed(min) AvgLifetimeReplace(min)
880 4,643 804
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip Load Canc
2. Análise Técnica e Parecer do Suporte
A equipe de suporte da Software AG validou os dados e emitiu um parecer técnico que aponta para um cenário crítico de saturação em diferentes camadas. O ponto mais alarmante reside na gestão de Text Records, cujo consumo severo atingiu 98,55%, indicando que a área está praticamente esgotada. O fato de a métrica de uso máximo (Max Used) ter encostado no limite total, somado a uma ocupação média (Avg Usage) constantemente acima de 90%, evidencia que a sobrecarga não decorre de um pico pontual, mas sim de uma pressão operacional contínua. Em termos práticos, essa escassez de espaço força o Natural a descartar componentes em memória, desencadeando um efeito cascata de leituras físicas adicionais no banco de dados ADABAS. Como consequência direta, há uma degradação na performance geral do sistema e uma elevação no tempo de resposta das transações. Paralelamente, a ocupação de objetos também exige atenção, operando atualmente em 89,16%. Embora esse indicador ainda retenha uma margem mínima de manobra, a curva demonstra uma tendência clara de aproximação do seu limite máximo histórico de 2.777 objetos carregados — um fator de peso, considerando que cada objeto consome, em média, 5,1 Text Records. Ao cruzar esses dados com o comportamento dinâmico do ambiente, a análise combinada de Reuse e Lifetime revela que, embora o indicador SumOfUseCounts confirme a reutilização regular dos objetos, o tempo de vida médio antes de uma substituição (AvgLifetimeReplace) é extremamente longo, girando em torno de 13 horas. Em contrapartida, o tempo de uso ativo após a carga (AvgLifetimeUsed) é de apenas 4,6 minutos. Esse descompasso sugere que rotinas ou objetos obsoletos permanecem retidos na memória sem necessidade de uso imediato, estreitando ainda mais o espaço útil disponível e sufocando o ecossistema do Buffer Pool.3. Plano de Ação e Recomendações
Como estratégia para mitigar a saturação identificada, a equipe de suporte da Software AG recomendou a expansão da capacidade do Buffer Pool em um patamar entre 20% e 50%, condicionada à disponibilidade de memória no ambiente z/OS. Adotando uma postura conservadora dentro dessa margem, optou-se por um acréscimo de 50% sobre os 25 MB originais, totalizando uma nova volumetria de 37 MB para o ambiente. Além do ganho de espaço físico, o parecer técnico sugeriu ações complementares para garantir a eficiência da estrutura, incluindo a revisão de parâmetros de inicialização adjacentes do Natural — como o BPI ou BPSFI — e uma análise detalhada dos padrões de carga das aplicações. Essa última medida visa rastrear o comportamento dos sistemas para identificar possíveis excessos na execução de programas dinâmicos ou o acesso a bibliotecas excessivamente pesadas que possam estar sobrecarregando o Buffer Pool. O que foi melhorado:| Critério | Melhoria Aplicada |
|---|---|
| Fluidez | Eliminou os marcadores de tópicos (bullet points). |
| Coesão | Justificou a escolha dos 37 MB encaixando-a logo após a menção da regra de 20% a 50% sugerida pela Software AG. |
4. Implementação e Nova Parametrização
Seguindo as diretrizes técnicas, a volumetria do Buffer Pool foi expandida de 25 MB para 37 MB. Vale ressaltar que a efetivação dessa nova configuração em subsistemas globais exige a execução de um IPL (Initial Program Load) ou o procedimento manual de exclusão e recriação do Buffer Pool na região correspondente.| Cenário | Configuração do Buffer Pool |
|---|---|
| Antes da Alteração | Configuração Antiga - 25MB |
| Após a Alteração | Nova Otimização - 37MB |
5. Próximos Passos e Critérios de Sucesso
Após a alteração do parâmetro de 25 MB para 37 MB no JCL de inicialização, a efetivação dessa nova valor no ambiente ativo dependerá obrigatoriamente da execução de um IPL ou do procedimento controlado de stop/start manual do Buffer Pool. Para efetivar vamos fazer a deletação e a recriação da buffer pool manualmente.Stop Buffer Pool
//AAFSNATB JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A //*UQ ALLOW //* -------------------------------------------------------- //* STOP NATURAL GLOBAL BUFFER POOL //* -------------------------------------------------------- //STOPNAT EXEC PGM=NATGBP41,PARM='CF=STOPNAT' //STEPLIB DD DSN=ADA8.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=* //STOPNAT DD * F,BPN=NATGBP,S=NAT4 //*
Start Buffer Pool
//AAFSEGBP JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A //*UQ ALLOW //* -------------------------------------------------- //* START EDITOR GLOBAL BUFFER POOL //* -------------------------------------------------- //STARTNAT EXEC PGM=NATGBP41, // PARM='BPN=NATGBP,S=NAT4,N=(37M,XA,2),R=N' //STEPLIB DD DSN=ADA8.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=A //GBPPRINT DD SYSOUT=A //SYSPRINT DD SYSOUT=A
Display do Buffer Pool
//AAFSNATB JOB (AAFP,DIBD),CLAUD,CLASS=S,MSGCLASS=A,TYPRUN=HOLD //*UQ ALLOW //* ----------------------------------------------------------- //* VERIFICAR SE O BUFFER POOL ESTA NO AR //* ----------------------------------------------------------- //STARTEDT EXEC PGM=NATGBP41,PARM='CF=STARTEDT' //STEPLIB DD DSN=ADA8.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=* //STARTEDT DD * SHOWBP



0 comentários:
Enviar um comentário