【云小课】【第8课】MySQL数据库频繁出现OOM问题该如何化解

举报
数据库的小云妹 发表于 2020/04/15 16:51:20 2020/04/15
【摘要】 MySQL数据库帮您快速定位与解决频繁出现OOM问题。

0.png


公司一些数据库开始出现不规律的OOM( “out of memory” ,超出内存空间,即内存不足。),好几次出现业务不可用场景,而且时长都超过半小时,莫着急,小编今天带您快速了解, MySQL数据库频出现OOM问题该如何化解

1.jpg


大神:你把7天以内的内存使用历史记录说一下。


小明:这7天的内存持续增高。


大神:首先,你使用MySQL自身提供的performance_schema,分析哪块内存区域消耗最大且持续增长;其次,看看最近是否有业务变更,以及新模块涉及的语句是什么。


小明:大神,根据你的建议,我们找到一个重大突破口,发现这么一个问题:表数量较大(1w+),innodb memory持续增长,慢语句中发现大量重复频繁元数据查询语句。


大神:自建数据库绝大部分环境都会忽略掉一个设置,即内存管理器使用系统自带的glibc库,在一些情况下内存存在持续增长并达到最大值,而且很长时间内不会释放一个潜在问题。如果表数量较大,且频繁查询元数据会造成内存碎片无法及时清理,并最终导致系统出现OOM


小明:纳尼,还有这种情况,我这就去查查。出问题的数据库确实是这么一个组合: MySQL数据库某分支版本+安装采用系统自带内存管理器+一个新模块上线+不定期的查询元数据,综合导致了OOM问题。


大神:OOM问题在数据运维中经常会出现,影响较大,需要规避,而华为云数据库MySQL就很好地做到了这一点。它不是简单的将数据库服务化,而是采用了jemalloc内存管理器,不存在内存回收问题,且内存管理性能更优;

同时内核对innodb_buffer_pool_size进行了内控,可以避免用户设置超过实际物理内存的失误,这也是华为云数据库稳定背后的一个细节体现。

小明:听起来很腻害的样子!我得赶紧试一下。

大神:华为云数据库将操作系统、数据库版本、数据库默认设置、内核优化形成一个最优组合呈现给用户,让用户即开即用,简单省心。就像4s店提车一样,可以立马上路。


小明:问题已解决,客户系统运行稳定,华为云数据库MySQL真牛!不过,是否还会有复发的风险呢?

大神:华为云数据库MySQL会给用户提供合理的默认设置,但OOM的另外一个关键在于“怎么用”,这里我给你一个锦囊妙计,你可以根据以下公式来推算和配置数据库合适的总内存,这样就可以避免了OOM问题。

2.jpg


小明:太好了,以后可以少加班了。

大神:认准华为云数据库MySQL,化解OOM不在话下,高效安全又可靠。

 

以上就是供应商-华为云为您整理的MySQL数据库频繁出现OOM问题该如何化解,您可以在云社区参与讨论,也可前往华为云帮助中心:云数据库 MySQL了解更详细的解答。






【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200