我正在为 Moodle 安装运行一个 mysql 数据库后端,几个月后性能确实开始受到影响(某些页面加载时间长达 30 秒)。在 InnoDB 缓冲池中调查时,我发现缓冲池大小似乎是正确的(innodb_buffer_pool_wait_free = 0)。但是,我还发现我的读取未命中率 (52%) 非常高,而且要刷新的页面数量似乎相当多(3100 万)。我目前正在运行慢查询日志,但是页面加载的延迟似乎太多了,不能仅仅来自未优化的查询。
我一直无法找到任何解释为什么这两者都如此之高。有没有人解释为什么 Read Misses 和 Pages To Be Flushed 会有这些结果?
更新:我在预定的停机期间每周重新启动服务器。我仍然无法想象为什么这会变得如此之大。没有内置自动刷新机制吗?