我正在尝试创建一个服务器,多个客户端需要打开websocket并发送数据。但似乎许多客户端无法建立连接。
在服务器上,当我执行
在服务器上,当我执行
lsof
或netstat -an
时,除了连接处于ESTABLISHED
状态外,还显示了很多连接处于FIN_WAIT1
和FIN_WAIT2
状态。目前打开文件的ulimit为1024。那些卡在这两种状态中的连接会计入打开文件列表吗?如果是这样,1024限制很快就会用完。
/proc/sys/net/ipv4/tcp_orphan_retries
为0
,似乎相当于8
https://serverfault.com/questions/274212/what-does-tcp-orphan-retries-set-to-0-mean/408882#408882
我查阅了这个链接:
https://serverfault.com/questions/7689/how-do-i-get-rid-of-sockets-in-fin-wait1-state
但是我不太理解。
我在网上读到了关于这两种状态的信息,我意识到它们是协议的一部分,但我希望连接不会被卡在无用的状态中。
我能做些什么吗?我应该改变ulimit吗?但那只是意味着问题会在x+y的时间发生而不是x。