以Tomcat为例,
大家可以用ps -ax找到java进程的进程id
然后用lsof -p 进程Id查看该进程下的文件描述符,会发现有很多CLOSE_WAIT
这样的后果是大量占用文件描述符,导致文件描述符耗尽。当文件描述符耗尽时tomcat会大量的不间断的报Too many open files,而且会导致tomcat失去回应 ,CPU 使用量 快速提高
解决办法:
vi /etc/sysctl.conf
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# 探测次数
net.ipv4.tcp_keepalive_probes=2
# 探测监控秒数
net.ipv4.tcp_keepalive_intvl=2
设置完了别忘了重启机器