我们在 EC2 的 Linux 主机上运行的 mysqld 存在严重的稳定性问题,它的所有数据和日志文件都存储在 EBS 卷上。我们保留一个slave纯粹是为了热备份和故障转移,当master宕机时,我们通常可以毫无问题地把slave作为master,然后创建一个新的slave。
但是我们的主人会倒下是很成问题的。master主机一直运行良好,但是mysqld什么都没有响应,甚至用kill -9也杀不掉。
这发生在我们的生产环境和暂存环境中,它们是相似的,但生产运行在大型实例(使用 Centos 5.2 x86_64)和暂存在中型实例(使用 Centos 5.2 i686)上。
有没有人在 EC2 中遇到过类似的 mysqld 稳定性问题,如果有,他们是如何处理的?
提前致谢。
如果即使使用 kill -9 mysqld 也不会死,那么问题几乎可以肯定是它处于不间断的睡眠状态等待磁盘 IO。这强烈表明您有一个无效的 EBS,这种情况有时会发生。如果您感觉过于乐观,您可以尝试联系 Amazon 支持,但最快的解决方案是创建一个新的 EBS 并使用它(希望您将使用一个不那么垃圾的存储单元)或尝试转移到不同的可用性区。是的,它们是胡说八道的选择,但 EC2 有时会出现这样的故障,你实际上被搞砸了。
同意。我们有一些长期运行的 ec2mysql 实例并且没有任何问题。这听起来像是特定于您的环境的硬件问题。
尝试以 root 身份连接(即 mysql root 用户,而不是您的普通 root 用户)。可能是mysql的连接太多,从而阻止了新的连接。mysql root 帐户不受这些限制,并且始终可以连接。