ESXI,pfSense,10gbE

美好的一天! 我会尽量让这个简短而甜美。 我目前的设置是:

XS708T NETGEAR 10gbE交换机

ESXi计算机1:

  • 2个Intel 10gbE
  • 一个vSwitch上带有WAN的pfSense(VM),另一个vSwitch上的LAN,每个上面的NIC都是分别的。
  • pfSense,Ubuntu服务器(x2),FreeNAS服务器,Windows Server虚拟机

ESXi机器#2:

  • 1x Intel 10gb(SFP +)
  • Ubuntu服务器(x2),FreeNAS服务器,Windows Server虚拟机

VLAN的:设置在pfSense和交换机上

  • 10 = VM的
  • 20 = LAN_OTHER
  • 30 = WIFI
  • 99 =pipe理员

所以问题就出在这个问题上:在同一个ESXi机器上的两个Ubuntu VM之间使用iperf时,在同一个VLAN上能够达到全部10GB / s的吞吐量。 我也跑了两个方向。 观察pfSense上的systat -ifstat,我可以validation没有stream量通过pfSense传播。 如果我尝试在同一个或不同的ESXi计算机上使用两个Ubuntu虚拟机,但使用不同的VLAN(即:10和99),则会降低到大约2-3 GB / s的吞吐量。 在这个testing中,我可以看到所有通过pfSense传输的stream量。

所以我的思维过程就是这样。 我的交换机已经被validation可以在同一个VLAN上处理10GB / s的吞吐量。 我在所有的testing过程中都监测过pfSense,以确认我没有遇到任何硬件(CPU)限制。

那么这是我的设置,或者可能是我的pfSense虚拟机的问题? 任何和所有的帮助表示赞赏! 谢谢!

pfSense虚拟机具有相当多的开销,可以通过主机网卡,主机vSwitch,复制到虚拟机,传递来宾堆栈,进行处理,出口数据包以相同的方式返回。 所有这一切都发生在软件中,并需要相当多的上下文切换。 这些导致数据包的延迟以及通过所得到的带宽延迟产品可能会限制延迟敏感的传输协议(如TCP)的整体吞吐量。

有三种基本的方法:减less延迟(为虚拟机预留主机资源,使用半虚拟化的vNIC或带有直通的专用网卡,微调NUMA设置),增加TCP窗口缩放的TCP接收窗口,或者使用多个TCPstream同时。