![我可以连接同一台主机上同一适配器上的两个以太网端口来测试端口性能并执行压力测试吗?](https://linux22.com/image/791626/%E6%88%91%E5%8F%AF%E4%BB%A5%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%8F%B0%E4%B8%BB%E6%9C%BA%E4%B8%8A%E5%90%8C%E4%B8%80%E9%80%82%E9%85%8D%E5%99%A8%E4%B8%8A%E7%9A%84%E4%B8%A4%E4%B8%AA%E4%BB%A5%E5%A4%AA%E7%BD%91%E7%AB%AF%E5%8F%A3%E6%9D%A5%E6%B5%8B%E8%AF%95%E7%AB%AF%E5%8F%A3%E6%80%A7%E8%83%BD%E5%B9%B6%E6%89%A7%E8%A1%8C%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95%E5%90%97%EF%BC%9F.png)
我有一张带有两个 10G 端口的以太网卡。我无法验证端口性能,也无法使用不同的系统逐张卡进行压力测试。我想通过连接单张卡上同一适配器上的端口 A 和端口 B,为每个端口分配一个 IP 地址,然后使用 iPerf 进行测试,来验证端口性能和压力测试?
听说这样一来,由于是在同一个操作系统下,两个端口之间不会产生实际的流量。
有人建议我在同一系统上创建一个虚拟机来分离两个端口,以便它可以产生实际流量来验证性能和压力测试,对吗?
如果我无法连接两个端口来验证性能,那么下面的拓扑怎么样?
端口 A -> 交换机 -> 端口 B,其中交换机配置为将数据包转发到端口 B。
这种方式能产生实际的交通吗?
答案1
我现在还没有好的方法来测试这个,但我会尝试使用命名空间来隔离接口,然后像使用两个不同的系统一样对它们进行测试。
ip netns add test1
ip netns add test2
ip link set eth0 netns test1
ip link set eth1 netns test2
ip netns exec test1 bash
然后,您可以使用和在两个命名空间中获取 shell ip netns exec test2 bash
,然后按照您的描述运行测试。
删除这些命名空间ip netns del testX
将使您的接口恢复其正常配置,但为了完整性,您也可以手动将它们移回。
要将接口移回默认命名空间,您可以ip link set ethX netns 1
在每个命名空间 shell 中或ip -n testX link set ethY netns 1
在默认命名空间中使用。在这些命令中,1
指的是您要使用的命名空间中进程的 PID,在本例中init
是作为系统默认进程的进程。