1, 优化网络设备接收队列
net.core.netdev_max_backlog=3000
该文件表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
默认值:Red Hat Linux release 9 (Shrike)默认为300
rhel5 默认为1000
建议值为3000
2, net.ipv4.conf.lo.accept_redirects
accept_redirects:该参数位于 /proc/sys/net/ipv4/conf/DEV/accept_redirects (DEV表示具体的网络接口),如果你的主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关在收到你的ip包时发现该ip包必须经 过另外一个路由器,这时这个路由器就会给你发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1表示接收这类重定向 icmp 信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在一般的linux主机上缺省值为1。建议将其改为0,或者使用“安全重定向”(见下文) 以消除安全性隐患。
net.ipv4.conf.lo.accept_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.eth0.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
3, 打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。
net.ipv4.tcp_tw_recyle=1
net.ipv4.tcp_tw_reuse=1
10) /proc/sys/net/ipv4/tcp_tw_recyle
打开快速 TIME-WAIT sockets 回收。除非得到技术专家的建议或要求,请不要随
意修改这个值。
缺省设置:0
11) /proc/sys/net/ipv4/tcp_tw_reuse
该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。
缺省设置:0
下边的命令用来对连接数量非常大的服务器进行调优.
·对于同时支持很多连接的服务器,新的连接可以重新使用TIME-WAIT套接字. 这对于Web服务器非常有效:

如果你使用该命令,还要启动TIME-WAIT 套接字状态的快速循环功能:

图Figure 10-7显示出将这些功能启用,连接数量明显降低.因为每个TCP传输都包含远程客户端的协议信息缓存,所以有利于提高性能.缓存中存放round-trip时间、最大segment大小、拥塞窗口的信息。
4, 减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。
net.ipv4.tcp_fin_timeout=30
tcp_fin_timeout:在一个tcp会话过程中,在会话结束时,A首先向B发送一个fin包,
在获 得B的ack确认包后,A就进入FIN WAIT2状态等待B的fin包然后给B发ack确认包。
这个参数就是用来设置A进入FIN WAIT2状态等待对方fin包的超时时间。
如果时间到了仍未收到对方的fin包就主动释放该会话。
参数值为整数,单位为秒,缺省为180秒
对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能
会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。过去在
2.2版本的内核中是 180 秒。您可以设置该值,但需要注意,如果您的机器为负
载很重的web服务器,您可能要冒内存被大量无效数据报填满的风险,
FIN-WAIT-2 sockets 的危险性低于 FIN-WA