BUFFERPOOL 配置参数和内存利用率

对于缺省页面大小缓冲池和任何非缺省页面大小缓冲池,BUFFERPOOL 配置参数都会为缓冲池中的缓冲区和 LRU 队列指定缺省值。在 BUFFERPOOL 配置参数字段中定义的信息影响内存利用率。

如果需要的密钥长度比缺省页大小可提供的更长,那么可以指定标准或临时数据库空间的页大小。根数据库空间为缺省页大小。如果想要指定页大小,那么该大小必须是缺省页大小的整数倍,且不能大于 16 KB。对于具有足够存储空间的系统,较大页大小的性能优势包括:
其他的性能优势还体现在您可以:

自动 LRU 调整更改将影响所有的缓冲池,并调整 BUFFERPOOL 配置参数的值 lru_min_dirtylru_max_dirty

onconfig 配置文件可包含一个或多个 BUFFERPOOL 行。例如,在页大小为 2K 的计算机上,onconfig 文件最多可包含 9 行(包括缺省规范)。

BUFFERPOOL 配置参数中的 buffers 字段指定数据库服务器可用的数据缓冲区的数目。这些缓冲区位于共享内存的常驻部分中,用于将数据库数据页面高速缓存在内存中。

当数据库服务器处于联机、静默或管理方式时,可使用 onparams 实用程序来添加不同大小的缓冲池。使用 onparams 实用程序时,您所指定的有关缓冲池的信息将自动传送到 onconfig 文件。

BUFFERPOOL 配置参数对数据库 I/O 和事务吞吐量具有很大的影响。可用的缓冲区越多,就越有可能出现以下情况:所需的数据页面可能已经作为上一个请求的结果位于内存中。但是,分配太多的缓冲区可能会影响内存管理系统并导致过度的操作系统调页活动。

数据库服务器使用以下公式来计算为此数据缓冲池分配的内存量:
bufferpoolsize = BUFFERS * page_size 

缓冲区空间所需的物理内存百分比取决于系统上可用的内存大小,以及用于其他应用程序的内存大小。对于具有大量可用物理内存(4 GB 或更大)的系统,缓冲区空间可能为物理内存的 90%。对于具有较小可用物理内存的系统,缓冲区空间可能介于范围 20% 到 25% 的物理内存。

在 BUFFERPOOL 配置参数的 buffers 字段中指定缓冲区数目并在 size 字段中指定了缓冲池页大小后,计算所有其他共享内存参数。

例如:如果系统的页大小为 2 KB,物理内存为 100 MB,那么可以将 buffers 字段中的值设置为 10,000 到 12,500,这将分配 20 MB 到 25 MB 的内存。

注: 如果使用非缺省的页大小,那么可能需要增大物理日志的大小。如果频繁对非缺省的页进行更新,那么可能需要将物理日志大小增大 150% 到 200%。要调整物理日志,可能需要一些试验。可根据物理日志触发器检查点的填充频率来按需调整物理日志的大小。