FAQ 文件描述符与句柄耗尽
2026/5/15 1:06:09 网站建设 项目流程

Skeyevss FAQ:文件描述符与句柄耗尽

试用安装包下载 | SMS | 在线演示

项目地址:https://github.com/openskeye/go-vss


1. 症状

日志出现too many open filesaccept4: too many open files;新连接失败、数据库报can’t open file。高并发RTP/HTTP/WebSocket服务在长连接场景下易发。


2. 限制层级

  • 进程 ulimit -n
  • systemd LimitNOFILE
  • 容器 default ulimit
  • 内核 fs.file-max

最小值生效;改了一处未改另一处会导致误以为已调大


3. 泄漏 vs 真需求

  • 泄漏:fd 曲线单调上升不回落;
  • 真需求:连接数与业务一致,需提高 limit架构拆分

lsof -p PID/proc/PID/fd抽样分析类型(socket、pipe、file)。


4. 应用层

  • HTTP Client未复用连接;
  • 文件未 close;
  • goroutine阻塞在读导致半开连接堆积。

5. 预防

  • 部署清单写明推荐 ulimit
  • 监控进程 open fd 数量
  • 压测连接风暴场景。

句柄耗尽先分清泄漏与容量;多数生产事故是systemd/docker 默认 ulimit 过小而非代码瞬间写爆。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询