mysql lru scan depth_如何解决mysql警告:“InnoDB:page_cleaner:10...

InnoDB: page_cleaner: 1000ms intended loop took 4013ms. The settings might not be optimal. (flushed=1438 and evicted=0, during the time.)

问题是典型的MySQL实例,您对数据库的更改率很高.通过运行5GB导入,您可以快速创建脏页.在创建脏页时,页清理程序线程负责将脏页从内存复制到磁盘.

在你的情况下,我假设你不是一直做5GB的进口.所以这是一个异常高的数据加载速率,这是暂时的.您可以忽略警告,因为InnoDB会逐渐赶上.

以下是导致此警告的内部结构的详细说明.

每秒一次,页面清理程序扫描缓冲池以查找脏页以从缓冲池刷新到磁盘.您看到的警告显示它有大量要刷新的脏页,将一批它们刷新到磁盘需要4秒以上,而它应该在1秒内完成该工作.换句话说,它咬得比它能咀嚼的多.

您通过将innodb_lru_scan_depth从1024减少到256来调整此值.这减少了页面清除程序线程在每秒一次循环期间搜索脏页的缓冲池的距离.你要求它采取较小的咬伤.

请注意,如果您有许多缓冲池实例,则会导致刷新以执行更多工作.它会扼杀每个缓冲池实例的innodb_lru_scan_depth工作量.因此,您可能会在不降低扫描深度的情况下通过增加缓冲池的数量而无意中导致此瓶颈.

innodb_lru_scan_depth的文档说“小于默认值的设置通常适用于大多数工作负载.”听起来他们给这个选项一个默认值太高的值.

您可以使用innodb_io_capacity和innodb_io_capacity_max选项对背景刷新使用的IOPS进行限制.第一个选项是InnoDB将要求的I / O吞吐量的软限制.但这个限制是灵活的;如果刷新落后于新脏页面创建的速度,InnoDB将动态增加超出此限制的刷新率.第二个选项定义了InnoDB可以提高冲洗率的更严格限制.

如果刷新率可以跟上创建新脏页的平均速度,那么你就可以了.但是如果你一直创建脏页的速度比刷新的速度快,那么最终你的缓冲池将填满脏页,直到脏页超过缓冲池的innodb_max_dirty_page_pct.此时,刷新率将自动增加,并可能再次导致page_cleaner发送警告.

另一个解决方案是将MySQL放在具有更快磁盘的服务器上.您需要一个可以处理页面刷新所需吞吐量的I / O系统.

如果您在平均流量下始终看到此警告,则可能是在此MySQL服务器上尝试执行过多的写入查询.可能是时候向外扩展,并将写入分割为多个MySQL实例,每个实例都有自己的磁盘系统.

阅读有关页面清洁的更多信息:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,你遇到了两个不同的错误。 第一个错误是`io.IOException: Permission denied`和`io.FileNotFoundException: /storage/emulated/0/******: open failed: ENOENT (No such file or directory)`。这个错误通常是由于权限问题或文件路径错误引起的。尽管你在AndroidManifest文件中添加了读写外部存储的权限,但仍然可能存在其他原因导致权限被拒绝或文件路径不存在。你可以尝试以下解决方法: 1. 确保你的应用程序在运行时具有读写外部存储的权限。你可以在应用程序设置中检查权限,并确保已授予相应的权限。 2. 检查文件路径是否正确。确保文件路径中的目录和文件名都是正确的,并且文件确实存在于该位置。 3. 如果你正在使用Android 10或更高版本,请注意在访问外部存储时需要使用`MediaStore` API。你可以使用`MediaStore` API来获取正确的文件路径并进行读写操作。 第二个错误是`[Error] lru.h: No such file or directory`。这个错误通常是由于缺少所需的头文件或库文件引起的。在编译或构建过程中,编译器无法找到名为`lru.h`的头文件。你可以尝试以下解决方法: 1. 确保你已经安装了所需的库文件和头文件。你可以通过在终端中运行适当的命令来安装缺少的库文件和头文件。 2. 检查编译器的搜索路径是否包含所需的头文件和库文件。你可以通过设置适当的编译器选项或环境变量来添加搜索路径。 3. 如果你正在使用第三方库,确保你已经正确地配置了库的路径和依赖关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值