使用 onstat -g buf 命令来显示每个缓冲池的概要文件信息。
示例输出
onstat -g buf 命令的输出取决于 BUFFERPOOL 配置参数设置是否包含
memory 字段和 buffers 字段而稍有不同。输出将显示
memory 设置。buffers 设置的输出包含 max extends 和
next buffers 字段,代替了 max memory 和 next memory 字段。
图: 对于 memory 设置的 onstat -g buf 输出
Profile
Buffer pool page size: 2048
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
1190 1773 661359 99.82 16863 83049 185805 90.92
bufwrits_sinceckpt bufwaits ovbuff flushes
11243 115 0 42
Fg Writes LRU Writes Avg. LRU Time Chunk Writes Total Mem
0 0 nan 10883 32Mb
cache
# extends max memory next memory hit ratio last
0 128Mb 32Mb 90 11:31:17
Bufferpool Segments
id segment size # buffs
0 0x449f0000 32Mb 13025
----------------------------------
Buffer pool page size: 8192
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
0 0 11 100.00 4 16 4 0.00
bufwrits_sinceckpt bufwaits ovbuff flushes
0 0 0 1
Fg Writes LRU Writes Avg. LRU Time Chunk Writes Total Mem
0 0 nan 4 128Mb
cache
# extends max memory next memory hit ratio last
0 1280Mb 128Mb 90 11:31:41
Bufferpool Segments
id segment size # buffs
0 0x4928e000 128Mb 14988
----------------------------------
Fast Cache Stats
gets hits %hits puts
246854 244407 99.01 111147
输出描述
- Buffer pool page size
- 缓冲池中页面的字节数
- dskreads
- 将页面带入缓冲池的已执行你的磁盘读操作数。每次读操作读取一个或多个页面。
- pagreads
- 从磁盘读入缓冲池的页面数
- bufreads
- 从该缓冲池读取的页面内存映象次数
- %cached
- 为满足高速缓存页面映象的该缓冲池读取的页面百分比(而不是执行磁盘读取)。计算为 (bufreads - dskreads) / bufreads x
100。更高的百分比说明有更好的高速缓存性能。
- dskwrits
- 将更改的页面从缓冲池写回磁盘所执行的磁盘写入操作数。每次写入操作撰写一个或多个页面。
- pagwrits
- 从缓冲池写入磁盘的页面数
- bufwrits
- 写入该缓冲池的页面内存映象次数
- %cached
- 为满足高速缓存页面映象的该缓冲池写入的页面百分比(而不是执行磁盘写入)。计算为 (bufwrits - dskwrits) / bufwrits x
100 。
- bufwrits_sinceckpt
- 自上个 checkpiont 后页面内存映象写入该缓冲池的次数
- bufwaits
- 在该缓冲池内线程必须等待缓冲区内锁的次数。数字越大说明在相同页面上互不兼容的锁的多个线程之间的争用越多。
- ovbuff
- 为了创建空闲的缓冲区来读取另外一个受请求的页面而将更改了的缓冲区从该缓冲池写入磁盘的次数。如果 ovbuff
值很大,那么可能说明缓冲池还不够大,还不能容纳使用该缓冲池的应用程序所需的工作集,这可能导致性能降级。
- flushes
- 服务器为缓冲池内所有 dirty 缓冲区执行的大清空的次数。这可能由不同的原因引起,可能是作为 checkpoint
过程的一部分而执行此操作或缓冲池在清洁的缓冲区外运行(无论 LRU 清除活动是否正常)。
- Fg Writes
- 该缓冲池中访问缓冲区的非 I/O 清空程序线程写入磁盘的已更改缓冲区的数量。这个数字是 ovbuff 字段的超集。除了
ovbuff
字段计数的写入服务页面缺省值的次数,该值也包括由魔哥为了保持数据库记录和保留页的一致性而执行的操作所做的前景撰写,其目的是为了保证在特殊情况下崩溃恢复的准确性。
- LRU Writes
- 由 LRU 清除线程从该缓冲池将更改了的缓冲区写入磁盘的数量。如果缓冲池超过了指定在
lru_max_dirty 字段中 BUFFERPOOL 配置参数值或如果由于缓冲池溢出而发生前景撰写,那么将激活 LRU
清除程序。
- Avg. LRU Time
- LRU 清除程序用来清除单个 LRU 链所用的平均时间
- Chunk Writes
- 由 Chunk 清除操作将已更改的缓冲区写入磁盘的数量。Chunk 清除程序撰写了所有在缓冲池中的某个 chunk
内的已更改的缓冲区。这项操作在需要快速清除大量缓冲区(例如 checkpoint 进程和快速恢复)的各种特殊环境中进行。
- Total Mem
- 缓冲池的大小
- # extends
- 缓冲池被扩展的次数
- max memory (memory setting)
- 缓冲池的目标最大大小。该缓冲池的大小可以超过该值,但是不能多于一个分段的大小。The target maximum size of the buffer pool.
The actual size of the buffer pool can exceed this value, but not more than the size
of one segment.
- max extends (buffers setting)
- 缓冲池库被扩展的至多次数。(该字段没有在示例样本中显示)
- next memory (memory setting)
- 缓冲池的下一次要扩展的大小
- next buffers (buffers setting)
- 为该缓冲池下一次扩展所需的缓冲区数 (该字段没有在示例样本中显示)
- cache hit ratio
- 低于该缓冲池被扩展的读缓存的命中率
- last
- 上次缓冲池扩展的时间
- id
- 缓冲池段的 ID
- segment
- 缓冲池段的内部地址
- size
- 缓冲池段的大小
- # buffs
- 缓冲池段中缓冲区数
- Fast Cache Stats
- 快速缓存(减少需要访问缓冲池的时间类型的缓存)的统计信息
- gets
- 服务器在快速缓存中寻找缓冲区的次数
- hits
- 服务器发现它正在寻找快速缓存缓冲区的次数
- %hits
- hits 的百分比 ,即 hits*100/gets
- puts
- 服务器向快速缓存中插入缓冲区的次数