当使用千兆网卡(服务器级英特尔)和2盒交叉电缆…我只看到%20-40的pipe道被使用。 即使在路由器。
把2张100mbps的卡放进去,一样的交易。 使用%20-40。
是什么赋予了?
两个交叉电缆卡:
你怎么testing它? 你怎么测量它? 当你说20-40%时,确切地告诉我们你的意思,以及你如何得到这个数字。
以太网开销大约为每个数据包38个字节,而TCP / IP大约有52个字节的开销。 使用1500字节的数据包,通过以太网运行TCP / IP,你可以看到94%的数据吞吐量。
虽然发送应用程序可能正在发送更小的数据块。 以UDP(用于videostream,语音等)。 如果你发送每个数据包256个字节,加上90个字节的开销,你将得到74%的利用率。
然后,你有操作系统和TCP / IP堆栈的开销 – 这两个都会增加延迟,这将会由于TCP / IPpipe理networking负载的方式而以复杂的方式影响带宽(algorithm尝试使用最大带宽而不会丢失包)。
然后你在电脑上有其他的负载。 如果您从慢速硬盘复制碎片数据,您可能根本没有看到networking瓶颈,而是另一个PC的瓶颈。
100base-T网卡是否也是服务器级? 你确定他们没有卸载任何应该在网卡上执行的操作?
网卡上有什么总线? PCI,PCIe等? 那辆公共汽车上还有什么? 网卡是否与其他设备共享一个IRQ?
您是否使用最新的BIOS作为主板和NIC(如果适用)? 最新驱动程序
操作系统是服务器操作系统还是桌面(调度程序,堆栈等在不同的性能情况下configuration不同)?
有很多原因可能导致您无法获得您想要的吞吐量。 上面提到的简单问题不能提供足够的信息来知道真正的问题在哪里。
在正常的networking中,可能是由冲突和其他networkingstream量造成的
以太网对于它的function非常棒,但它不同步。 这意味着两张卡片可以立即开始传输,导致碰撞。
碰撞通常由两个卡片检测到,并且在尝试重新发送之前它们都退避一段随机的时间。
这加上以太网数据包和编码的开销,意味着即使在最好的情况下,你也不能期望使用率高达80-90%。
您可以通过使用路由器和交换机而不是计算机之间的集线器来缓解这一点,但是如果数据太多,甚至路由器和交换机都会丢弃数据包,并且只能将总利用率提高百分之几。
以太网数据包本身包括时钟,寻址等开销。如果在networking上启用大数据包,则相对于数据大小,数据包的开销将变小,因此,对于大型传输,您可以获得更好的利用率。 但是,如果您的应用程序需要大量较小的数据包,则无效,不过,在video或audiostream应用程序中。 即使启用大包,您仍可能只发送小包,因为这是应用程序正在发送。
-亚当
我的猜测是,这是你的testing方法的一个限制。 例如,如果您通过在两个系统之间传输文件来进行testing,那么文件系统的性能可能是一个限制因素。 你还需要考虑你使用的任何协议的开销,等等。当然,以太网和IP有固有的开销,所以你不可能看到100%的利用率。
我build议使用像iperf( http://en.wikipedia.org/wiki/Iperf )这样的工具来devisetesting吞吐量。 还有一个名为Jperf的iperf GUI,但是基本的iperf命令行不难理解,嘿…你需要多久才能使用它?
BTW。 正如一些评论者所暗示的那样, 并不是像碰撞一样。 全双工以太网上不会发生冲突,而半双工千兆以太网则不存在。 :-)也不太可能与需要巨型帧有关,除非你用于testing的两台PC具有非常差的以太网卡或真正的低端CPU。 巨型帧对于充分利用千兆以太网不是必需的,尽pipe它可以在高带宽传输期间降低CPU利用率。 不幸的是,它可能会导致更多的问题比解决,我绝对不会build议启用它,除非你很确定你在做什么。
你用什么来testing你的链接?
如果你只是从内存中推出东西,那么很容易饱和一个100 Mbps的链接和一个1 Gbps的链接。
如果你想从磁盘读取内容并转移到另一个系统,那么你将受到磁盘性能的限制。
nicconfiguration为全双工而不是半双工?
当我testingnetworking吞吐量时,最好删除尽可能多的variables,如磁盘I / O或CPU限制。 以下是我使用的程序,可以说明您在networking中看到的典型最大值。
工具:
这两个实用程序应该可以在大多数现代* nix系统上使用,既可以预先安装,也可以通过源代码进行编译。
程序:
在一台计算机上运行以下命令来设置UDP侦听器。 (使用UDP将会提供更高的性能数字,因为没有TCP传输的开销。
nc -ulp 5000 > /dev/null
在另一台机器上,运行以下命令,replace侦听器的IP地址,通过networking向零侦听器发送一个零stream。 PV工具将显示接收机跟踪的当前性能。
pv < /dev/zero | nc -u listener-ip-address 5000
笔记:
这种方法在devise良好的networking中提供可预测的结果,并具有正常运行的设备 因此,它是一个很好的工具,可以帮助您发现networking本身或networking设备是否导致了“慢”的感觉。
如果要使用千兆以太网的全部吞吐量,则需要确保在整个networking中configuration巨型帧,或者至less在您测量性能的所有机器和交换机上configuration巨型帧。
但是,请记住,单个硬盘的最大传输速率通常是30-40 MByte / sec,并不接近千兆/秒。
我设法获得80%-90%的利用率,只是通过在100米和千兆networking共享之间复制文件
亚当和全双工的人是正确的。 此外,不要忘记,你的底层硬件也可能不会达到饱和1Gbps / 100Mbps的任务。 除非你有一个像样的RAIDconfiguration,体面的固态硬盘或者某种基于内存的硬盘,否则你可能不会在长时间内看到这种传输速率。
我从来没有看到在铜缆GigE链路上利用率达到50%以上,但是在光缆之间的思科交换机之间的饱和中继端口上我已经看到高达90%的速率。