观察到系统抛出的问题 - 在正常工作几个小时后出现“打开的文件太多”。
观察到有很多tcp连接卡在“CLOSE_WAIT”状态。
须藤lsof | grep ":http (CLOSE_WAIT)" | wc -l -> 16215。
数字随着时间的推移而增加,在几个小时内它会超过允许的最大限制。
还运行了 netstat 命令 -
“ netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n ”,输出为 -> 122 CLOSE_WAIT。
为什么 netstat 命令的输出远低于 lsof 命令。两者都返回关闭等待连接,并且应该给出大致相同的值。
一旦我知道与特定服务的连接导致了这个问题,那么我应该怎么做才能确定发生这种情况的确切代码?我浏览了用于连接服务的客户端代码,但没有看到任何连接泄漏。