首页/数据/数据库速查/刷脏能力参数(innodb_io_capacity / io_capacity_max)
性能与调优57 条

刷脏能力参数(innodb_io_capacity / io_capacity_max)

告诉 InnoDB 这块盘能干多少 IOPS:SSD 建议 2000-4000 起,NVMe 上万;设太小刷脏跟不上会导致 checkpoint 卡写。

数据库速查数据更新于 2026-10-12
innodb_io_capacity后台刷脏 IOPS 目标,默认 200
innodb_io_capacity_max紧急刷脏上限,默认 2 倍
io_capacity要匹配实际盘的类型与共享情况

查看与调整

查看与调整
SHOW VARIABLES LIKE 'innodb_io_capacity%';
SET GLOBAL innodb_io_capacity = 2000;
SET GLOBAL innodb_io_capacity_max = 4000;
SHOW STATUS LIKE 'Innodb_buffer_pool_pages_dirty';
同一块盘上还跑着 binlog、redo、备份任务时,io_capacity 越界会挤占正常读写;云盘看 IOPS 上限而不是盘名。

易错点

  • 机械盘照抄 SSD 建议值:盘直接被打爆,写延迟飞升
  • 不改参数只抱怨 checkpoint 抖动,实际是默认 200 对 NVMe 来说太保守

数据来源与参考

  • MySQL 8.0 Reference Manual: InnoDB Startup Options and System Variables

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌