Linux系统网络性能实例分析( 五 )

【Linux系统网络性能实例分析】 关于千兆位以太网的其他研究也表明 , 系统大约需要 1GHz的 CPU处理能力来处理每千兆位网络流量 。 笔者的实验也证实了这一点 。但添加更多数量的 GHz处理器和千兆位以太网卡并不会相应地提高网络吞吐率 , 即使在 GHz处理器数目等于千兆位以太网卡数量的情况下 。 在 SMP处理器上 ,其他瓶颈如系统总线会影响到千兆位以太网卡的可伸缩性 。NIC测试表明 ,4个网卡中只有 3个网卡可以达到通信介质速度 。在一台主频为1.6GHz的4路Pentium 4机器与4台客户机(主频为1.0GHz的Pentium3)之间执行这些测试 , 这些机器拥有可达到通信介质速度上限的千兆位网卡 。 所有机器都使用 Linux 2.4.17 SMP vanilla内核 。e1000驱动程序的版本号是4.1.7 。 测试类型是Netperf3的 PACKET_STREAM和 PACKET_MAERTS , 其 MTU都是 1500B 。Pentium 4机器拥有 16GB RAM和 4个 CPU 。 4个 NIC均等分布在 100MHz和 133MHz PCI-X插槽之间 。 在Pentium 4系统上禁用了超线程特性 。PACKET_STREAM测试只传输没有任何 TCP/IP报文头部的原始数据 。 它不通过TCP/IP协议层次来传输或接收报文 , 只是为了测试 CPU、 内存、 PCI 总线和 NIC驱动程序以查找这些部件中的瓶颈 。 它使用不同值来调优千兆位驱动程序的中断延迟以及传输和接收描述符 , 以确定这些参数针对环境的最佳取值 。 另一个调优选项是改变 socket缓冲区容量 。如下表所示 , 在这 4个网卡中 , 可达到的最大吞吐率是 2808Mbps , 实现该吞吐率的调优参数设置如下: 传输和接收描述符数量为 4096 ,接收端和发送端的中断延迟都为 64 ,socket缓冲区大小约为 132?000。
Linux系统网络性能实例分析文章插图