linux syn包 options 64字节,Linux centos 6.4(64bit)下内核参数调优

本文整理了CentOS6.4系统下的网络内核参数调整,涉及TCP连接超时、内存使用、端口范围、SYN队列长度等多个关键设置,旨在提高系统网络性能和安全性,例如减小TCP TIME_WAIT套接字的数量,优化内存使用策略,以及调整连接建立和关闭的时机等。
摘要由CSDN通过智能技术生成

以下内核参数调整在centos

6.4下,做了一下整理。

net.ipv4.tcp_fin_timeout =

1

net.ipv4.tcp_keepalive_time =

1200

net.ipv4.tcp_keepalived_intvl = 30(centos

6中已不存在)

net.ipv4.tcp_keepalived_probes = 3(centos

6中已不存在)

net.ipv4.tcp_tw_reuse =

1

net.ipv4.tcp_tw_recycle =

1

net.ipv4.ip_local_port_range =

1024 65000

net.ipv4.tcp_timestamps =

0

net.ipv4.tcp_synack_retries =

1

net.ipv4.tcp_syn_retries =

1

net.ipv4.tcp_retries2 =

5

net.ipv4.tcp_max_orphans =

131070

net.ipv4.tcp_max_syn_backlog =

8192

net.ipv4.tcp_max_tw_buckets =

5000

net.ipv4.tcp_mem = 8388608

8388608 8388608

net.ipv4.tcp_rmem = 4096 87380

8388608

net.ipv4.tcp_wmem = 4096 65535

8388608

net.core.rmem_max =

16777216

net.core.wmem_max =

16777216

net.core.wmem_default =

8388608

net.core.rmem_default =

8388608

net.core.optmem_max =

40960

net.core.somaxconn =

512

net.core.netdev_max_backlog =

3000

vm.swappiness=0

net.ipv4.route.gc_timeout =

100

参数说明

net.ipv4.route.gc_timeout =

100

路由缓存刷新频率,

当一个路由失败后多长时间跳到另一个默认是300

net.ipv4.tcp_syn_retries =

1

对于一个新建连接,内核要发送多少个 SYN

连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右。

net.ipv4.tcp_max_orphans =

131070(默认值65535)

选项用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤立连接将立即被复位并打印出警告信息。这个限制只是为了防止简单的DoS攻击。不能过分依靠这个限制甚至人为减小这个值,更多的情况是增加这值。

/proc/sys/net/core/wmem_max

最大的TCP数据发送缓冲区字节大小,默认124928

/proc/sys/net/core/rmem_max最大的TCP数据接收缓冲区字节大小,默认124928

/proc/sys/net/ipv4/tcp_wmem为自动调优定义socket使用的内存。第一个值是为socket发送缓冲区分配的最少字节数;第二个值是默认值(该值会被wmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是发送缓冲区空间的最大字节数(该值会被wmem_max覆盖)。

/proc/sys/net/ipv4/tcp_rmem为自动调优定义socket使用的内存。第一个值是为socket接收缓冲区分配的最少字节数;第二个值是默认值(该值会被rmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是接收缓冲区空间的最大字节数(该值会被rmem_max覆盖)。

/proc/sys/net/core/rmem_default/

TCP数据接收缓冲区默认字节大小,默认124928

/proc/sys/net/core/wmem_default

TCP数据发送缓冲区默认字节大小,默认124928

/proc/sys/net/ipv4/tcp_mem

确定TCP栈应该如何反映内存使用,每个值的单位都是内存页(通常是4KB)。第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的BDP可以增大这些值(注意,其单位是内存页而不是字节)

默认753600 1004800

1507200

同样有3个值,意思是:

net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.

net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.

net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.

/proc/sys/net/core/netdev_max_backlog进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可调整到1000.

/proc/sys/net/core/somaxconnlisten()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.可调整到256.

/proc/sys/net/core/optmem_maxsocket

buffer的最大初始化值,默认10K.

/proc/sys/net/ipv4/tcp_max_syn_backlog进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.可调整到2048.

/proc/sys/net/ipv4/tcp_retries2

TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源.

/proc/sys/net/ipv4/tcp_keepalive_time

/proc/sys/net/ipv4/tcp_keepalive_intvl

(centos 6中已不存在)

/proc/sys/net/ipv4/tcp_keepalive_probes (centos

6中已不存在)这3个参数与TCP

KeepAlive有关.默认值是:

1

2

3

tcp_keepalive_time = 7200

seconds (2 hours)

tcp_keepalive_probes = 9

tcp_keepalive_intvl = 75 seconds

意思是如果某个TCP连接在idle

2个小时后,内核才发起probe.如果probe

9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效.对服务器而言,显然上述值太大. 可调整到:

1

2

3

/proc/sys/net/ipv4/tcp_keepalive_time 1800

/proc/sys/net/ipv4/tcp_keepalive_intvl 30

/proc/sys/net/ipv4/tcp_keepalive_probes 3

/proc/sys/net/ipv4/ip_local_port_range指定端口范围的一个配置,默认是32768 61000,已够大.

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 =

1表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

net.ipv4.tcp_keepalive_time =

1200表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range = 1024

65000表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

net.ipv4.tcp_max_syn_backlog =

8192

表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets =

5000表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为

5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

参考:

http://www.linuxinsight.com/proc_sys_net_ipv4.html

http://www.tuicool.com/articles/EBjQziJ

http://www.softpanorama.org/Commercial_linuxes/Performance_tuning/tcp_performance_tuning.shtml

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-tunables.html

http://www.ibm.com/developerworks/cn/linux/l-hisock.html

http://blog.csdn.net/jiazhen/article/details/6002105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值