##解读mysql缓冲池的一些参数
---BUFFER POOL 7
Buffer pool size 81919 #innodb_buffer_pool第8个池的总页面,每个页面大小16kb,1.25GB
Free buffers 1025 #池中空闲池可用的页面
Database pages 78154 #buffer池中的页面大小
Old database pages 28829 #LRU列表中midpoint后的页面数量
Modified db pages 3873 #被修改的页面数量,也就是我所日常所说的脏页
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 83925753, not young 344007965 #显示LRU中移动到前端的次数
0.00 youngs/s, 0.00 non-youngs/s
Pages read 4517544, created 644906, written 40378658
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 #缓冲命中率>95%算正常,小于95%,需要观察是否有全表扫描
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 78154, unzip_LRU len: 0 #LRU列表中的页数量(16kb),一共有78154个页,unzip_LRU(<16kb,包括4k,8k的页面) 0个页,一般在innodb引擎表的压缩中会使用到。
I/O sum[4]:cur[0], unzip sum[0]:cur[0]
注:对于LRU和unzip_LRU的前提是使用压缩
LRU:管理非压缩(16kB页大小)的数据
unzip_LRU:管理压缩(<16kB页大小)的数据
对于页大小为2KB,4KB, 8KB大小的页如何管理, 如下所示:
+++++++++++++++++++++++++++++++++++++++
unzip_LRU------------------------unzip_LRU------------------------------------------------LRU
----4KB------------------------------>8KB------------------------------------------------->16KB
(1)优先查找,找到直接分配
--------->(2)4KB的unzip_LRU中未找到,在此查找,找到后,分为2个4KB页
----->(3) 上面都未找到,从LRU中取一个列表分为8KB+2*4KB,并放入对应unzip_LRU中
++++++++++++++++++++++++++++++++++++++++
16. 缓冲命中率
select pool_id,hit_rate,pages_made_young,pages_not_made_young
from information_schema.innodb_buffer_pool_stats;
select table_name,space,page_number,page_type
from innodb_buffer_page_lru
where space=1;