优化参数
参数:
net.ipv4.tcp_orphan_retries=0
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.ip_local_port_range = 2000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_orphans = 16384
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_adv_win_scale = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
参数说明:
| 内核参数 |
说明 |
| net.ipv4.tcp_orphan_retries |
tcp四次挥手时,fin_wait1状态下,发送FIN报文的重试次数,0相当于8 |
| net.ipv4.tcp_fin_timeout |
表示套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,默认值是60秒 |
| net.ipv4.tcp_tw_reuse |
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认值为0,表示关闭 |
| net.ipv4.tcp_tw_recycle |
表示开启TCP连接中TIME-WAIT sockets的快速回收。默认为0,表示关闭。提示:reuse和recycle这两个参数是为防止生产环境下Web、Squid等业务服务器time_wait网络状态数量过多设置的 |
| net.ipv4.tcp_syncookies |
表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,这个参数也可以不添加。默认值为1 |
| net.ipv4.tcp_keepalive_time |
表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,建议改为10分钟。默认为7200秒 |
| net.ipv4.tcp_keepalive_intvl |
处于活动tcp连接的探测包发送间隔,方便tcp快速回收 |
| net.ipv4.tcp_keepalive_probes |
探测包重试次数 |
| net.ipv4.ip_local_port_range |
该选项用来设定允许系统打开的端口范围,即用于向外连接的端口范围 |
| net.ipv4.tcp_max_syn_backlog |
表示SYN队列的长度,即半连接队列长度,默认为1024,建议加大队列的长度为8192或更多,这样可以容纳更多等待连接的网络连接数。该参数为服务器端用于记录那些尚未收到客户端确认信息的连接请求最大值 |
| net.ipv4.tcp_max_tw_buckets |
表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,对于Apache、Nginx等服务器来说可以将其调低一点,如改为5000~30000,不通业务的服务器也可以给大一点,比如LVS、Squid。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死 |
| net.ipv4.tcp_synack_retries |
参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。默认值为5 |
| net.ipv4.tcp_max_orphans |
用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数值,孤立连接将被立即被复位并打印出警告信息。这个限制只有为了防止简单的DoS攻击。不能过分依靠这个限制甚至认为减少这个值,更多的情况是增加这个值。默认值8192 |
| net.ipv4.tcp_fastopen |
起到tcp加快通信的作用,0为关闭,1为客户端时使用,2为服务端时使用,3为都使用 |
| net.ipv4.tcp_moderate_rcvbuf |
自动调整内核网络缓存模式 |
| net.ipv4.tcp_adv_win_scale |
用于调整tcp滑动窗口的,接收窗口与应用缓存 |
| net.core.somaxconn |
同时发起的TCP的最大连接数,即全连接队列长度,在高并发请求中,可能会导致链接超时或重传,一般结合并发请求数来调大此值。默认值是128 |
| net.core.netdev_max_backlog |
表示当每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包最大数。默认值为1000 |
| net.ipv4.tcp_syn_retries |
表示在内核放弃建立连接之前发送SYN包的数量。默认值为6 |