cancel
Showing results for 
Search instead for 
Did you mean: 

DB statistics buffer - SHM Key 41

Former Member
0 Kudos

Dear all,

I'd like to understand what hides behind the SHM Key 41 (DB statistics buffer) on ABAP AS. Why can it grow from a couple of Mbs to GBs ? Is there any parameter setting to control it ?

Thanks for your help !!

Christian.

Accepted Solutions (0)

Answers (1)

Answers (1)

markus_doehr2
Active Contributor
0 Kudos

Where do you see it's growing that much?

Markus

Former Member
0 Kudos

Hello Markus,

I noticed this growth from one system to an other (in ST02). I don't know if there is an evolution inside one system.

Rgds,

Christian.

markus_doehr2
Active Contributor
0 Kudos

Shared memory sizes are automatically calculated when you edit and save the instance profile.

you can check the size of the shm segment with key 41 on OS level using

sappfpar pf=<path-to-instance-profile>/<instance-profile> check

This will list all the segments and the sizes.

Generally shared memory sizes can't change their size during runtime, they are created when the application starts. However, some OS'ses (Solaris) can do that neverless using DISM.

Markus

Former Member
0 Kudos

I agree that they are calculated at start and (in some condtions on some OSes) they can grow. I wanted to know if there is a parameter for this specific buffer ? and btw what is it for ?

markus_doehr2
Active Contributor
0 Kudos

> I wanted to know if there is a parameter for this specific buffer ?

Check Note 599985 - Estimated size of Shared Memory Pool 40 too small

With

ipc/shm_psize_XY = Z

you can configure each of the shared memory segments separately.

> and btw what is it for ?

I don't know exactly, I'd assume this is for internal statistics so that you can see the "table call statistics" in ST02.

Markus

Former Member
0 Kudos

OK for the pool 40: If I enlanrge the CUA too much (setting rsdb/cua/buffersize parameter higher), I might have to modify the pool size ALSO (setting ipc/shm_psize_40 higher like requested by SAPPFPAR) because CUA is contained in the pool 40.

In my case, the pool value is 0 (ipc/shm_psize_41=0). But the size of "DB statistics buffer" is 13 MB on the system I am working on now.

Unlike the "classical" buffers like the CUA which is contained (in my case) in the pool 40, this one is out of pool and that's why it has an onw ID exactly in the same way as the PXA buffer who has the pool ID 06.

To modify the PXA buffer size you chage the abap/buffersize parameter and not ipc/shm_psize_06. And I am looking for the "real parameter" or the influencing factor for "DB statistics buffer" and not just the IPC SHM parameter.

Do you see what I mean ? (My explanation might still be confusing .. sorry for that)

P.S.: Thanks for your time.

markus_doehr2
Active Contributor
0 Kudos

> Unlike the "classical" buffers like the CUA which is contained (in my case) in the pool 40, this one is out of pool and that's why it has an onw ID exactly in the same way as the PXA buffer who has the pool ID 06.

> To modify the PXA buffer size you chage the abap/buffersize parameter and not ipc/shm_psize_06. And I am looking for the "real parameter" or the influencing factor for "DB statistics buffer" and not just the IPC SHM parameter.

I understand your issue

On one of our systems:

Pool 40:

Shared memories inside of pool 40
 Key:       42  Size:    19552992 (  18.6 MB) DB TTAB buffer               
 Key:       43  Size:    38999736 (  37.2 MB) DB FTAB buffer               
 Key:       44  Size:    11715256 (  11.2 MB) DB IREC buffer               
 Key:       45  Size:     8304312 (   7.9 MB) DB short nametab buffer      
 Key:       46  Size:       20480 (   0.0 MB) DB sync table                
 Key:       47  Size:     6657024 (   6.3 MB) DB CUA buffer                
 Key:       48  Size:      500000 (   0.5 MB) Number range buffer          
 Key:       49  Size:     2968344 (   2.8 MB) Spool admin (SpoolWP+DiaWP)

Shared memories outside of pools
<...>
 Key:       41  Size:    25010000 (  23.9 MB) DB statistics buffer         
<...>

In the developer trace I see

B Wed Dec  1 23:38:50 2010
B  dbstat: table statistics switched on for 34857 tables
B  dbstat: TABSTAT buffer created (addr: 0x2c4d5d1000, size: 17176536)
B  db_con_shm_ini:  WP_ID = 0, WP_CNT = 51, CON_ID = -1

Don't know whether this is the correct segment/key/object buffer...

I'd open an OSS call for this (BC-CST-MM) if you think this is a problem.

Markus

Former Member
0 Kudos

It's more a sizing issue and I guess I won't get (free) help.

As you can see, I have here on a BI system 1,5 GB of it !!

In $$ on a unix box it's a lot if I want to hold my shared memory in RAM ...

DB statistics buffer | 41 |1583.062 K | |

It looks like It were not a predictable value. Or let's say It depends on the compexity of the database.

Thanks for investigating,

Christian.

markus_doehr2
Active Contributor
0 Kudos

> As you can see, I have here on a BI system 1,5 GB of it !!

> DB statistics buffer | 41 |1583.062 K | |

ehem... 1583 kb = 1,5 MB (Mega-Bytes, not Giga-Bytes!)

or am I missing something

Markus

markus_doehr2
Active Contributor
0 Kudos

> It's more a sizing issue and I guess I won't get (free) help.

Free help? it's a support issue (at least I'd see it like that).

The system I was posting here is a 1,5 TB BI system too...

Markus

Former Member
0 Kudos

You're right, wrong system ..

Thanks

Former Member
0 Kudos

No It is the right system. "." is my thousands separator when there is enough space. [my CUA is 10 Mo for sure]

DB statistics buffer

41

1583.062 K

DB CUA buffer

47

10.000 K