fastdfs端口号占用过多导致服务器网络拥堵问题

在测试阶段,前端小姐姐反馈接口返回慢, 查看了一下高峰时间TCP连接的情况,统计命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

  

发现存在大量TIME_WAIT状态的连接
tcp6       0      0 file.onepass.com:51867  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:52170  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:55700  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:54832  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:44428  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:55182  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:53286  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:56476  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:49767  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:49364  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:41321  file.onepass.com:8848   TIME_WAIT
tcp6       0      0 file.onepass.com:58141  file.onepass.com:8848   TIME_WAIT

  

通过调整内核参数解决 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 


然后执行/sbin/sysctl -p让参数生效。

net.ipv4.tcp_syncookies = 1表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout修改系統默认的TIMEOUT时间
posted @ 2020-08-03 13:53  哦克Oak  阅读(587)  评论(0编辑  收藏  举报