mysql查看缓冲池命中率

      缓冲池是一块内存区域,在对数据库进行读取操作时,首先将数据从磁盘中读取到缓冲池中,那缓冲池命中率则是客户端请求的数据在直接在缓冲池获取的比例。想象下如果缓冲池命中率很低,大部分数据都要从磁盘读取,可想而知一个数据库的性能。作为一个mysql OLTP系统,缓冲命中率最好在百分99以上。下面介绍几种mysql查看缓冲命中率的方法:
方法一:
mysql> show engine innodb status\G;
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2016-06-07 09:40:38 7f593136f700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 6 seconds       #以下信息是最近6秒的平均值
.............................................
.............................................
Buffer pool size        393208
Buffer pool size, bytes 6442319872
Free buffers            8807
Database pages          373575
Old database pages      137869
Modified db pages       43
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 1132357, not young 92318292
2.33 youngs/s, 2496.75 non-youngs/s
Pages read 2127203, created 1317816, written 1762250
18.00 reads/s, 3.83 creates/s, 14.33 writes/s
Buffer pool hit rate 998 / 1000, young-making rate 0 / 1000 not 314 / 1000      #缓冲池命中率
结果:最近6秒缓冲池命中率是99.8%

方法二:
mysql> show global status like 'innodb%read%';
+---------------------------------------+-------------+
| Variable_name                         | Value       |
+---------------------------------------+-------------+
| Innodb_buffer_pool_read_ahead_rnd     | 0           |
| Innodb_buffer_pool_read_ahead         | 839015      |               #预读次数
| Innodb_buffer_pool_read_ahead_evicted | 0           |
| Innodb_buffer_pool_read_requests      | 1497697965  |           #从缓冲池中读取页的次数
| Innodb_buffer_pool_reads              | 1227641     |                  #从物理磁盘读取页的次数
| Innodb_data_pending_reads             | 0           |
| Innodb_data_read                      | 34861846528 |                  #总共读入的字节数
| Innodb_data_reads                     | 2128711     |                     #总共读取的次数
| Innodb_master_thread_active_loops     | 63667       |
| Innodb_master_thread_idle_loops       | 24896       |
| Innodb_pages_read                     | 2127692     |
| Innodb_rows_read                      | 803908452   |
| Innodb_read_views_memory              | 2176        |
+---------------------------------------+-------------+
13 rows in set (0.00 sec)

缓冲池命中率=  Innodb_buffer_pool_read_requests/(Innodb_buffer_pool_read_requests+Innodb_buffer_pool_reads+Innodb_buffer_pool_read_ahead)= 1497697965/(1497697965+ 1227641+ 839015)=99.85%
平均读取的字节数= Innodb_data_read/  Innodb_data_reads=16376
可以看出系统的内存使用效率还是很高的

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29989552/viewspace-2116687/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29989552/viewspace-2116687/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值