-
我的服务跑着跑着就再也接受不了新连接、报 too many open files,我一查发现成百上千条连接全卡在 CLOSE_WAIT 状态死活不消失,一开始以为是对端没规矩不关连接,最后才搞明白 CLOSE_WAIT 恰恰是对端已经关了、正等着我这边关而我的代码根本就忘了调 close 的深度复盘
我的服务对外提供接口、也作为客户端调下游,运行一段时间后开始变诡异:先偶尔报错,后来直接无法接受任何新连接、日志满屏 too many open files——文件描述符耗尽了,重启能暂时恢复但过一阵又复发,典型的资源泄漏。我用 netstat grep CLOSE_WAIT 一统计倒吸凉气:成百上千条连接处于 CLOSE_WAIT 状态且只增不减。我第一反应是对端怎么用完连接不关,可去查对端它那…- 0
- 0
-
一个调用下游接口后忘了关闭连接的服务,在下游主动断开后留下了一大堆 CLOSE_WAIT,把文件描述符耗尽、再也建不了新连接:一次 CLOSE_WAIT 堆积的深度复盘
服务跑一段时间后大量报 too many open files、建不了新连接,netstat 一看成千上万个 CLOSE_WAIT 只增不减、把 fd 耗尽。根因是调下游接口后没正确 Close 响应体/连接:下游处理完主动关闭它那端发来 FIN,我方收到后进入 CLOSE_WAIT(等我方 close),而代码没 close(异常路径漏关、忘了 defer),连接就永远停在 CLOSE_WAIT…- 2
- 0
-
Too many open files 改了 ulimit 还是报:一次文件描述符上限的复盘
一个 systemd 管的 Java 服务在流量高峰刷 Too many open files,登服务器 ulimit -n 查到 1024 改成 65535,重启服务还是报,又改了 /etc/security/limits.conf 加 nofile 65535 重启还是报,能改的地方全改了服务死守 1024 不放。排查梳理:文件描述符上限不是一个全局开关它是每个进程各自的一份属性进程启动时从父…- 0
- 0
-
服务每隔几天就崩 Too many open files:一次 Linux 文件描述符泄漏排查复盘
一个后台服务平时很稳,可每隔三四天就集体发病:新请求连不进来、日志写不动,满屏 Too many open files。重启立刻恢复,过几天又原样复发。把 ulimit 调大一倍后,故障没消失,只是把复发周期从三四天拖长到六七天——这说明有东西在持续增长,调大上限只是给了它更长的时间涨到新上限。排查梳理:Linux 一切皆文件,socket 网络连接和管道也算文件也占文件描述符;Too many …- 0
- 0
-
服务跑三天就报 Too many open files:一次 Linux 文件描述符耗尽排查复盘
一个 Java 服务上线头两天正常,第三天起报 Too many open files,新请求大面积失败,可磁盘和 inode 都没满,代码里文件读写也都规规矩矩用了 try-with-resources。排查梳理:报错里的 file 是 Linux 广义的文件描述符 fd,socket、管道、epoll 都占 fd,一个几乎不读写文件的网络服务照样能被 socket 把 fd 用爆;在 SSH …- 0
- 0
-
服务报 Too many open files:一次 Linux 文件描述符耗尽排查复盘
一个常年安稳的 Java 服务高峰期满屏报 Too many open files,df 看磁盘和 inode 却都很充足。排查梳理:这句报错用光的是文件描述符 fd 不是磁盘,Linux 一切皆文件连 socket 网络连接、管道都各占一个 fd;每个进程 fd 上限由 ulimit 控制很多系统默认只有 1024,ulimit 分软硬限制、改了只对当前 shell 有效管不到在跑的进程;ls …- 0
- 0
-
服务跑着跑着报 Too many open files:一次 Linux 文件描述符限制排查复盘
一个网关服务流量爬升后开始大面积报 Too many open files,查遍代码的文件 close 却找不到泄漏。排查梳理:Linux 一切皆文件、socket 和管道都占文件描述符、压垮服务的是几千个网络连接而非磁盘文件;ulimit 软硬限制、/proc/PID/limits 看进程实际上限;systemd 服务不读 limits.conf 必须在 unit 配 LimitNOFILE;看…- 2
- 0
-
ulimit 改了还是 Too many open files:一次 Linux 文件描述符限制排查复盘
ulimit -n 改成 65535 重启服务,依然 Too many open files。排查梳理:文件描述符是有限资源、ulimit 的 soft/hard 与作用域、systemd 服务不读 limits.conf 只认 LimitNOFILE、用 lsof 与 /proc 数 fd 找泄漏、内核全局 fs.file-max,以及一套 fd 排查纪律。- 2
- 0
文件描述符
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!








