28.12.10

SAP Note 16244 - Setting nametab buffer sizes

Symptom:

Transaction ST02 displays nametab buffer overflows (swaps).

Reason and Prerequisites

The nametab buffer was set too small.
Especially if system runtimes are long and a large number of application modules is used, the buffer size is not sufficient. To be able to store new entries, others are displaced according to the LRU strategy.
You can recognize this in the detail display for the four nametab sub-buffers in the "Objects swapped" entry. If the value here is larger than zero, this means that the system had to displace individual entries to make room for others.

Solution

Check the following profile parameters and increase them if required:

rsdb/ntab/entrycount (number of directory entries)
rsdb/ntab/ftabsize (size in KB)
rsdb/ntab/sntabsize (size in KB)
rsdb/ntab/irbdsize (size in KB)

Relationship of the individual parameters:
The parameter "rsdb/ntab/entrycount" determines the number of directory entries in the table description buffer. The number of the directory entries in the field catalog buffer (FTAB), in the short nametab buffer (SNTAB) and in the buffer for the initial record (IRBD) is calculated as follows:

Buffer Kernel 46D Kernel 6.20 and higher
TTAB rsdb/ntab/entrycount rsdb/ntab/entrycount
FTAB 2*rsdb/ntab/entrycount rsdb/ntab/entrycount
SNTAB 2*rsdb/ntab/entrycount rsdb/ntab/entrycount/4
IRBD 2*rsdb/ntab/entrycount rsdb/ntab/entrycount/4

The size of the TTAB buffer is mainly determined from the number of directory entries.

The parameters "rsdb/ntab/ftabsize","rsdb/ntab/sntabsize" and "rsdb/ntab/irbdsize" determine the size of the data part for the field descriptions (field catalog, FTAB), the short nametabs (short nametab, SNTAB), and the initial records (IRDB). The total size of these three buffers consists of an administrative section and the data part that is defined by the parameter.

The total size (in KB) can be estimated as follows:
TTAB buffer = s_ttab * "rsdb/ntab/entrycount" / 1024
FTAB buffer = "rsdb/ntab/ftabsize" +
s_ftab * "rsdb/ntab/entrycount" / 1024
IRBD buffer = "rsdb/ntab/irdbsize" +
s_irbd * "rsdb/ntab/entrycount" / 1024
SNTAB buffer= "rsdb/ntab/sntabsize" +
s_sntab * "rsdb/ntab/entrycount" / 1024

For s_ttab, s_ftab, s_irbd and s_sntab, you must use the following values (depending on the kernel release, on whether you use a 32-bit or a 64-bit kernel and on whether you have a Unicode system):

Variable value:
Kernel: s_ttab s_ftab s_irbd s_sntab

46D 172 80 80 80
640 and higher:
32-bit, non-Unicode 220 44 17 17
32-bit, Unicode 324 44 17 17
64-bit, non-Unicode 248 80 32 32
64-bit, Unicode 348 80 32 32

Note that the values listed above are only estimated values. In particular for 64-bit platforms, the value for s_ttab depends on the processor.

Exercise CAUTION when you increase the parameters:
Shared memory pool 40 must be increased by the total of the increase of the latter three named parameters. When you increase parameter "rsdb/ntab/entrycount", the management data structure for the TTAB buffer grows, as does its data portion and the management structure of the other buffers. The size of shared memory pool 40 is controlled by parameter ipc/shm_psize_40.

For Releases with kernel 6.10 and higher, refer to Note 670505 concerning the maximum size of the nametab buffer.

Other terms

Nametab, TTAB, table description, FTAB, field catalog, short nametab, initial record, buffer, ST02, profile

No comments:

Post a Comment