linux tcp 性能优化,Linux tcp 参数优化

tcp_wmem(3个INTEGER变量): min, default, max

min:为TCP socket预留用于发送缓冲的内存最小值。每个tcp

socket都可以在建议以后都可以使用它。默认值为4096(4K)。

default:为TCP

socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem_default

值,一般要低于net.core.wmem_default的值。默认值为16384(16K)。

max: 用于TCP

socket发送缓冲的内存最大值。该值不会影响net.core.wmem_max,”静态”选择参数SO_SNDBUF则不受该值影响。默认值为

131072(128K)。(对于服务器而言,增加这个参数的值对于发送数据很有帮助,在我的网络环境中,修改为了51200 131072

204800)

tcp_rmem (3个INTEGER变量): min, default, max

min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下tcp

socket都至少会有这么多数量的内存用于接收缓冲,默认值为8K。

default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的

net.core.wmem_default

值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win=0默认值情况下,TCP窗口大小为65535。

默认值为87380

max:用于TCP socket接收缓冲的内存最大值。该值不会影响 net.core.wmem_max,”静态”选择参数

SO_SNDBUF则不受该值影响。默认值为 128K。默认值为87380*2

bytes。(可以看出,.max的设置最好是default的两倍,对于NAT来说主要该增加它,我的网络里为 51200 131072

204800)

tcp_mem(3个INTEGER变量):low, pressure, high

low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。(理想情况下,这个值应与指定给 tcp_wmem 的第 2

个值相匹配 – 这第 2 个值表明,最大页面大小乘以最大并发请求数除以页大小 (131072 * 300 / 4096)。 )

pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出

pressure状态。(理想情况下这个值应该是 TCP 可以使用的总缓冲区大小的最大值 (204800 * 300 / 4096)。

)

high:允许所有tcp sockets用于排队缓冲数据报的页面量。(如果超过这个值,TCP

连接将被拒绝,这就是为什么不要令其过于保守 (512000 * 300 / 4096) 的原因了。

在这种情况下,提供的价值很大,它能处理很多连接,是所预期的 2.5 倍;或者使现有连接能够传输 2.5 倍的数据。

我的网络里为192000 300000 732000)

一般情况下这些值是在系统启动时根据系统内存数量计算得到的。

tcp_app_win : INTEGER

默认值是31

保留max(window/2^tcp_app_win, mss)数量的窗口由于应用缓冲。当为0时表示不需要缓冲。

tcp_adv_win_scale : INTEGER

默认值为2

计算缓冲开销bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale >

0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <=

0)。

tcp_rfc1337 :BOOLEAN

缺省值为0

这个开关可以启动对于在RFC1337中描述的”tcp

的time-wait暗杀危机”问题的修复。启用后,内核将丢弃那些发往time-wait状态TCP套接字的RST 包.

tcp_low_latency : BOOLEAN

缺省值为0

允许 TCP/IP 栈适应在高吞吐量情况下低延时的情况;这个选项一般情形是的禁用。(但在构建Beowulf

集群的时候,打开它很有帮助)

tcp_westwood :BOOLEAN

缺省值为0

启用发送者端的拥塞控制算法,它可以维护对吞吐量的评估,并试图对带宽的整体利用情况进行优化;对于 WAN

通信来说应该启用这个选项。

tcp_bic :BOOLEAN

缺省值为0

为快速长距离网络启用 Binary Increase Congestion;这样可以更好地利用以 GB 速度进行操作的链接;对于

WAN 通信应该启用这个选项。

# 以下一段为抵抗syn flood攻击,平时建议关闭

sysctl -w

net.ipv4.tcp_syncookies=1 # tcp syncookie,默认关闭

sysctl -w

net.ipv4.tcp_max_syn_backlog=1280 # syn队列,默认1024,> 1280可能工作不稳定,需要修改内核源码参数

sysctl -w

net.ipv4.tcp_synack_retries=2 # syn-ack握手状态重试次数,默认5,遭受syn-flood攻击时改为1或2

sysctl -w

net.ipv4.tcp_syn_retries=2 # 外向syn握手重试次数,默认4

# 以下一段为应对tcp connect连接耗尽攻击,如果开启iptables connlimit模块可禁用

# 有严重连接性能影响和不稳定因素,慎用

sysctl -w

tcp_tw_recycle=1 # 默认0,tw快速回收

sysctl -w

tcp_tw_reuse=1 # 默认0,tw重用

sysctl -w

tcp_keepalive_intvl=60 # 默认75,tcp keeplive探测轮询时间

sysctl -w

tcp_keepalive_probes=3 # 默认9,tcp keeplive探测轮询次数

sysctl -w

tcp_keepalive_time=1800 # 默认7200,tcp keeplive时间

sysctl -w

tcp_fin_timeout=30 # 默认60,tcp fin状态超时时间

#sysctl -w

net.ipv4.tcp_retries1=2 # tcp连接重传参数,慎用

#sysctl -w net.ipv4.tcp_retries2=8

sysctl -w

net.ipv4.ip_conntrack_max=65535 # 增大iptables状态跟踪表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值