mysql - 内存满后MySql自动重启
问题描述
我们在 CloudSql 上使用 MySql 已经有一段时间了。显然,我们从 Mysql 5 开始,但经过漫长的等待和 Mysql8 的最终版本,我们决定升级我们的数据库服务器。正如标题所宣传的那样,我们现在看到了一种奇怪的内存利用行为。正如您在此处看到的,它会不断填满,直到达到服务器最大资源,然后重新启动并再次开始填满。
我的意思是我们的一项服务可能存在问题,但在升级之前,我们的内存消耗看起来像这样: 所以你可以看到,内存消耗或多或少是恒定的。
此外,我们在升级到 mysql8 并从 db-n1-standard-1 切换到 db-n1-standard-2 时增加了资源,以便在数据增长时拥有更多可用资源。
有谁知道这种行为?Mysql5到8有变化吗?我没有找到任何关于它的信息。刚刚发现一些笔记,Mysql尽可能多地占用内存是正常的。但我仍然想知道为什么它没有在 Mysql5 上。
有关配置的更多详细信息:
- 我们正在为 HA 使用只读副本
- 二进制日志已激活
- 使用 FILE 输出启用慢查询日志。
其他一切都是默认的 CloudSql 配置。
任何帮助深表感谢。
最好的问候,克里斯
解决方案
事实上,MySQL 8 似乎比 MySQL 5 消耗更多的内存。正如文章MySQL 8 和 MySQL 5.7 Memory Consumption on Small Devices 的作者所做的一些测试所示,相同 VM 设置下版本 8 使用的内存为远高于版本 5,包括常驻内存和虚拟内存——尽管这些是在小型 VM 中进行的测试,但这很好地表明这也发生在更大的配置中。
所以,是的,看起来,正如你所提到的,Mysql 尽可能多地占用内存是正常的,但事实上,MySQL 8 比 5 消耗更多的内存。
推荐阅读
- react-native - 当用户在请求期间将应用程序移至后台时如何继续网络请求?
- r - 基于 R 中的多条曲线/数据集绘制平均曲线
- python-3.x - 无法使用 BeautifulSoup 获取 Nasdaq100 未来的 span 内容
- regex - 将匹配 /x/y 的 URL 正则表达式,但也匹配 /x
- javascript - 用于捕获动态生成的非子元素的 JavaScript 事件
- r - 使用列索引时,R ddply 忽略拆分因子
- javascript - 如何防止 Chartjs 条形图中的边栏被剪裁?
- python-3.x - Discord.py 如何判断玩家是否发送了任何类型的消息
- websocket - 你怎么能指定一个返回 Observables 的 API?
- javascript - if 语句不起作用并停止整个函数的工作