MongoDB“僵尸连接”实为未关闭的游标,需通过db.currentOp()识别长时运行游标,依赖cursorTimeoutMillis参数控制服务端自动清理,默认10分钟,调整需权衡误杀与资源占用。查清游标是否真在占用连接和内存MongoDB 的“僵尸连接”多数其实是客户端没关的 cursor,不是 TCP 连接本身卡死。真正要盯的是服务端游标状态——它可能已脱离客户端控制,但仍在消耗内存、锁住快照、阻塞复制延迟。用 db.currentOp() 查活跃操作时,重点看 secs_running 大于 300(5 分钟)且 secs_running 远大于 microsecs_running 的游标;这类往往是客户端崩溃或网络中断后遗留的。noTimeout: true 的游标必须手动 cursor.close(),否则永不释放聚合管道中用了 $out 或 $merge,即使没显式声明游标,也会隐式创建长生命周期游标副本集 secondary 上的读请求若带 readPreference=secondary + maxTimeMS 不生效,容易堆积慢游标设置 server 端自动清理阈值(不是 client 端 timeout)MongoDB 不靠 TCP keepalive 清理游标,而是靠 cursorTimeoutMillis 参数控制服务端游标空闲上限。这个值默认是 10 分钟(60000 毫秒),但仅对非 noTimeout 游标生效。修改需重启 mongod 或热更新配置(4.2+ 支持): 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐