华为云计算 云知识 MySQL数据库频繁出现OOM问题该如何化解
MySQL数据库频繁出现OOM问题该如何化解

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

MySQL数据库频繁出现OOM问题该如何化解

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

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

大神:首先,你使用MySQL自身提供的performance_schema,分析哪块内存区域消耗最大且持续增长;

其次,看看最 近是否有业务变更,以及新模块涉及的语句是什么。

小明:大神,根据你的建议,我们找到一个重大突破口,发现这么一个问题:表数量较大(1w+),innodb memory

持续增长,慢语句中发现大量重复频繁元数据查询语句。

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

碎片无法及时清理,并最终导致系统出现OOM。

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

大神:OOM问题在数据运维中经常会出现,影响较大,需要规避,而华为 云数据库MySQL 就很好地做到了这一点。

它不是简单的将数据库服务化,而是采用了jemalloc内存管理器,不存在内存回收问题,且内存管理性能更优;

同时内核对innodb_buffer_pool_size进行了内控,可以避免用户设置超过实际物理内存的失误,这也是华为云数

据库稳定背后的一个细节体现。

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

大神:华为 云数据库 将操作系统、数据库版本、数据库默认设置、内核优化形成一个最优组合呈现给用户,让用户即开

即用,简单省心。就像4s店提车一样,可以立马上路。

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

大神:华为云数据库MySQL会给用户提供合理的默认设置,但OOM的另外一个关键在于“怎么用”,这里我给你一个

锦囊妙计,你可以根据以下公式来推算和配置数据库合适的总内存,这样就可以避免OOM问题。

公式来推算和配置数据库合适的总内存

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

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

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

上一篇:修改策略UpdatePolicy 下一篇:OBS存储类别

云数据库 RDS for MySQL

 

云数据库 RDS for MySQL拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,让您更加专注业务发展。