MySQL 速度很慢,但删除磁盘缓存后速度加快

MySQL 速度很慢,但删除磁盘缓存后速度加快

我的 Linux MySQL 服务器非常繁忙,并且拥有庞大的数据库。

服务器通常在平均负载2或更低的情况下工作。

该服务器具有软件 raid(mdadm),目前正在重建。

今天有几次,MySQL 变慢了,平均负载达到 200-300-500。

同时 iostat 也不大 – 最多 20-30%。

目前,交换已关闭,因为我认为它会导致问题。

重启 MySQL 没有用。如果我们重启服务器,几个小时后一切都会恢复正常。

上次,我决定停止 MySQL 并删除缓存,而不是重新启动。我这样做了:

sync; echo 1 > /proc/sys/vm/drop_caches
sync; echo 2 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches

(是的,我连续做了三次)

令我惊讶的是,当我启动 MySQL 时,一切都恢复正常。

可能存在什么问题?我能否以某种方式自动执行“删除缓存”以防止服务器至少在接下来的几天内变慢。

答案1

RAID 重建后,我们再次重启服务器,一切就恢复正常了。

我们认为,在 RAID 重建期间,Linux 使用了大量内存,而服务器实际上已经内存不足。

答案2

答案可以通过发布到您的原始问题来提供:
主机上可用的 RAM

SHOW GLOBAL STATUS;
SHOW GLOBAL VARIABLES;
SHOW ENGINE INNODB STATUS;

相关内容