问题描述
一世
lsof | grep CLOSE_WAIT | wc -l
在Ubuntu 14.04 LTS上
我得到了显示的PID和TID。 在一个具有x个线程的java proc上有70个CLOSE_WAIT。
但是,如果我这样做
lsof -i | grep CLOSE_WAIT |wc -l
我只有1,这是Java进程(没有TID)。
这是否意味着我们无法通过执行lsof -i来可靠地确定FS泄漏? 我们总是必须使用“ lsof”吗?
作为补充,没有人知道为什么ELB没有关闭连接吗?
java 9645 9863 ubuntu 133u IPv4 19375 0t0 TCP ip-10-20-187-89:51548->ec2-100-200-86-25.compute-1.amazonaws.com:https (CLOSE_WAIT) java 9645 9864 ubuntu 133u IPv4 19375 0t0 TCP ip-10-20-187-89:51548->ec2-100-200-86-25.compute-1.amazonaws.com:https (CLOSE_WAIT) java 9645 9865 ubuntu 133u IPv4 19375 0t0 TCP ip-10-20-187-89:51548->ec2-100-200-25.compute-1.amazonaws.com:https (CLOSE_WAIT) java 9645 9902 ubuntu 133u IPv4 19375 0t0 TCP ip-10-20-187-89:51548->ec2-100-200-25.compute-1.amazonaws.com:https (CLOSE_WAIT)
谢谢,
1楼
我建议参考这样 。 TCP连接不被认为是封闭的,每一端都发送FIN并获得ACK。
。
CLOSE_WAIT
通常指示远程端已发送FIN,并已被本地端确认,但本地端尚未发送FIN。
您可能看不到lsof -i
剩下的CLOSE_WAIT条目,因为未显示远程地址。
它可能显示为空。
也可以看看: