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?


  • Banned

    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%


Log in to reply