软件的考虑
为了测试这两台服务器之间的速度,我们没有使用FTP或者其它任何从硬盘提取数据的东西。内存至内存之间的传输是最好的测试。有许多做这种测试的工具。对于我们的测试来说,我们使用了“TTCP”。(网址:http://www.pcausa.com/Utilities/pcattcp.htm)。
这两台服务器之间传输数据的第一次测试结果不太好。最大速率为大约每秒230M位,大约是每秒100M位的网卡的速度的一倍。这个速度已经有了很大的改善,但是,还不理想。实际上,大多数情况下如果不做任何设置调整就对服务器进行设置,得到的结果会比这个更糟糕。然而,经过对设置进行一些小的改动,我们很快实现了速度的显著改善,比最初的测试的速度提高了三倍。
很多人建议把你的网络接口的MTU设置得更大一些。这基本上是让网卡发送更大的以太网帧。虽然这种方法对于两台主机直接连接在一起是有用的,但是,这对于通过不支持更大的MTU的交换机进行连接的服务器来说就没有任何用处。因此,这种做法没有必要。在MTU设置达到1500字节的时候可以达到每秒900M位的数据传输速度。
要获得最大的数据吞吐量,最重要的选项是TCP窗口的尺寸。TCP窗口控制数据流,并且在开始一个TCP连接的时候进行协商。使用一个太小的尺寸将导致速度减慢,因为TCP仅仅使用这两台端点服务器较小的窗口尺寸。还有一些比这更复杂的信息。下面就是你需要确实了解的信息:
对于Linux和FreeBSD操作系统软件,我们使用了sysctl工具软件。对于下面全部选项,输入“sysctl variable=number”命令可以对系统变量进行设置。要查看当前的设置,可使用“sysctl <变量名>.
设置最大窗口尺寸的方法:
FreeBSD下:
kern.ipc.maxsockbuf=262144 |
Linux:
net.core.wmem_max=8388608 |
设置默认窗口尺寸:
FreeBSD的发送和接收窗口尺寸设置:
net.inet.tcp.sendspace=65536 net.inet.tcp.recvspace=65536 |
Linux,的发送和接收窗口尺寸设置:
net.core.wmem_default = 65536 net.core.rmem_default = 65536 |