Epoll程序运行一段时间后,accept失败,lsof查看发现存在大量sock显示为 can't identify protocol怎么办?
系统ulimut已经设置为65535,accept失败的原因是toomanyopenfiles.用netstat查看存在的连接不多。而用lsof查看存在大量sock,约为...
系统ulimut已经设置为65535,accept失败的原因是too many open files.
用netstat查看存在的连接不多。而用lsof查看存在大量sock,约为65520个。可见已经耗尽fd资源。
程序采用Epoll模型,为短连接(连接-处理请求-返回数据-断开连接)。做了fd的超时检测,而且发送数据后也关闭了fd。
怎么解决这个问题呢?
最后发现,在某个极为隐蔽的地方,漏掉close(fd)了,低级啊!! 展开
用netstat查看存在的连接不多。而用lsof查看存在大量sock,约为65520个。可见已经耗尽fd资源。
程序采用Epoll模型,为短连接(连接-处理请求-返回数据-断开连接)。做了fd的超时检测,而且发送数据后也关闭了fd。
怎么解决这个问题呢?
最后发现,在某个极为隐蔽的地方,漏掉close(fd)了,低级啊!! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询