Ubuntu20.04下新安装MongoDB5.0.2启动崩溃core-dump问题求助
问题根因分析
你提供的ulimit资源配置符合MongoDB运行要求,可排除资源限制导致的启动失败。本次故障的核心触发原因是:
- MongoDB 5.0及更高版本的官方预编译包,默认依赖x86架构CPU的AVX指令集,你日志中出现的
code=dumped, signal=ILL、trap invalid opcode是典型的程序尝试执行CPU不支持的指令时报错。 - 结合你使用VMware ESXi虚拟化平台的场景,该问题通常分为两种情况:
- 宿主机物理CPU本身为老旧型号,不支持AVX指令集
- 虚拟机未开启AVX指令集透传,导致Ubuntu客户机无法识别到AVX支持
验证方法
执行以下命令验证当前系统是否支持AVX指令集:
grep -o avx /proc/cpuinfo
如果命令无任何输出,即可确认是AVX支持缺失导致的故障。
解决方案
你可以根据实际场景选择以下任意一种方案解决:
- 方案1:宿主机CPU支持AVX时,调整ESXi虚拟机配置
- 先关闭运行的Ubuntu虚拟机
- 在ESXi管理界面编辑该虚拟机配置:依次进入「虚拟机选项」->「高级」->「编辑配置」
- 新增两个配置参数:
vmx.allowNested = "TRUE"cpuid.allowAdvancedFeatures = "TRUE"
(若你使用ESXi 6.7及以上版本,也可以直接在CPU配置项中勾选「向客户机操作系统公开AVX/AVX2」选项,无需手动加参数)
- 保存配置后启动虚拟机,重新执行验证命令确认AVX可识别后,再启动mongod服务即可。
- 方案2:宿主机CPU不支持AVX时,降级MongoDB到4.4.x版本
MongoDB 4.4及更低版本的官方预编译包不强制依赖AVX指令集,可正常在无AVX支持的CPU上运行,操作步骤:- 卸载已安装的MongoDB 5.0相关包:
apt remove --purge mongodb-org* -y && apt autoremove -y - 配置MongoDB 4.4版本的apt源,安装对应版本的MongoDB包即可。
- 卸载已安装的MongoDB 5.0相关包:
- 方案3:特殊场景下可自行编译MongoDB 5.0,编译时关闭AVX相关优化参数即可运行,该方案操作复杂度高,不推荐生产环境使用。
内容的提问来源于stack exchange,提问作者Артур Белов
相关产品推荐
相关产品推荐

