开发者社区> 问答> 正文

buffer pool 缓冲池相关问题是什么?

buffer pool 缓冲池相关问题是什么?

展开
收起
游客4skzfvnrxrzbi 2022-01-04 15:57:39 558 0
1 条回答
写回答
取消 提交回答
  • 所有表的数据页存都放在 buffer pool 中,查询执行的时候如果需要的数据页直接命中 buffer pool,则就没有物理 IO 的产生,SQL 执行的效率较高,buffer pool采用 LRU 算法管理缓存的数据页,所有的脏页放到 Flush list 链表。RDS MySQL InnoDB buffer pool 的大小设置为规格内存的 75%,这部分内存通常是实例内存中占比最大的。

    buffer pool 相关的常见问题:

    1. 数据页没有足够的预热,导致查询的延迟较高。通常发生在实例发生过重 启、冷数据读取或内存不足,缓冲池命中率较低的场景,建议升级实例规 格或大促前预热数据来避免这种问题。

    2. 脏页累计太多。当当前未刷脏的最老 lsn 和当前 Lsn 的距离超过 76%时, 会触发用户线程同步刷脏,引发实例严重的性能下降。优化方式是业务均 衡写负载,避免写入吞吐过高、调整刷脏参数、升级实例规格等。

    3. 大规格内存实例 innodb_buffer_pool_instances 设置较小,高 QPS 负载情况下,缓冲池的锁竞争会比较激烈。建议高规格内存的实例 innodb_buffer_pool_instances 设置为 8 或 16,甚至更高。

    资源来源于《阿里云数据库运维实战问题改》

    https://developer.aliyun.com/topic/download?spm=a2c6h.20345107.J_6399686890.1.2e1e17dbzKUX5r&id=8198

    2022-01-04 17:22:32
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载