Systems & Network Bench

fq on a virtio nic

BBR wants fq. On a bare-metal 10G nic that pairing is boring and correct. On a virtio guest the nic already has a host queue in front of it, and fq on the guest only orders what the hypervisor has not already mixed.

I still set net.core.default_qdisc = fq. The pacing BBR does through fq is the part that survives virtualization. What does not survive is the fantasy that the guest qdisc is the bottleneck. When a flow looks bursty, I look at the host first, then at tc -s qdisc inside the guest, and I stop treating those two graphs as the same machine.

Back to the notes