这个测试到底起什么作用(环回 TCP 网络性能)?

这个测试到底起什么作用(环回 TCP 网络性能)?

我在 phoronix 测试套件中发现了微基准称为“Loopback TCP Network Performance 1.0.1”,与使用的命令相同这里

nc -d -l 9999 > /dev/null  &
time dd if=/dev/zero bs=1M count=10000 | nc localhost 9999 

它是否确实强调物理网络接口或仅强调相关的内核层?

所以问题是:我们可以将这个命令视为“网络”测试吗?

答案1

它不测试任何物理网络基础设施,甚至不测试本地网络接口。

测试的是环回接口。它大致是一个将计算机连接到自身的虚拟网络接口。

测试包括通过 TCP/IP 实现层发送零字节,直到模拟硬件设备loopback,然后再次返回堆栈。

该测试告诉您网络堆栈实现的速度有多快,这主要取决于网络数据在途中需要复制的频率。仅测试吞吐量,忽略延迟。

只要机器速度足够快,能够处理流量,结果就不会有太大的实际意义。也许它与 10GB 网络连接或多个 1GB 连接有关。

在单处理器机器上,我怀疑对性能的主要影响是读取器和写入器的进程调度 - 这更像是测试调度算法。但假设两个nc实例都可以使用单独的 CPU 核心,那应该不是问题。

它可以被视为网络测试,因为内核中的网络堆栈实现是网络的重要组成部分。

相关内容