欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

MySQL刷脏

时间:2023-06-25
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,70IOPS10000 rpm FC,125IOPSSSD SATA,3000~4000IOPS 配置合理的脏页比例上限

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

配置项:innodb_flush_neighbors传统的磁盘连续读写性能最好,尽量刷连续的页SSD建议设为0(8.0已经默认0)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。