A food vendor in the US has started using their old slogan from the 80s again directing people to wonder where the main point of the product is. I’ve started to see some of the same questions around our Intel® Ethernet Controller I350 product and queues. Our Intel® 82576 GbE Controller product had 16 queues per port, and as a virtualization product, it really excelled. Now our I350 part is out, and people are looking at it having only 8 queues per port, and exclaiming “Where’s the queues!”
An easy reaction to have. You have to look at the math and typical usage models to see why we went in the direction we did. The I350 is a quad port product, which means the total number of available queues is the same as the 82576 product. But by spreading that load across four physical ports it allows for more total throughput and efficiency. A modern CPU can do 1 Gigabit of traffic on a single queue with very little CPU overhead, something that is very hard to do on a 10 Gigabit port. So having extra queues at 1 Gigabit allows for oversubscription, which means more applications or processes using the same maxed out port. By spreading the same number of queues across four physical ports it avoids the oversubscription. I’ve heard people talking about some O/S vendors have been recommending one physical port per virtual machine! I’d recommend one queue per VM. One queue per CPU core has been enough at 1G for a while. So with a single I350 quad port, that means 32 CPU cores, which is hard to do, or 32 VMs which is easier to do. But 32 VMs is a lot of them. With the quad port density you can scale quickly without having to add switch chips which add to latency. Four quad port I350 cards would give you 128 VMs or 128 cores, all at a modest amount of slots. With our Virtual Machine Device Queues (VMDq) and SR-IOV technologies you don’t have to do one core one queue, or one VM per queue, you can share queues efficiently and effectively. But with that many why share? All this applies to all the other queue using technologies. With RSS, for example, the cores are the thing, and most machines don’t have 32 cores. Yet.
We do make a dual port I350 product, and there will be a decrease since there are not enough ports to make up the loss of the queues per port. But that product is designed to allow design compatibility with our new 10 Gigabit BASE-T product, so it’s designed to fulfill a different market role. This new product has over a hundred queues, so the I350 and even the 82576 can’t keep up. The dual I350 was designed to allow a 1G LOM today that can be upgraded to a 10 Gigabit LOM without a redesign (if designed right to start with). This dual build strategy is the point of the I350 dual, so in the interest of bringing the new features of the I350 to market, the tradeoffs of queues was made. And leaving the dual port I350 internally the same as the quad port I350 allowed us to be timely in our product offerings.
Thanks for using Intel® Ethernet!