innodb命中率评估

超、凢脫俗 2024-04-17 19:07 134阅读 0赞

innodb 内存评估原则

通常InnoDB存储引擎的缓冲池的命中率不应该小于99%。

缓冲池命中率 = (Innodb_buffer_pool_read_requests)/(Innodb_buffer_pool_read_requests + Innodb_buffer_pool_read_ahead + Innodb_buffer_pool_reads)

  1. innodb\_buffer\_pool\_read\_requests

命中率 =————————————————————————————————————————————————-
(innodb_bufer_pool_read_requests + innodb_buffer_pool_read_ahead + innodb_buffer_pool_reads )

平均每次读取的字节数 = Innodb_data_read/Innodb_data_reads

Innodb_buffer_pool_reads:表示从物理磁盘读取的页数
Innodb_buffer_pool_read_ahead:预读的页数
Innodb_buffer_pool_read_ahead_evicted:预读的页数,但是没有被读取就从缓冲池中被替换的页的数量,一般用来判断预读的效率。
Innodb_buffer_pool_read_requests:从缓冲池中读取的次数。
Innodb_data_read:总共读入的字节数。
Innodb_data_reads:发起读请求的次数,每次读取可能需要读取多个页。

  1. mysql> show global status like 'innodb%read%';
  2. Innodb_buffer_pool_read_ahead_rnd 0
  3. Innodb_buffer_pool_read_ahead 651270
  4. Innodb_buffer_pool_read_ahead_evicted 792
  5. Innodb_buffer_pool_read_requests 6652087462
  6. Innodb_buffer_pool_reads 1643398
  7. Innodb_data_pending_reads 0
  8. Innodb_data_read 42994913280
  9. Innodb_data_reads 2635909
  10. Innodb_pages_read 2624075
  11. Innodb_rows_read 6299272374
  12. innodb\_buffer\_pool\_read\_requests

命中率 =————————————————————————————————————————————————-
(innodb_bufer_pool_read_requests + innodb_buffer_pool_read_ahead + innodb_buffer_pool_reads )

  1. 6644810356
  2. 命中率 = ---------------------------- = 99.96% 约接近 1 越好 (证明内存足够)
  3. 6644810356 + 651270 + 1643325

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ehcache3计算命中率

    ehcache3可以使用缓存命中率来衡量缓存的效率。命中率是指在缓存中查找所需数据时找到的比例。 计算命中率的公式如下: 命中率 = (命中次数 / 查询总次数) x 10