升级到MongoDB 5.0.4后服务启动失败报core-dump错误咨询
报错详情:
● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: failed (Result: core-dump) since Wed 2021-12-01 13:54:17 EST; 23s ago Docs: https://docs.mongodb.org/manual Process: 245014 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=dumped, signal=ILL) Main PID: 245014 (code=dumped, signal=ILL) Dec 01 13:54:16 JAXDBA1 systemd[1]: Started MongoDB Database Server. Dec 01 13:54:17 JAXDBA1 systemd[1]: mongod.service: Main process exited, code=dumped, status=4/ILL Dec 01 13:54:17 JAXDBA1 systemd[1]: mongod.service: Failed with result 'core-dump'.
故障排查步骤
报错核心标记signal=ILL是系统发送的非法指令信号,优先从硬件兼容性、配置合法性、权限三个维度排查:
- 验证CPU是否支持AVX指令集,执行命令:
grep avx /proc/cpuinfo,无输出则说明当前CPU不支持AVX,MongoDB 5.0及以上版本强制要求CPU支持AVX指令集,这是该报错的最常见原因。 - 校验配置文件合法性,执行命令:
mongod --config /etc/mongod.conf --validate,查看是否存在配置项格式错误、路径配置不存在等问题。 - 检查数据目录权限,确认配置文件中
storage.dbPath对应目录的所属用户组为mongodb,默认路径校验命令为:ls -ld /var/lib/mongodb。 - 检查是否有残留mongod进程占用资源,执行命令:
ps aux | grep mongod和lsof -i :27017排查进程和端口占用情况。
故障解决方案
根据排查结果对应处理即可:
- 确认CPU不支持AVX时二选一处理:
- 降级MongoDB至4.4.x及以下版本,该版本序列无需AVX指令集支持,兼容老旧CPU
- 更换搭载2011年后发布CPU的服务器,Intel Sandy Bridge及以上、AMD Bulldozer及以上型号CPU均支持AVX指令集
- 确认配置错误时,根据
--validate命令返回的报错提示修正/etc/mongod.conf配置项即可;目录权限异常时执行命令:chown -R mongodb:mongodb 你的数据目录路径修正权限。 - 确认残留进程/端口占用时,杀掉残留进程后重新启动服务即可。
内容的提问来源于stack exchange,提问作者Fahed B Ashraf
相关产品推荐
相关产品推荐

