You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker部署MongoDB执行mongorestore导入1.75GB gz文件触发OOM进程被杀

解决方案
  • 调整Docker容器内存配额
    首先确认MongoDB容器的内存限制,默认部署可能设置了过低的内存上限导致OOM。执行docker inspect <你的MongoDB容器名称/ID> | grep Memory查看当前配额,若低于12GB可先上调容器内存上限后重试导入。

  • 缩小mongorestore批量插入大小
    你当前已经把并行度降到最低,但默认的单批次插入文档数过大依然会占用大量内存,添加--batchSize参数控制单次插入的文档数量,可先设置为1000,内存占用还是高的话继续调低到500甚至200。

  • 提前解压备份文件再导入
    直接使用--gzip参数导入时,mongorestore需要同时执行解压、数据校验、写入操作,额外占用的内存会放大峰值内存占用。你可以先在宿主机执行gzip -d logs.bson.gz解压备份文件,导入时去掉--gzip参数即可,能降低30%以上的内存开销。

  • 调低MongoDB WiredTiger缓存上限
    MongoDB默认会占用宿主机/容器50%的内存作为WiredTiger引擎的缓存,剩余可用内存不足以支撑导入操作时就会触发OOM。你可以修改容器内的mongod配置文件,添加wiredTigerCacheSizeGB=2配置项,将缓存上限调低到2GB,预留足够内存给导入任务,导入完成后再调回原有值即可。

调整后的参考导入命令如下:

mongorestore -u superAdmin -p 'password123321!' \
--numParallelCollections 1 \
--numInsertionWorkersPerCollection 1 \
--batchSize 1000 \
--authenticationDatabase=admin --drop --db "logs" logs.bson

内容的提问来源于stack exchange,提问作者MR Karrot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:06:06