情况是这样的,在一台 vps 上运行了rails s -p 3000 -b 0.0.0.0 &
然后运行数天或者数小时之后,突然发现大部分时候请求无响应,查看 rails log 也无请求记录,只有偶尔能够请求成功一次。
重点来了,执行lsof -i:3000
后反馈如图
猜测应该是 CLOSE_WAIT 引起的,大概但是不知道具体原因,也不知道怎么防止这样的事情发生。
自己测试了一下,刚请求之后 lsof 了一下,会有这么一条记录
在请求成功后或者浏览器无响应取消请求后会变成 CLOSE_WAIT
补充:我这只是一个很简单的 http api 测试服务器,一开始并没有 CLOST_WAIT 的问题,是运行一段时间后出现的。