首页 > 解决方案 > 如何计算页面清理线程每秒执行的工作量?

问题描述

我尝试调整 InnoDB 缓冲池刷新参数。

在 MySQL 5.7 手册中

我的问题是:如何计算页面清理线程每秒执行的工作量?

标签: mysqlinnodbmysql-5.7

解决方案


运行 SQL 命令:

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_flushed'

每秒一次。将值与前一秒进行比较。

该值从一秒到下一秒的差值是页面清理器请求刷新到磁盘的脏页数。

例子:

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_flushed';
+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| Innodb_buffer_pool_pages_flushed | 496786650 |
+----------------------------------+-----------+

...wait a moment...

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_flushed';
+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| Innodb_buffer_pool_pages_flushed | 496787206 |
+----------------------------------+-----------+

所以在我等待的那一刻,页面清理器刷新了 556 页。

这项工作的上限是一个复杂的计算,涉及到几个 InnoDB 配置选项。阅读我对如何解决 mysql 警告的回答:“InnoDB:page_cleaner:1000ms 预期循环花费了 XXX 毫秒。设置可能不是最佳的”?有关它如何工作的描述。


推荐阅读