LRU 写入

与前台写入不同,LRU 写入由页清除程序执行而不是由 sqlexec 线程执行。数据库服务器将 LRU 写入作为后台写入执行,后者通常在脏缓冲区的百分比超过在 BUFFERPOOL 配置参数中为 lru_max_dirty 指定的百分比时发生。

此外,前台写入可触发 LRU 写入。当发生前台写入时,已执行写入的 sqlexec 线程将提醒页清除程序唤醒并清除该线程已为之执行前台写入的 LRU。

在已正确调整的系统中,页清除程序将确保有足够的未修改的缓冲区页可用于存储从磁盘读取的页。因此,执行查询的 sqlexec 线程无需在读入查询所需的磁盘页之前,先将页清空到磁盘。对于不利用前台写入的查询而言,这种情况可以使性能有显著地提高。

由于页清除程序线程执行缓冲区写入比 sqlexec 线程更有效率,因此 LRU 写入比前台写入更受欢迎。要监视写入的两种类型,请使用 onstat -F