MySQL刷脏

MySQL刷脏

脏页的产生

  • 更新数据时,只更新了内存中的数据页,没有更新磁盘
  • 内存中数据页和磁盘中数据页不一致,称为脏页

刷脏

  • 将内存中数据页保存至磁盘
  • 同时,删除与此页相关的redo log,推进check point

在这里插入图片描述

为什么要刷脏?

  • 内存中的脏页太多,内存不足(会产生性能问题)
  • redo log文件写满,需要推进check point(会产生性能问题)
  • 系统空闲,提前刷脏,预防上述情况
  • MySQL关闭前,保存数据

避免被迫刷脏

  • 正确告知InnoDB,服务器的硬盘性能
  • 配置合理的脏页比例上限
  • 控制"顺便刷脏"策略

服务器IO配置

  • 配置项:innodb_io_capacity
  • 用来告知服务器的硬盘性能
fio -filename=iotest_file -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest
  • 常见IOPS:(I/O per second)
    • 7200 rpm SATA,70IOPS
    • 10000 rpm FC,125IOPS
    • SSD SATA,3000~4000IOPS

配置合理的脏页比例上限

  • 配置项:innodb_max_dirty_pages_pct:磁盘中页的数量和脏页数量比值
  • 当脏页比例接近此值,会加速刷脏
  • 建议保持默认值75

控制"顺便刷脏"策略

  • 配置项:innodb_flush_neighbors
  • 传统的磁盘连续读写性能最好,尽量刷连续的页
  • SSD建议设为0(8.0已经默认0)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值