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

MongoDB版本升级耗时久,如何解决文件句柄无法释放引发的服务异常?

MongoDB文件句柄异常问题排查与尝试方案

背景

每2个月,MongoDB服务器会因大量无法释放的文件句柄出现异常,导致访问缓慢,必须重启。经排查,MongoDB 3.6版本的close_idle_time参数值为100000,释放文件句柄约需28小时;而4.4版本将该参数调整为600(即10分钟)。因此计划通过升级MongoDB版本,避免文件句柄无法释放引发的服务异常。

图表说明

图表展示的是打开的文件句柄数量,低谷对应周末时段。
文件句柄数量图表

环境信息

硬件

  • 3台物理服务器,配置为56核、256GB内存
  • MongoDB数据分区采用4块1.92T SSD磁盘组成RAID10

MongoDB部署

采用3节点主从ReplicaSet集群,版本为3.6.20

数据详情

单个MongoDB实例包含2个数据库:

  • DB1:90000个集合,占用460GB磁盘空间,包含91540个集合wt文件和183081个索引wt文件
  • DB2:819500个集合,占用170GB磁盘空间,包含835215个集合wt文件和1670452个索引wt文件

尝试方案及问题

方案1:升级MongoDB版本

参考文件句柄相关技术文章,计划通过升级版本解决文件句柄过多无法释放的问题。
结果:由于数据文件数量过于庞大,单实例数据文件升级耗时过长,业务无法接受,升级失败。

方案2:升级前删除历史数据

计划删除50%的历史数据后再进行升级。
问题:删除数据后磁盘空间未释放,MongoDB仅将数据标记为已删除但不实际释放;尝试使用compact命令释放空间,该操作需要更多磁盘和内存资源,且执行速度极慢,耗时远超预期,此方案不可行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:07:42