我正在使用 Azure 应用服务运行大约 15 个 PHP Web 应用。这些应用程序中的大多数都连接到我的“Azure Database for MySQL 服务器”实例。这是一个基本层实例(1 个 vCore 和 2GB 内存)。
MySQL 实例托管大约 30 个小型数据库(大小在 1 到 100MB 之间)。
MySQL实例负载稳定且较低。 CPU 始终低于 20%,内存始终低于 50%,IO 甚至没有显示在 Azure 门户的指标中。
我的问题是这样的:
服务器偶尔会离线大约 1 或 2 分钟(最多 5 分钟)。我看到客户端应用程序尝试连接,它们挂起一段时间才最终收到错误:
SQLSTATE[HY000] [2006] MySQL 服务器已消失
这似乎是随机发生的。有时一周几次甚至一天一次。但有时几周都不会发生。
值得注意的是,当这种情况发生时,我会在门户的指标图表中看到内存下降峰值和 CPU 上升峰值,如下所示:
有人在 Azure Database for MySQL 上遇到过同样的问题吗?有人找到解决办法了吗?
我开始认为这是由 Azure 端的资源移动引起的,但我没有任何证据支持这一点。如果是这样,难道不应该在没有任何停机的情况下发生这种情况吗?
最佳答案
从使用第 4 代计算的基本 1 核心层扩展到使用第 5 代计算的基本 2 核心层似乎可以解决该问题。
但不确定是什么导致了这个问题。
关于mysql - Azure "MySQL server has gone away"仅一分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078221/