I am trying to find a detailed explanation for the behavior I have observed regarding my Intel 10Gbit NICs with several servers at work.
The controllers are X540-AT2 (rev 01) made by Intel and both machines have the same NICs. Machine 1 is running CentOS 6.9 and has two Intel® Xeon® CPU E5-2670 v2 @ 2.50GHz. Machine 2 is running CentOS 7 and has dual Intel® Xeon® CPU E5-2660 v3 @ 2.60GHz. Using iperf3 on our local 10Gbit capable network, Machine 1 and Machine 2 could only ever achieve ~4Gbit to another 10Gbit machine on the same switch. Other machines can communicate with one another at full 10Gbit speeds. ifconfig shows all NICs properly configured and recognized at correct speed and duplex.
Perplexed we restarted the machines, no change. We checked configuration, we checked cables, everything seemed correct. Only while tracking down another issue did we realize that VT-x was disabled on both machines. We enabled VT-x on Machine 1 and retested just for the sake of doing so, only to notice that we now had 10 Gbit speeds. The same was true on Machine 2, enable VT-x and we have 10Gbit speeds.
So we solved the problem of our bad network speeds, but I am confused how VT-x settings have any impact on the performance of our NICs on physical machines. Neither Machine 1 or Machine 2 are running any virtual machines. I am left with speculating that hardware may use VT-x instructions to achieve higher performance but I can’t find any proof of this online. Does any one have an explanation of how this setting could interact with the NICs. We should have VT-x enabled anyways, so it’s fine if I don’t know why, but I really want to know WHY.