一次线上大量请求超时问题:
如果重启一次解决不了的问题,那就再重启一次
不是我有bug,是你不会用。
1:系统方面:
可能是服务器句柄数太低导致,一个客户端连接对应着一个TCP连接,一个TCP连接在LINUX系统内对应着一个文件句柄,系统级别连接句柄用完了,也就无法再进行连接了。
ulimit -n #可查看当前句柄数,根据各自服务器承载请求数量适当调高观察下。
ulimit -n 65534 #修改
ulimit -a #查看其它配置数据
2:代码方面:
代码中的httpclient一定要设置超时时间,httpclient不设置超时时间会导致线程积累,最后进程假死,无法处理请求。
httpclient未设置超时时间造成的请求无法响应,服务变现形式是一段时间后服务响应慢至不可用,重启释放内存会暂时解决。