最近遇到一个bug
运维部门报警一台应用服务器cpu 很高 。但是我们又没有什么请求量,于是找原因
netstat -na
发现tomcat 有大量的连接,其中TIME_WAIT,非常多,问了一下百度,大概意思是说,nginx 的连接已经关闭了,tomcat 还在等待处理这个连接。
所以调系统参数
sudo vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
sudo /sbin/sysctl -p
还有一种是调节 upstream -》keepalive参数,但是感觉改这个会影响nginx的性能,所以推荐第一种。
upstream localhost{
keepalive 30;
}