内核优化相关

net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 30

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 30

net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 30 

echo 100000 > /proc/sys/net/netfilter/nf_conntrack_max


net.ipv4.tcp_fin_timeout = 30 修改系統默认的TIMEOUT时间(默认120)

net.ipv4.tcp_max_syn_backlog = 3096  半连接队列长度

net.ipv4.tcp_keepalive_time = 300 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为5分钟。

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

net.ipv4.tcp_timestamps = 1 时间戳 关闭timestamps后,tw_recycle功能是失效的问题

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;


net.ipv4.ip_local_port_range = 4096 60000

net.ipv4.icmp_echo_ignore_all = 0 允许Ping

net.ipv4.tcp_ecn = 0

net.ipv4.tcp_synack_retries = 1 防SYN Flood(洪水攻击) 默认为5,表示重发5次,每次等待30~40秒,即“半连接”默认hold住大约180秒

表示回应第二个握手包(SYN+ACK包)给客户端IP后,如果收不到第三次握手包(ACK包)后,不进行重试,加快回收“半连接”,不要耗光资源。 

net.ipv4.tcp_max_tw_buckets = 655360  新的解决TIME_WAIT连接过多的方法



#系统允许的文件句柄的最大数目,因为连接需要占用文件句柄

fs.file-max = 819200

#用来应对突发的大并发connect 请求

net.core.somaxconn = 65536

#最大的TCP 数据接收缓冲(字节)

net.core.rmem_max = 1024123000

#最大的TCP 数据发送缓冲(字节)

net.core.wmem_max = 16777216

#网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.netdev_max_backlog = 165536

#本机主动连接其他机器时的端口分配范围

net.ipv4.ip_local_port_range = 10000 65535


小米的优化

net.ipv4.tcp_ecn=0 

net.ipv4.route.flush=1 

net.ipv4.tcp_rfc1337=1 

net.ipv4.ip_no_pmtu_disc=0 

net.ipv4.tcp_sack=1 

net.ipv4.tcp_fack=1 

net.ipv4.tcp_window_scaling=1 

net.ipv4.tcp_timestamps=1 

net.ipv4.tcp_rmem=4096 39000 187000 

net.ipv4.tcp_wmem=4096 39000 187000 

net.ipv4.tcp_mem=187000 187000 187000 

net.ipv4.tcp_no_metrics_save=1 

net.ipv4.tcp_moderate_rcvbuf=1 




本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1621374,如需转载请自行联系原作者

上一篇:微软企业级即时通讯软件——OCS标准版安装


下一篇:Linux TCP实现优化的背后想法