High CPU load from virtio net drivers
-
I am runnign pfSense 2.2.1 as a VBox VM with two virtio NICs: one bridged to external eth0, the other to br0. The CPU is AMD quad core 1.5Ghz Kabini.
I though that using virtio drivers will offer better performance and lesser load, but I recently discovered that when there is a high rate upload or download, say 4 or 5 MB/s, things look rather grim:
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND 12 root -92 - 0K 224K WAIT 18:44 87.96% [intr{irq19: virtio_pc}] 12 root -92 - 0K 224K WAIT 15:56 75.99% [intr{irq16: virtio_pc}]
Is this normal and to-be-expected, or is there something wrong? Would other NIC drivers produce less load?
-
Disable checksum offload (System -> Advanced -> Networking tab); reboot.
Did not help? Move to e1000 and forget this.
-
Did some testing and those are my findings for Virtio NICs on VirtulBox:
2x Virtio (checksum offload disabled):
Transfer: 6mb/s, guest CPU 100% NIC1 + 70% NIC2
Host CPU usage: ~60-70%2x e1000:
Transfer: 6mb/s guest CPU 60% NIC1 + 60% NIC2
Host CPU usage: ~50-55%Transfer: 10mb/s guest CPU 85% NIC1 + 75% NIC2
Host CPU usage: ~63%