azure“mysql服务器已离开”仅一分钟

wwwo4jvm  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(413)

我正在使用azure应用程序服务运行大约15个php web应用程序。大多数应用程序都连接到我的“azure database for mysql server”示例。这是一个基本层示例(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方面的资源移动引起的,但我没有任何证据支持这一点。如果是这样的话,那不是应该在没有任何停机的情况下发生吗?

ncgqoxb0

ncgqoxb01#

我在2019年5月开始遇到这个错误。
如果我碰巧在mariadb服务器上连接了ssh htop 我看得出来,他在跑 rsyslog 突然发疯了。它使cpu陷入停滞,网络连接变得无响应。cpu和网络活动在azure中不显示,但正在运行 w 在ssh会话中,网络恢复后显示在过去15分钟内cpu负载肯定非常高。
我追查到oms特工。当mariadb服务器上的服务被终止时,服务器运行没有任何问题。当oms代理启动后,由于与服务器的网络连接没有响应,客户机上会在24小时内弹出“mysql已离开”。
可以从azure门户卸载oms代理,但它会在48小时内返回。
我发现摆脱oms代理的唯一方法就是停止 walinuxagent 在linux服务器上也是如此。
扩展服务器可以解决这个问题,因为您有更多的cpu能力来处理oms代理引起的额外cpu负载。我宁愿杀了oms探员 walinuxagent 而不是花更多的钱在一个扩展的服务器上。
编辑:
安装oms是因为vm是日志分析工作区的一部分(在搜索栏中搜索日志分析工作区)。从工作区中删除vm立即卸载oms。没有必要停下来 walinuxagent .

bksxznpy

bksxznpy2#

从使用compute gen 4的基本1核心层扩展到使用compute gen 5的基本2核心层似乎解决了这个问题。
不知道是什么导致了这个问题。

相关问题