扩展问题,偶尔停机 - MySQL + Apache

扩展问题,偶尔停机 - MySQL + Apache

因此,我有几个运行 Apache 的 APP 服务器来处理我的 Web 应用程序的前端流量。

这是一个高流量环境,我在亚马逊的基础设施可以自动扩展这些 APP 服务器,并根据需要添加更多服务器。

这些 Web 服务器连接到一个大型专用的 MySQL 服务器。

有时候,特别是当我们遇到大量流量时,系统就会锁定。

当这种情况发生时,应用服务器将被锁定,MySQL 数据库上的最大连接数从大约 10-15 飙升至 1024(极限)

除非我重启 MySQL 服务器,否则一切会一直堵塞。然后,数据库上的一切都会恢复正常,Web 服务器最终也会稳定下来。

我的问题是:这里发生了什么事?

我的更具体的问题是:

  1. 为什么这些连接仍在使用而不是超时?
  2. 这更像是一个“先有鸡还是先有蛋”的问题:您认为是应用服务器出了问题,还是数据库出了错误导致应用服务器锁定?

多谢你们!

戴夫

答案1

造成这种情况的原因有很多。您很可能遇到了某种锁定问题。如果您使用的是 MyISAM 存储引擎,该引擎执行表级锁定,则尤其有可能出现这种情况。出现问题时,在命令行中键入“show processlist”或“show full processlist”以查看所有活动查询及其状态。一旦您知道导致问题的原因,您就可以开始找出解决问题的最佳方法,例如更改存储引擎、重新安排批处理作业、将 drupal 缓存从数据库服务器移出到 memcached 等。

相关内容