可以使用 onstat -R 命令显示有关 LRU 队列、FLRU 队列和 MLRU 队列的详细信息。对于每个队列, onstat -R 命令显示队列中的缓冲区数和已修改缓冲区的数量和百分比。
关于三种队列的深入讨论,请参阅 GBase 8s 管理员指南 的共享内存一章中的 LRU 队列。
图: onstat -R 命令输出
Buffer pool page size: 2048 8 buffer LRU queue pairs priority levels # f/m pair total % of length LOW HIGH 0 f 375 100.0% 375 375 0 1 m 0.0% 0 0 0 2 f 375 100.0% 375 375 0 3 m 0.0% 0 0 0 4 f 375 100.0% 375 375 0 5 m 0.0% 0 0 0 6 F 375 100.0% 375 375 0 7 m 0.0% 0 0 0 8 f 375 100.0% 375 375 0 9 m 0.0% 0 0 0 10 f 375 100.0% 375 375 0 11 m 0.0% 0 0 0 12 f 375 100.0% 375 375 0 13 m 0.0% 0 0 0 14 f 375 100.0% 375 375 0 15 m 0.0% 0 0 0 0 dirty, 3000 queued, 3000 total, 4096 hash buckets, 2048 buffer size start clean at 60.000% (of pair total) dirty, or 226 buffs dirty, stop at 50.000% Buffer pool page size: 8192 4 buffer LRU queue pairs priority levels # f/m pair total % of length LOW HIGH 0 F 250 100.0% 250 250 0 1 m 0.0% 0 0 0 2 f 250 100.0% 250 250 0 3 m 0.0% 0 0 0 4 f 250 100.0% 250 250 0 5 m 0.0% 0 0 0 6 f 250 100.0% 250 250 0 7 m 0.0% 0 0 0 0 dirty, 1000 queued, 1000 total, 1024 hash buckets, 8192 buffer size start clean at 60.000% (of pair total) dirty, or 150 buffs dirty, stop at 50.000%
每个 LRU 队列由两个子队列构成:一个 FLRU 队列和一个 MLRU 队列。(有关 FLRU 和 MLRU 队列的定义,请参阅GBase 8s 管理员指南 的共享内存一章中的 LRU 队列 。)这样,队列 0 和 1 属于第一个 LRU 队列,队列 2 和 3 属于第二个 LRU 队列,依此类推。
在这种上下文中,可用意味着未修改过。尽管 LRU 队列中的几乎所有缓冲区都可用但数据库服务器尝试使用 FLRU 队列而不是 MLRU 队列。( 在数据库服务器可以使用缓冲区之前,已修改缓冲区必须已写入磁盘。)
数据库服务器使用该估计确定接下来将未修改(可用)缓冲区置于何处
例如:假设一个 LRU 队列具有 50 个缓冲区,其中 30 个缓冲区正在 MLRU 队列中,20 个在 FLRU 队列中。则 % of 列将分别列出 60.00 和 40.00 的百分率