Azure MySQL服务器内存不足问题

6ljaweal  于 2023-05-23  发布在  Mysql
关注(0)|答案(1)|浏览(205)

背景:

我有一个用于MySql的Azure数据库单服务器示例。数据库有12个非常小的表(每个表<= 10行)。这些表(仅)由C#应用程序中每天运行约20000次的自动测试查询。测试运行非常简单的查询,其中一些还创建了一个临时表,然后立即删除它。服务器为Basic,2个vCore,50 GB,MySql版本8.0。

问题

最近,我们看到许多测试失败,并显示以下错误消息:
1.内存不足;检查mysqld或其他进程是否使用了所有可用内存;如果没有,您可能必须使用'ulimit'来允许mysqld使用更多内存,或者您可以添加更多交换空间
1.访问服务器时出错。请重试或报告您的问题。
1.读取结果集失败---> System.IO.IOException:无法从传输连接读取数据:连接被对等体重置
查看过去7天的内存使用情况,似乎没有问题,平均使用率约为26%,最大使用率略高于30%:

我阅读了Azure文档(https://learn.microsoft.com/en-us/azure/mysql/single-server/how-to-troubleshoot-low-memory-issues)来解决内存问题,但似乎没有任何内容与我的场景相关。如前所述,数据库非常小,表也非常小,只能对它运行简单的查询。我想在增加RAM /扩展之前尝试了解发生了什么。
任何提示都会非常感激:)

gajydyqb

gajydyqb1#

我的理解是,您正在Azure MYSQL单服务器中获得内存不足的错误消息。首先,我要说的是尝试从Azure MYSQL Single迁移到灵活的服务器,这最适合需要区域弹性,可预测性能,最大限度地控制IOPS扩展,自定义维护窗口和成本优化控制的生产工作负载。https://learn.microsoft.com/en-us/azure/mysql/single-server/whats-happening-to-mysql-single-server。要解决此问题,请尝试在出现故障时的测试运行期间专门监视内存使用情况。这将给予你更好地了解在关键时期如何使用内存。您可以使用Azure门户指标或监视工具来收集此信息。如果内存问题错误仍然存在,我建议尝试增加到更高的层计划。
此外,监视有关服务器的数据可帮助您排除故障并优化工作负载。Azure Database for MySQL提供了各种指标,给予深入了解服务器的行为。所有Azure指标的频率都是一分钟,每个指标提供30天的历史记录。您可以配置有关指标的警报。有关分步指导,请参见How to set up alerts。其他任务包括设置自动操作、执行高级分析和归档历史记录。有关详细信息,请参阅Azure Metrics概述。

指标列表这些指标适用于Azure Database for MySQL:关于https://docs.microsoft.com/en-us/azure/mysql/single-server/concepts-monitoring

潜在增加vcore永久增加资源(内存层vcore等),从长远来看会付出更多。查询内存使用的主要原因:使用Microsoft Intelligent Performance工具来浏览被认为是顶级使用者的查询,并了解缺失的索引沿着对工作负载的建议和全面分析。Query store

相关问题