14.4.3.6 Fine-tuning InnoDB Buffer Pool Flushing 微调 InnoDB Buffer Pool 刷新:
innodb_flush_neighbors and innodb_lru_scan_depth 配置选项 让你微调flush处理的某些方面
对于InnoDB buffer pool.那些选项主要帮助密集写负载。对于大量的DML 活动,
flush可能落后 如果它不够积极,导致在缓冲池过度使用
或者 写磁盘由于flush 可以侵蚀你的I/O能力 如果机制过于激进。
设置依赖你的负载,数据访问模式,存储配置(比如,数据是否存储在HDD或者SSD设备).
对于繁重的负载的系统,或者 工作覆盖波动很大,几个配置选项让你微调flush 行动对于InnoDB 表。
innodb_adaptive_flushing_lwm
innodb_max_dirty_pages_pct_lwm
innodb_io_capacity_max
innodb_flushing_avg_loops
InnoDB 自适应刷新机制 不适合于所有情况,它提供了最大的效益 当redo log 是出于危险的填充状态。
innodb_adaptive_flushing_lwm 选项指定一个“low water mark”选项
当到达阀值时, InnoDB 启用自适应刷新尽管 innodb_adaptive_flushing 选项没有指定
mysql> show variables like '%innodb_adaptive_flushing%';
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| innodb_adaptive_flushing | ON |
| innodb_adaptive_flushing_lwm | 10 |
+------------------------------+-------+
2 rows in set (0.00 sec)
如果flush 活动远远落后,InnoDB 可以flush 更积极相比 innodb_io_capacity的指定
innodb_io_capacity_max 代表一个I/O能力的上线用于紧急情况,因此 I/O不会消耗所有的服务器能力
InnoDB 尝试flush 数据从buffer pool,脏页的比例不会超过 innodb_max_dirty_pages_pct的值。
默认值是 innodb_max_dirty_pages_pct是75