在 EC2 中的 Linux 主机上运行的 mysqld 存在严重的稳定性问题,其所有数据和日志文件都存储在 EBS 卷上。我们保留一个从服务器,仅用于热备份和故障转移,当主服务器发生故障时,我们通常可以毫无问题地将该从服务器启动为主服务器,然后创建一个新的从服务器。
但这是非常问题是我们的主服务器会突然宕机。主服务器仍然运行良好,但 mysqld 不会响应任何操作,甚至无法使用 kill -9 将其杀死。
这发生在我们的生产和登台环境中,它们是相似的,但生产运行在大型实例(使用 Centos 5.2 x86_64)上,而登台运行在中型实例(使用 Centos 5.2 i686)上。
是否有人在 EC2 中遇到过类似的 mysqld 稳定性问题?如果是,他们是如何处理的?
提前致谢。
答案1
如果即使使用 kill -9 mysqld 也不会死机,那么问题几乎肯定是它处于不间断休眠状态,等待磁盘 IO。这强烈表明您的 EBS 有问题,这种情况有时会发生。如果您过于乐观,可以尝试联系 Amazon 支持,但最快的解决方案是创建一个新的 EBS 并使用它(希望您使用的存储单元不那么糟糕)或尝试移动到不同的可用区域。是的,它们是胡扯的选择,但 EC2 有时会出现这样的故障,您实际上就完蛋了。
答案2
同意。我们有一些长期运行的 ec2mysql 实例,没有出现任何问题。这听起来像是您环境特有的硬件问题。
答案3
尝试以 root 身份连接(即 mysql root 用户,而不是您的普通 root 用户)。可能与 mysql 的连接过多,从而阻止了新的连接。mysql root 帐户不受这些限制,并且始终可以连接。