如何测量每个 eth0 配置有 2 个 IP 地址的网络适配器的性能损失?
网卡有 2 个物理接口(端口):eth0 和 eth1,其中仅启用 eth0 并配置了 2 个 IP:一个用于主机(Ubuntu 8.04),一个用于虚拟机(VirtualBox 4.x 桥接模式)。
如果我将第二个 IP 配置为 eth1 并将虚拟机设置为桥接,这会产生什么影响吗?
答案1
如果你想措施性能损失,您需要创建适当的客户端/服务器设置。并根据您的喜好运行传输测试。
但是,增加 IP 地址不会对性能造成影响。如果您配置了多个 MAC 地址或以混杂模式运行接口(如果您有桥接设置,则可能会增加 CPU 使用率),因为主机需要评估在 eth0 上接收到的所有流量,而不能使用 NIC 对广播和“自己的”MAC 地址进行过滤。但是,在正确配置的交换网络中,影响可以忽略不计 - 交换机主要只会将相关流量转发到接口。
答案2
如果您已经有可用的电缆、NIC 和交换机端口,请使用 2 个物理端口。
交换机具有内部缓存,每个端口的分配都是固定的。使用两个端口 = 可用缓存增加一倍。有些 NIC 具有内部缓存(如果是多端口 NIC,则每个端口都有)。
交换机可以过滤一些广播流量,端口越多=每个端口的广播量就越少。
当流量达到最大吞吐量时,冲突重新传输将增加负载,两个端口 = 每个端口的流量更少 = 潜在冲突更少。
在大多数配置中,您应该能够在单个 NIC 上运行 16 个或更多 IP,而不会产生任何可测量的差异。如果您从不填充交换机缓存、使用“嘈杂”广播或多播协议,或者以超过 75% 的最大额定吞吐量运行连接,您将看不到可测量的差异来证明 NIC、交换机端口和额外布线的成本是合理的。
使用多个端口的最佳理由是:
- 在托管智能交换机上使用 VLAN、网络寻址、路由和/或源/目标/协议访问控制实现安全/网络分段。
- 调试/协议捕获和分析,减少混乱,减少过滤需求。
我们通常在每个开发虚拟化托管服务器上运行 8 到 12 个轻负载虚拟客户端,且没有网络问题。(单个 NIC、桥接虚拟、每个 NIC 8-12 个 IP 地址)。
答案3
只需设置不同的场景,然后使用 netperf、iperf 等工具进行测试,甚至使用简单的 FTP 传输一些大文件。
基本答案是,您可以在同一个接口上拥有几乎无限的 IP。这不是问题。
但是虚拟交换机可能会有一些开销。不过,这很少是个问题,因此你在网上很少能找到关于这方面的信息。
我没有使用过 VirtualBox,但是在许多生产千兆环境中使用 Linux 软件桥接堆栈和 OpenVZ,没有任何问题或性能损失。
如果您确实想要性能,那么只需将两个接口绑定为 LACP(802.3ad)对...