千兆真的千兆吗?

千兆真的千兆吗?

当使用千兆网卡(服务器级英特尔)和 2 个带有交叉电缆的盒子时...我只看到管道的 %20-40 被使用。甚至跨路由器。

放入 2 张 100mbps 卡,交易相同。使用 20-40%。

是什么赋予了?

答案1

两块网卡,带交叉线:

您如何测试?您如何测量?当您说 20-40% 时,请告诉我们您在每个实例中确切的意思,以及您如何获得该数字。

以太网开销大约为每数据包 38 字节,而 TCP/IP 开销大约为 52 字节。对于 1500 字节数据包,在以太网上运行 TCP/IP,您将看到 94% 可能的数据吞吐量。

不过,发送应用程序可能会发送较小的数据块。以 UDP(用于视频流、语音等)为例。如果每个数据包发送 256 字节,加上 90 字节的开销,则利用率将达到 74%。

然后,您就有了操作系统和 TCP/IP 堆栈的开销 - 这两者都会增加延迟,而由于 TCP/IP 管理网络负载的方式(算法试图在不丢失数据包的情况下使用最大带宽),延迟将以复杂的方式影响带宽。

然后您的计算机上还有其他负载。如果您正在从速度较慢的硬盘驱动器复制碎片数据,您可能根本看不到网络瓶颈,而是 PC 其他地方的另一个瓶颈。

100base-T NIC 也是服务器级的吗?您确定它们不会将任何应在 NIC 上完成的处理卸载到操作系统吗?

NIC 在什么总线上?PCI、PCIe 等?总线上还有什么?NIC 是否与任何其他设备共享 IRQ?

您是否使用了最新的主板和网卡 BIOS(如果适用)?是否使用了最新的驱动程序?

该操作系统是服务器操作系统还是桌面操作系统(调度程序、堆栈等针对不同的性能场景进行不同的配置)?

有很多原因可能导致您无法获得所需的吞吐量。您上面提出的简单问题无法提供足够的信息来了解真正的问题所在。

在正常网络中,可能是由碰撞和其他网络流量引起的

以太网的功能非常强大,但它并不同步。这意味着两张卡可以同时开始传输数据,从而导致冲突。

两张卡通常会检测到冲突,并且它们都会后退一段随机时间,然后再尝试重新发送。

再加上以太网数据包和编码的开销,意味着即使在最好的情况下,你也不能真正期望利用率超过 80-90%。

您可以通过在计算机之间使用路由器和交换机而不是集线器来缓解这种情况,但如果数据太多,即使是路由器和交换机也会丢弃数据包,并且它们只能提高总利用率的几个百分点。

以太网数据包本身包括时钟、寻址等开销。如果您在网络上启用大数据包,那么数据包的开销相对于数据大小会变小,因此对于大传输,您可以获得更好的利用率。但是,如果您的应用程序需要大量较小的数据包,例如视频或音频流应用程序,这无济于事。即使您启用了大数据包,您可能仍然只会发送小数据包,因为这是应用程序正在发送的。

-亚当

答案2

我猜这是测试方法的一个限制。例如,如果您通过在两个系统之间传输文件进行测试,那么文件系统的性能可能是一个限制因素。您还需要考虑所使用的任何协议的开销等。当然,以太网和 IP 本身也有一些开销,因此您不太可能看到 100% 的利用率。

我建议使用 iperf 之类的工具(http://en.wikipedia.org/wiki/Iperf) 专为测试吞吐量而设计。 iperf 还有一个 GUI,称为 Jperf,但基本的 iperf 命令行并不难理解,嘿……无论如何,您需要多久使用它一次,对吧?

顺便说一句。不是,正如一些评论者所建议的那样,与冲突有关。冲突不会发生在全双工以太网上,而且没有半双工千兆以太网。:-) 它也不太可能与需要巨型帧有关,除非您用于测试的两台 PC 的以太网卡非常差或 CPU 非常低端。巨型帧是不是虽然它可以在高带宽传输期间降低 CPU 利用率,但对于充分利用千兆以太网来说,它是必不可少的。不幸的是,它造成的问题比它解决的问题还多,我肯定会不是建议启用它,除非您非常确定自己在做什么。

答案3

您使用什么来测试您的链接?

如果您只是从内存中推出内容,那么 100 Mbps 链路和大部分 1 Gbps 链路很容易饱和。

但是,如果您尝试从磁盘读取内容并传输到另一个系统,那么您将受到磁盘性能的限制。

答案4

当我测试网络吞吐量时,最好尽可能多地排除变量,例如磁盘 i/o 或 CPU 限制。这是我使用的程序,它可以说明您在网络中看到的典型最大值。

工具:

这两个实用程序都应该在大多数现代 *nix 系统上可用,要么通过软件包预先安装,要么能够从源代码编译。

程序:

  1. 在一台计算机上运行以下命令来设置 UDP 侦听器。(使用 UDP 将提供更高的性能数字,因为传输时没有 TCP 开销。)

    nc -ulp 5000 > /dev/null

  2. 在另一台机器上,运行以下命令,替换侦听器的 IP 地址,通过网络向 nc 侦听器发送零流。pv 实用程序将显示接收器跟踪的当前性能。

    pv < /dev/zero | nc -u listener-ip-address 5000

笔记:

  • 千兆以太网连接的理论最大值为 119MB/s(注意,M,不是 Mb
  • 还可以通过删除两个 nc 命令中的 -u 来测试 TCP
  • 在实际应用中,您永远无法达到 pv 输出中所示的性能数字。

这种方法在设计良好且设备正常运行的网络中可以产生可预测的结果。因此,它是一种很好的工具,有助于发现是网络本身还是网络设备导致了感知到的“缓慢”。

相关内容