没错,我们将我们的一个主要站点迁移到了一个新的 AWS 机器上,因为它可以让我们比以前拥有更多的控制权,并且可以为我们自己提供未来的保障。
大约一个月前,我们开始遇到每天同一时间内存使用率过高的问题。早上,我们运行导出程序,将数据导出到文件,然后通过 FTP 传输到本地机器进行处理。问题与导出的大致时间相吻合,但当我们有一天没有运行导出时,服务器仍然遇到相同的问题。从那时起,导出程序在一天中的其他时间运行,以监控内存使用情况,看看是否会出现峰值。结论是导出没有问题,几乎不会影响内存。内存使用率没有明显变化。
当问题发生时,其效果是杀死 mysql 并要求我们重新启动该进程。我们认为这可能是 mysql 内存问题,但可能只是 mysql 最先感受到了这一点。查看日志,在内存使用率达到 90% 之前没有运行任何特定的查询。
当它在早上 9:20 左右发起攻击时,内存使用率会从接近恒定的 25% 飙升至 98%,并很快杀死 mysql 以自救。它通常需要大约 3-4 分钟才能停止运行。
当天的那个时间没有运行任何 cron 作业,而且我们也没有注意到问题期间流量激增。如能得到任何帮助,我们将不胜感激!谢谢。
答案1
尝试使用 Percona Toolkit 中的 pt-stalk 记录发生这种情况时的详细系统信息。这里的信息真的不够,甚至无法开始解决您的问题。