O buffer pool do Natural é uma área de armazenamento usado pelo núcleo Natural para executar objetos catalogados em programação Natural. Quando um objeto Natural é solicitado para a execução, é lido a partir do file de Natural System (onde são armazenados os fontes de objetos Natural e executável - objetos catalogados) e colocado no conjunto de memória intermédia, onde ele pode ser utilizado por vários usuários simultaneamente. O seu tamanho influi diretamente no desempenho do Adabas em termos de CPU. Esta área, além de conter os blocos do Associator com FDT, FCB, HIPER INDEX é utilizada de forma a armazenar os blocos do DATA STORAGE lidos e a serem gravados novamente. É efetuada uma analise de frequencia de utilização de blocos de forma a manter em memoria pricipal de maior utilização, de forma a tornar desnecessária novas leituras em disco. O tamanho ideal seria tal que se mantivesse um nivel baixo de atividade no buffer pool, e que as gravações se dessem em tempo de close.
Vamos imaginar o buffer pool um grande quadrado (com tamanho x) com várias divisões cada quadrado tem y - vamos representar o Y por 2 mb, se algum processo for de 3 mb ele vai utilizar dois blocos de 2 - somando 4 mb o 1 mb restante ele não vai liberar para outro.
Detalhes sobre do Buffer Pool;
Jobs para dar Display, start e stop do Buffer
Para dar display para ver o que esta rodando
Vamos imaginar o buffer pool um grande quadrado (com tamanho x) com várias divisões cada quadrado tem y - vamos representar o Y por 2 mb, se algum processo for de 3 mb ele vai utilizar dois blocos de 2 - somando 4 mb o 1 mb restante ele não vai liberar para outro.
+-+-+-+-+-+-+-+-+-+-+
|2|2|2|2|2|2|2|2|2|2|
+-+-+-+-+-+-+-+-+-+-+
|2|2|2|2|2|2|2|2|2|2|
+-+-+-+-+-+-+-+-+-+-+
|2|2|2|2|2|2|2|2|2|2|
+-+-+-+-+-+-+-+-+-+-+
|2|2|2|2|2|2|2|2|2|2|
+-+-+-+-+-+-+-+-+-+-+
Acessando o SYSBPM para ver como esta o buffer pool 17:08:14 TID 8 COM641/D User AA01055 22.09.10
-- COM-PASS -- USTS
Suspended Programs Program Services
--------------------------------- ---------------------------------------
Programs Name C Level PF Service Description Programs ID PF
-------- -------- - ----- -- -------------------- -------- -- --
NCF414 SYSAOS L 1 * Logon/Logoff Utility ULOG A
2 System Job Queue UQ B
3 Test Editor Utility UEDIT C
4 PDS Maint. Utility UPDS D
5 Spooling System USPOOL E
6 Message Sending UM F
7 Natural de Producao NATP G
8 Aplicacoes Natural NAT2 H
9 Dataset Maintenance UDS I
Enter Input: HELP ?
dbax 240 sysbpm
-------------------------------------------------------------------------------
LU Name: TICS0702 HC TID: Recall: = Language: 001
Devtype: 3279 V Device: PICS0966 Suspend: < PA1 Case : UPPER
Lines : 24 Key: PA2 Jump: NO NO
Columns: 80
A - Buffer Pool17:08:27 ***** NATURAL SYSBPM UTILITY ***** 22/09/2010
BPNAME NATGBP - Main Menu - Type Global Nat
BPPROP OFF Loc CPAC NAT4
Object Functions Object Pool Statistics
L List Objects A Buffer Pool
D Delete Objects C BP Cache
I Directory Information
H Hexadecimal Display Other Functions
W Write to Work File
X Display Sorted Extract S Select Buffer Pool
? Help B Blacklist Maintenance
. Exit P Preload List Maintenance
Code .. a Library ... *_______
Object .... *_______________________________________
DBID ...... 0____ FNR .. 0____ Object Pool ... * (B,C,*)
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip Canc
G - General Buffer Pool Statistics17:09:38 ***** NATURAL SYSBPM UTILITY ***** 22/09/2010
BPNAME NATGBP - Buffer Pool Statistics - Type Global Nat
BPPROP OFF Loc CPAC NAT4
Code Function
G General Buffer Pool Statistics
L Buffer Pool Load/Locate Statistics
F Buffer Pool Fragmentation
I Internal Function Usage
H Buffer Pool Hash Table Statistics
P Performance Hints
? Help
. Exit
Code .. g
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip Canc
Resultado;
17:09:47 ***** NATURAL SYSBPM UTILITY ***** 22/09/2010
BPNAME NATGBP - General Buffer Pool Statistics - Type Global Nat
BPPROP OFF Loc CPAC NAT4
Buffer Pool Address ..... 14EF9000 Buffer Pool Size (MB) ... 15,00
Directory Section ...... 00000400 Directory Entry Size .... 128
Text Record Section .... 000FD000 Text Record Size (KB) ... 2
Dataspace attached ......
Initialization .......... 04:02:43 2010-07-13
Last Refresh ............ 04:02:43 2010-07-13 by User .. NATBPMG4
_______________________________ Text Records ______________________________
Total Used in % Max Used Total Size Avg Usage %
7,174 6,953 96,91 7,174 14,239,744 88,16
_____________________ Objects ________________________________
Space Used % Loaded Max Loaded Total Size Avg TR Used
85,44 1,685 1,977 12,554,164 4,1
SumOfUseCounts AvgLifetimeUsed(min) AvgLifetimeReplace(min)
407 7,797 80
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip Load Canc
Observar - AVG USAGE % - SPACE USAGE %- - Sempre acima de 80 % é bom abaixo de 70% é ruim 17:11:10 ***** NATURAL SYSBPM UTILITY ***** 22/09/2010
BPNAME NATGBP - Buffer Pool Statistics - Type Global Nat
BPPROP OFF Loc CPAC NAT4
Code Function
G General Buffer Pool Statistics
L Buffer Pool Load/Locate Statistics
F Buffer Pool Fragmentation
I Internal Function Usage
H Buffer Pool Hash Table Statistics
P Performance Hints
? Help
. Exit
Code .. p
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip Canc
De PF3 para sair - Escolha a opção - P Performance Hints17:12:58 ***** NATURAL SYSBPM UTILITY ***** 22/09/2010
BPNAME NATGBP - Performance Hints - Type Global Nat
BPPROP OFF Loc CPAC NAT4
Rating
(1=best - 6=worst)
Buffer Pool
Locates / Loads Ratio ...... 374,20 2
Method=N not used
BP Cache
Cache not installed
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip Canc
Lembrando que falamos acima; O tamanho ideal é que ele tenha e se mantenha em um nivel baixo de atividade no buffer pool, e que as gravações se dessem em tempo de close.
Detalhes sobre do Buffer Pool;
//STARTNAT EXEC PGM=NATGBP41,
// PARM='BPN=NATGBP,S=NAT4,N=(15M,XA,2),R=N'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=A
//GBPPRINT DD SYSOUT=A
//SYSPRINT DD SYSOUT=A
//* -----------------------------------------------------------------
//* INICIALIZA O EDITOR DO BUFFER POOL DO NATURAL
//* -----------------------------------------------------------------
//STARTEDT EXEC PGM=NATGBP41,
// PARM='BPN=EDTGBP,S=NAT4,T=EDIT,N=(4096,XA,2),R=N'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=A
//GBPPRINT DD SYSOUT=A
//SYSPRINT DD SYSOUT=A
No exemplo acima N=(15M,XA,2) o tamanho do buffer pool é 15 mega o número 2 significa que o espaço minimo que ele vai libarar, se um programa utilizar 3 megas (em vez de 15) o buffer pool vai liberar 4, ele vai criar dois blocos cada um com 2 megas.
Jobs para dar Display, start e stop do Buffer
Para dar display para ver o que esta rodando
MEMBER=GBEDSHOW 000011 REC SAVE:30.11.2005 08:34 BY USERID AA01055 R=00000001
DSN=NATURAL.V414.JOBS VOL=PRL302 UNIT=1021
....+....1....+....2....+....3....+....4....+....5....+....6
//AAFSNATB JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A
//*UQ ALLOW
//* ----------------------------------------
//* VERIFICAR SE O BUFFER POOL ESTA NO AR
//* ----------------------------------------
//STARTEDT EXEC PGM=NATGBP41,PARM='CF=STARTEDT'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//STARTEDT DD *
SHOWBP
//*
Start o Global Buffer PollMEMBER=GBNASTOP 000011 REC SAVE:30.11.2005 16:24 BY USERID AA01055 R=00000001
DSN=NATURAL.V414.JOBS VOL=PRL302 UNIT=1021
....+....1....+....2....+....3....+....4....+....5....+....6
//AAFSNATB JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A
//*JOBPARM LINES=9999
//* -----------------------------------
//* STOP NATURAL GLOBAL BUFFER POOL
//* -----------------------------------
//STOPNAT EXEC PGM=NATGBP41,PARM='CF=STOPNAT'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//STOPNAT DD *
F,BPN=NATGBP,S=NAT4
//*
Start o EditorMEMBER=GBEDSTRT 000011 REC SAVE:07.12.2005 11:18 BY USERID AA01055 R=00000001
DSN=NATURAL.V414.JOBS VOL=PRL302 UNIT=1021
....+....1....+....2....+....3....+....4....+....5....+....6
//AAFSEGBP JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A
//*UQ ALLOW
//* --------------------------------------------------
//* START EDITOR GLOBAL BUFFER POOL
//* --------------------------------------------------
//STARTEDT EXEC PGM=NATGBP41,PARM='CF=STARTEDT'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//STARTEDT DD *
C,BPN=EDTGBP,S=NAT4,T=EDIT,N=(4096,XA,4)
//*
Stop o EditorMEMBER=GBEDSTOP 000011 REC SAVE:03.01.2006 15:31 BY USERID AA01055 R=00000001
DSN=NATURAL.V414.JOBS VOL=PRL302 UNIT=1021
....+....1....+....2....+....3....+....4....+....5....+....6
//AAFSNATB JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A
//*UQ ALLOW
//* -----------------------------------
//* STOP EDITOR GLOBAL BUFFER POOL
//* -----------------------------------
//STOPEDT EXEC PGM=NATGBP41,PARM='CF=STOPEDT'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//STOPEDT DD *
F,BPN=EDTGBP,S=NAT4
//*
Stop o Global Buffer PoolMEMBER=GBNASTOP 000011 REC SAVE:30.11.2005 16:24 BY USERID AA01055 R=00000001
DSN=NATURAL.V414.JOBS VOL=PRL302 UNIT=1021
....+....1....+....2....+....3....+....4....+....5....+....6
//AAFSNATB JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A
//*JOBPARM LINES=9999
//* -----------------------------------
//* STOP NATURAL GLOBAL BUFFER POOL
//* -----------------------------------
//STOPNAT EXEC PGM=NATGBP41,PARM='CF=STOPNAT'
//STEPLIB DD DSN=ADA5.LOADLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//STOPNAT DD *
F,BPN=NATGBP,S=NAT4
//*
0 comentários:
Enviar um comentário