下面讨论 Linux操作系统中的千兆位网络性能,以及千兆位以太网调优对网络性能的改进。
千兆位以太网卡(Intel Gigabit Ethernet和Acenic Gigabit Ethernet)提供了几个有利于处理高吞吐率的额外特性。这些特性包括对巨型帧(MTU)长度、中断延迟(interrupt-delay)以及TX/RX描述符的支持:
巨型帧长度。千兆位以太网卡的 MTU长度可以大于 1500B。百兆位以太网中 1500B的MTU限制不再存在。增加MTU的大小通常能够改进网络吞吐率,但必须确保网络路由器支持巨型帧长度。否则,当系统连入百兆位以太网络时,千兆位以太网卡会降至百兆位的能力。中断延迟/中断合并。可以针对接收中断和传输中断设置中断合并特性,使得 NIC在指定时间内延缓生成中断。例如,当RxInt设置为 1.024μs(这是 Intel GigabitEthernet网卡上的默认值)时, NIC将收到的帧放入内存中, 在经过 1.024μs后才生成一个中断。这个特性减少了上下文切换次数,因此可以改进 CPU效率,但它同时也增加了接收报文的延迟。如果针对网络流量对中断合并特性加以适当调优,也能够改进 CPU效率和网络吞吐率性能。传输和接收描述符。千兆位以太网驱动程序使用这些参数来分配数据发送和接收缓冲区。增加其取值可以允许驱动程序缓冲更多的输入报文。每个描述符都包含一个传输和接收描述符缓冲区以及一个数据缓冲区。这个数据缓冲区的大小依赖于MTU长度。对于本例的驱动程序, MTU最大长度为 16110。
关于千兆位以太网的其他研究也表明,系统大约需要 1GHz的CPU处理能力来处理每千兆位网络流量。笔者的实验也证实了这一点。 但添加更多数量的 GHz处理器和千兆位以太网卡并不会相应地提高网络吞吐率,即使在 GHz处理器数目等于千兆位以太网卡数量的情况下。在SMP处理器上, 其他瓶颈如系统总线会影响到千兆位以太网卡的可伸缩性。 NIC测试表明, 4个网卡中只有 3个网卡可以达到通信介质速度。
在一台主频为1.6GHz的4路Pentium 4机器与4台客户机(主频为1.0GHz的Pentium3)之间执行这些测试,这些机器拥有可达到通信介质速度上限的千兆位网卡。所有机器都使用 Linux 2.4.17 SMP vanilla内核。 e10