
У меня есть хост Arch Linux, на котором запущен виртуальный маршрутизатор.
При использовании гостевой LXC в качестве маршрутизатора все отлично. Я получаю 100 Мбит Up/Down и почти не использую процессор вообще.
Однако, когда я использую libvirt gest (pfSense FreeBSD) в качестве маршрутизатора, всякий раз, когда через гостевую систему проходит большой сетевой трафик, загрузка ЦП становится неоправданно высокой (до 100%), но хуже всего то, что пропускная способность сети падает вдвое! Я получаю максимум 45-49 Мбит.
Хост не поддерживает сквозную передачу PCI, поэтому вот моя конфигурация для виртуальной машины libvirtd:
Nic1 (wan)
Network source: Direct ‘eth0’
Source mode: passthrough
Device model: virtio
Nic2 (lan)
Bridge name: br0
Device model: virtio
Я попробовал e1000, но это абсолютно ничего не изменило.
Host CPU: AMD A4-5000 Kabini
Guest CPU: default or Opteron_G3
Опрос оборудования в pfSense отключен, а pfSense ifconfig показывает следующее:http://storage5.static.itmages.com/i/16/1217/h_1481996196_8871112_a2f0d75655.png
Это продолжается уже больше года, с тех пор как я начал использовать KVM. Если я не решу эту проблему, мне придется выбросить libvirt, потому что такая производительность неприемлема.
решение1
Это связано с драйверами FreeBSD для Virtio, они просто не справляются с задачей работать так же быстро, как драйверы Linux.
https://forum.proxmox.com/threads/poor-virtio-network-performance-pfsense-guest-proxmox-3-4.23933/
^^ Выше приведен пост, в котором подробно описывается несколько действий, которые вы можете выполнить, чтобы помочь, например, отключение аппаратной разгрузки контрольной суммы на гостевой и хостовой машинах, а также в настройках pfSense (обязательно перезагрузите виртуальную машину перед повторным тестированием).
Я пытался запустить pfSense поверх Proxmox (на базе Debian) и на гигабитных интерфейсах на «голом железе» получал 940-980 Мбит/с, но на гостевой виртуальной машине получал максимум 650-700 Мбит/с.