浅谈linux性能调优之十五:常见网络参数整理

孤人 提交于 2019-12-13 21:29:25

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1.tcp连接保持管理:
net.ipv4.tcp_keepalive_time = 7200
如果在该参数指定时间内某条连接处于空闲状态,则内核向远程主机发起探测
net.ipv4.tcp_keepalive_intvl = 75
内核向远程主机发送的保活探测的时间间隔
net.ipv4.tcp_keepalive_probes = 9
内核发送保活探测的最大次数,如果探测次数大于这个数,则断定远程主机不可达,则关闭该连接并释放本地资源
  一个连接7200s空闲后,内核会每隔75秒去重试,若连续9次则放弃。这样就导致一个连接经过2h11min的时间才能被丢弃,降低该值能够尽量减小
失效连接所占用的资源,而被新的连接所使用。


2.tcp连接管理:
net.core.netdev_max_backlog=3000
    该文件表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
net.ipv4.tcp_max_syn_backlog = 1024
控制每个端口的tcp syn的队列长度,来自客户端的连接请求需要排队,直至服务器接受,如果连接请求数大于该值,则连接请求会被丢弃,客户端无法
连接服务器,一般服务器要提高此值
net.ipv4.tcp_synack_retries = 5
控制内核向某个socket的ack,syn段重新发送响应的次数,降低此值可以尽早检测到来自远程主机的连接失败尝试
net.ipv4.tcp_retries2 = 15
控制内核向已建立连接的远程主机重新发送数据的次数,降低此值,可以尽早的检测连接失效

3.net.ipv4.tcp_syncookies = 1
SYN Cookie是对TCP服务器端的三次握手协议作一些修改,专门用来防范SYN Flood攻击的一种手段。它的原理是,在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接。


4.net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0
  net.ipv4.tcp_tw_recycle = 1                    
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0

5.net.ipv4.tcp_fin_timeout = 60
缩短默认的timeout的时间

6. /proc/sys/net/ipv4/conf/*/accept_redirects
   如果主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你
发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺
省值为0,在一般的linux主机上缺省值为1。建议将其改为0以消除安全性隐患。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!