linux性能优化实战-网络性能调优
大多数Linux发行版都定义了适当的缓冲区和其他TCP参数,可以通过修改这些参数来分配更多的内存,从而改进网络性能。设置内核参数的方法是通过proc接口,也就是通过读写/proc中的值。幸运的是,sysctl可以读取/etc/sysctl.conf中的值并根据需要填充/proc,这样就能够更轻松地管理这些参数。 下面展示了在互联网服务器上应用于Internet服务器的一些比较激进的网络设置。 # Use TCP syncookies when needed 第一个设置启用TCP SYN cookie。 当从客户机发来新的TCP连接时,数据包设置了SYN位,服务器就位这个半开的连接创建一个条目,并用一个SYN-ACK数据包进行响应。在正常操作中,远程客户机用一个ACK数据包进行响应,这回使得半开的连接转换为全开的。 有一种称为SYN泛滥(SYN flood)的网络攻击,它使ACK数据包无法返回,导致服务器用光内存空间,无法处理到来的连接。SYN cookie特性可以识别出这种情况,并使用一种优雅的方法保留队列中的空间,大多数系统都默认启用这个特性,但是确保配置这个特性更可靠。 第二个设置启用TCP窗口伸缩 启用TCP窗口伸缩可以使客户机能够以更高的速度下载数据。TCP允许在未从远程端收到确认的情况下发送多个数据包,默认设置是最多64KB,在与延迟比较大的远程客户机进行通信时这个设置可能不够,窗口伸缩会在头中启用更多的位,从而增加窗口大小。 后面四个配置项增加TCP发送和接收缓冲区 这使应用程序可以更快地丢掉它的数据,从而为另一个请求服务,还可以强化远程客户机在服务器繁忙时发送数据的能力。 最后一个配置项增加可用的本地端口数量 这样就增加了可以同时服务的最大连接数量。 在下一次引导系统时,或者下一次运行sysctl -p /etc/sysctl.conf时,这些设置就会生效。 TCP/IP子系统的调优 # 最大的TCP数据接收缓冲 建议在系统启动时自动修改TCP/IP参数,将下面代码增加到/etc/rc.local文件中,然后保存文件,系统重新引导的时候回自动修改下面TCP/IP参数: echo 256960 > /proc/sys/net/core/rmem_default 上面数值的设定是根据互联网连接和最大带宽/延迟率来决定的。 另外一个方法:使用/etc/sysctl.conf在系统启动时将参数设置成需要设置的值。 net.core.rmem_default = 256960net.core.rmem_max = 256960net.core.wmem_default = 256960net.core.wmem_max = 256960net.ipv4.tcp_timestamps = 0net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |