注册
达梦数据库在麒麟V10SP1操作系统上被异常oom-kill案例分享
培训园地/ 文章详情 /

达梦数据库在麒麟V10SP1操作系统上被异常oom-kill案例分享

黄鹏 2023/08/25 2243 0 0

1.数据库服务器环境以及配置

【CPU】
Hygon C86 7285 32-core Processor
【OS内核版本】
4.19.90-23.8.v2101.ky10.x86_64
【OS镜像版本】
Kylin Linux Advanced Server V10 (Tercel)-0518-x86
【达梦数据库版本】
8.4

2.问题现象描述

发现生产环境数据库异常宕机,dmwatcher将dmserver拉起后依然反复宕机。达梦日志中未发现任何报错信息。

3.问题分析

分析操作系统的messages日志,日志记录到了dmserver的进程被系统oom-kill掉的日志信息。图片1.png
进一步分析系统日志,发现产生OOM的原因是kmalloc申请内存时导致。再从系统日志的堆栈报错信息中,分析到是申请物理上连续的内存时,内存碎片化导致申请不到,从而触发了OOM。
图片2.png
扩大搜索范围,查看故障产生时间17:48左右的系统日志上下文,发现有操作系统组件audit服务内存溢出的信息报出。
图片3.png
通过咨询麒麟操作系统官方技术支持得知,当前操作系统上的audit服务存在bug,导致内存溢出。

4.问题分析结论

通过如上分析过程,dmserver进程被kill掉的原因为麒麟操作系统组件audit内存溢出,导致dmserver申请到溢出部分的内存地址时,无法正常申请到连续内存,触发操作系统kernel异常,操作系统强制kill掉了dmserver进程。

5.修复方案

升级操作系统的audit组件到audit-3.0-5.se.12.ky10及其以上版本。
该问题在我司环境中已多次复现,并非偶发现象,强烈建议大家在部署达梦数据库前的环境检查中,加入检查audit组件版本的步骤。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服