BUFFERPOOL 配置参数指定在共享内存缓冲池内设置的最近最少使用的 (LRU) 队列数。缓冲池分布在 LRU 队列之间。配置更多的 LRU 队列后可使用更多的页面清除程序,并且能够减小每个 LRU 队列。
对于单处理器系统,应该将 BUFFERPOOL 配置参数的 lrus 选项设置为最小值 4。对于多处理器系统,将 lrus 设置为最小值 4 或 CPU VP 数(这两个值中的较大者)。
lrus、lru_max_dirty 和 lru_min_dirty 值控制检查点之间对磁盘清空页的频率。自动 LRU 调整影响所有的缓冲池并调整了 BUFFERPOOL 配置参数中的 lru_min_dirty 和 lru_max_dirty 值。
如果您增加 lru_max_dirty 和 lru_min_dirty 的值来提高事务吞吐量,那么不要更改 lru_max_dirty 和 lru_min_dirty 之间的差值。
当检查点处理期间缓冲池非常大或出现事务阻塞时,查看消息日志以确定哪个资源正在触发事务阻塞。如果物理或逻辑日志相当低并触发事务阻塞,那么增加导致事务阻塞的资源的大小。如果不能增加资源的大小,那么考虑通过减少 lru_min_dirty 和 lru_max_dirty 设置使得 LRU 清空更具强制性,这样可使服务器在资源检查点处理期间有较少的页面需要清空到磁盘。
要监视 LRU 队列中脏页的百分比,请使用 onstat -R 命令。 如果脏页数总是超过 lru_max_dirty 限制,那么说明您的 LRU 队列或页面清除程序过少。 首先,使用 BUFFERPOOL 配置参数增加 LRU 队列数。如果脏页数的百分比仍超过 lru_max_dirty 限制,那么请使用 CLEANERS 配置参数来增加页面清除程序数。