InnoDB: page_cleaner问题处理
2021-12-06 本文已影响0人
这货不是王马勺
今日遇到一个zabbix用的数据库,因为增加了获取信息频率而产生InnoDB: page_cleaner相关报错的问题
解决办法是调整三个参数:
1.innodb_lru_scan_depth
页面清理线程扫描缓冲池以查找脏页以从缓冲池刷新到磁盘,每秒进行一次。
srv_LRU_scan_depth会控制从LRU上清理block并将其放到free list上的扫描深度,不光影响page cleaner线程,也会影响用户线程;
从其作用可以看出,当系统的IO比较空闲的时候,可以适当将这个参数设大,当IO吃紧时,需要适当减小
2.innodb_io_capacity_max
若你真的需要对它进行调整,最好的方法是要了解系统可以支持多大的 IOPS。
若用户使用了SSD类的磁盘,或者将几块磁盘做了RAID,当存储设备拥有更高的 IO速度时,完全可以将 innodbio_capacity值调得再高点,直到符合磁盘IO的吞吐量 为止。
默认 innodb_io_capacity_max=200
推荐配置如下:
innodb_io_capacity 它会直接决定mysql的tps(吞吐性能),这边给出参考:
sata/sas硬盘这个值在200
sas raid10: 2000
ssd硬盘:8000
fusion-io(闪存卡):25,000-50,000
3.innodb_io_capacity
配置建议,它是innodb_io_capacity_max的一半,默认innodb_io_capacity=100。同样,它对读无效对写有决定意义。