虚拟盒桥接网络 - 慢吗?

虚拟盒桥接网络 - 慢吗?

我正在 Linux(服务器)和 Windows 7(客户端)上开发一些网络应用程序。

不过,我想知道虚拟盒是否是造成网络速度慢的原因。

我想尝试使用 iperf 来查看我的应用程序是否存在问题,并查看真实的吞吐量。

C:\Users\XEN\Downloads>iperf.exe -c 192.168.2.104 -u -p 3000 -w 16000
------------------------------------------------------------
Client connecting to 192.168.2.104, UDP port 3000
Sending 1470 byte datagrams
UDP buffer size: 15.6 KByte
------------------------------------------------------------
[148] local 192.168.2.105 port 58801 connected with 192.168.2.104 port 3000
[ ID] Interval       Transfer     Bandwidth
[148]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[148] Server Report:
[148]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  3.086 ms    0/  892 (0%)
[148] Sent 892 datagrams

Linux 端:

matt@blaze:~/dev$ iperf -s -p 3000 -u
------------------------------------------------------------
Server listening on UDP port 3000
Receiving 1470 byte datagrams
UDP buffer size:   122 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.104 port 3000 connected with 192.168.2.105 port 58800
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  3.625 ms    0/  894 (0%)
[  4] local 192.168.2.104 port 3000 connected with 192.168.2.105 port 58801
[  4]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  3.086 ms    0/  892 (0%)

看起来太慢了!我正确使用了 iperf 吗?这是 VirtualBox 的问题吗?

更新:看来 TCP 表现更好。我得到了 460Mbits/s。更新 2:使用 UDP 通过 Linux 环回接口的速度为 1.05Mbit/s!Linux 内核是罪魁祸首吗?还是 iperf 只是对 UDP 不起作用?

有任何想法吗?

答案1

关于老问题,但请阅读帮助信息。如果您希望 UDP 发送速度更快,请使用 -b 选项:

-b, --bandwidth #[KM] 对于 UDP,以比特/秒为单位的发送带宽(默认 1 Mbit/秒,隐含 -u)

答案2

回答我自己的问题。

在客户端尝试过这个。

iperf.exe -c 192.168.2.104 -b 1g

结果如下

C:\Users\XEN\Downloads>iperf.exe -c 192.168.2.104 -b 400m
WARNING: option -b implies udp testing
------------------------------------------------------------
Client connecting to 192.168.2.104, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[148] local 192.168.2.105 port 50973 connected with 192.168.2.104 port 5001
[ ID] Interval       Transfer     Bandwidth
[148]  0.0- 4.5 sec  52.9 MBytes  99.6 Mbits/sec
[148] Server Report:
[148]  0.0- 4.4 sec  52.9 MBytes  99.8 Mbits/sec  0.864 ms    0/37719 (0%)
[148] Sent 37719 datagrams

看来 Windows 或 VirtualBox 都有一些 UDP 限制。我无法让它超过 100Mbit。在 Linux 上,我使用相同命令实际上超过了 1Gbit。我注意到 Windows 缓冲区大小只有 8Kb。在 Linux 上是 122Kb。所以我会尝试增加它。

编辑:总之,是的,它有点慢。我会与 VMWare 进行比较,或者尝试 NAT 网络。

答案3

我可以追踪我的交换机的吞吐量很差(甚至从 VirtualBox 主机到其自己的客户机也是如此)。如果可以,请尝试插入另一台交换机 - 甚至拔下电源进行测试。

virtio如果可以,请尝试NIC 设置。virtio 将我的 udp 数据包丢失从“频繁”减少到“零”

更新从 OP 的Update部分(回送很慢)来看,我的建议似乎无关紧要。不过,我会把它们留在这里,以便其他可能带着与我的处方相符的症状来到这里的人受益。

相关内容