Home | Previous Page | Next Page   Disk, Memory, and Process Management > Shared Memory > Resident Portion of Shared Memory >

Shared-Memory Buffer Pool

The buffer pool in the resident portion of shared memory contains buffers that store dbspace pages read from disk. The pool of buffers comprises the largest allocation of the resident portion of shared memory.

Figure 37 illustrates the shared-memory header and the buffer pool.

Figure 37. Shared-Memory Buffer Pool
begin figure description - This figure is described in the surrounding text. - end figure description

You specify the number of buffers in the buffer pool with the BUFFERS parameter in the ONCONFIG file. BUFFERS defaults to 1000 buffers. To allocate the proper number of buffers, start with at least four buffers per user. For more than 500 users, the minimum requirement is 2000 buffers. Too few buffers can severely impact performance, so you must monitor the database server and tune the value of BUFFERS to determine an acceptable value. For more information on tuning the number of buffers, refer to your IBM Informix: Performance Guide.

For more information on setting the BUFFERS configuration parameter, refer to the IBM Informix: Administrator's Reference.

The status of the buffers is tracked through the buffer table. Within shared memory, buffers are organized into LRU buffer queues. Buffer acquisition is managed through the use of latches, called mutexes, and lock-access information.

For a description of how LRU queues work, refer to LRU Queues. For a description of mutexes, refer to Mutexes.

Buffer Overflow to the Virtual Portion

Because the maximum number of buffers in 64-bit addressing can be as large as 231-1, the resident portion of shared memory might not be able to hold all of the buffers in a large buffer pool. In this case, the virtual portion of database server shared memory might hold some of the buffers.

Buffer Size

Each buffer is the size of one database server page. In general, the database server performs I/O in full-page units, the size of a buffer. The exception is I/O performed from big buffers. See Big Buffers.

The -b option of the onstat utility displays information about the buffers. For information on onstat, refer to the utilities chapter in the IBM Informix: Administrator's Reference.

Configurable Page Size

You can use the PAGESIZE parameter to specify a database server page size of 2048, 4096, or 8192 bytes. The -b option of the onstat utility also displays the database server page size.

If your workload is mostly DSS queries, a larger page size gives you better performance. If your workload is mostly OLTP, a smaller page size gives you better performance. For more information about the PAGESIZE parameter, see the IBM Informix: Administrator's Reference.

The page size affects the calculations for the buffer pool, logical-log buffer, physical-log buffer, physical-log size, and the maximum logical-log size. For more information, see the chapter on effects of configuration on memory use in your IBM Informix: Performance Guide.

You can use the -p and -P options of the onstat utility to determine the rate of buffer pool usage and to optimize the use of memory resident tables, respectively. The onstat -t option enables you to determine which tblspaces are resident. For information on onstat, refer to the utilities chapter in the IBM Informix: Administrator's Reference.

Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]