共享内存常驻部分中的缓冲池包含存储从磁盘读取的数据库空间页的缓冲区。缓冲池包含对共享内存的常驻部分的最大分配。
图: 共享内存缓冲池
使用 BUFFERPOOL 配置参数可指定有关缓冲池的信息,包括缓冲池中缓冲区的数量。要分配适当的缓冲区数,对于每个用户至少要启动 4 个缓冲区。对于 500 个以上的用户,最少要求 2000 个缓冲区。缓冲区数目过少会严重影响性能,因此必须监视数据库服务器并调节缓冲区数的值以确定可接受的值。有关调整缓冲区数的更多信息,请参阅《GBase 8s 性能指南》。
如果非缺省页大小的缓冲池不存在,那么数据库服务器将自动创建大页缓冲区。
如果您正在创建非缺省页大小的数据库空间,那么该数据库空间必须具有对应的缓冲池。例如,如果创建页大小为 6 KB 的数据库空间,那么必须创建大小为 6 KB 的缓冲池。
自动 LRU(最近最少使用)调节可影响所有缓冲池并调整 BUFFERPOOL 配置参数中的 lru_min_dirty 和 lru_max_dirty 值。
有关设置 BUFFERPOOL 配置参数的更多信息,请参阅 GBase 8s 管理员参考。
缓冲区状态通过缓冲区表跟踪。在共享内存中,缓冲区将组织到 FIFO/LRU 缓冲区队列中。缓冲区获取是通过使用锁存器(称为互斥)和锁访问信息来管理的。
有关 LRU 队列如何运行的描述,请参阅 FIFO/LRU 队列。有关互斥的描述,请参阅互斥。