【问题标题】:Azure "MySQL server has gone away" for one minute onlyAzure“MySQL 服务器已消失”仅一分钟
【发布时间】:2018-12-07 06:15:35
【问题描述】:

我正在使用 Azure App Services 运行大约 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 server has gone away

这似乎是随机发生的。有时一周甚至一天几次。但有时它不会发生数周。

但值得注意的是,当它发生时,我在门户的指标图表中看到内存下降峰值和 CPU 上升峰值,如下所示:

有人在 Azure Database for MySQL 上遇到过同样的问题吗?有人找到解决方案了吗?

我开始认为这是由 Azure 方面的资源移动引起的,但我没有任何证据支持这一点。如果是这样,那不应该在没有停机的情况下发生吗?

【问题讨论】:

  • 您能否将您的服务器名称和它所在的 Azure 区域发送给我? andrea.lam@microsoft.com
  • 我已将每封电子邮件的名称和地区发送给您。谢谢。
  • 附加信息请求。在 pastebin.com 上发布并分享链接。 RAM 大小,MySQL 主机服务器的 # 核心 文本结果:B)显示全球状态;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序;和 可选的非常有用的信息,如果可用,包括 - htop 或 top 或 mytop 用于大多数活动应用程序,ulimit -a 用于 linux/unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,用于服务器工作负载调整分析以提供建议。

标签: mysql azure azure-web-app-service


【解决方案1】:

从带有 Compute Gen 4 的 Basic 1 核心层扩展到带有 Compute Gen 5 的 Basic 2 核心层似乎解决了这个问题。

虽然不确定是什么导致了问题。

【讨论】:

    【解决方案2】:

    我从 2019 年 5 月开始遇到此错误。

    如果我碰巧在 mariadb 服务器上使用 ssh 连接并且 htop 正在运行,我可以看到 rsyslog 突然发疯。它使 CPU 陷入困境,网络连接变得无响应。 CPU 和网络活动未显示在 Azure 中,但在网络恢复后在 ssh 会话中运行 w 表明在过去 15 分钟内 CPU 负载肯定非常高。

    我将其追溯到 OMS 代理。当该服务在 mariadb 服务器上被终止时,服务器运行没有任何问题。一旦OMS代理启动,由于与服务器机器的网络连接无响应,24小时内客户端弹出“Mysql has gone away”。

    可以从 Azure 门户卸载 OMS 代理,但它会在 48 小时内恢复。

    我发现摆脱 OMS 代理的唯一方法是在 linux 服务器上也停止 walinuxagent。

    向上扩展服务器可能会解决问题,因为您有更多的 CPU 能力来处理由 OMS 代理引起的额外 CPU 负载。我宁愿杀掉 OMS 代理和walinuxagent,也不愿花更多的钱在一个庞大的服务器上。

    编辑:

    事实证明 OMS 已安装,因为 VM 是 Log Analytics 工作区的一部分(在搜索栏中搜索 Log Analytics 工作区)。从工作区中删除 VM 会立即卸载 OMS。无需停止walinuxagent。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2011-06-07
      • 2010-12-20
      • 2013-06-13
      • 2017-01-21
      相关资源
      最近更新 更多