
我有一台運行虛擬路由器的 Arch Linux 主機。
當使用 LXC guest 作為路由器時,一切都很好。我的上行/下行速度為 100MBits,幾乎沒有 CPU 使用率。
然而,當我使用libvirt gest (pfSense FreeBSD) 作為路由器時,每當有大量網路流量通過來賓時,CPU 使用率就會變得不合理的高(高達100%),但最糟糕的是網路吞吐量減半!我的最大頻寬為 45-49Mbits。
主機不支援 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
這與 Virtio 的 FreeBSD 驅動程式有關,它們根本無法勝任與 Linux 驅動程式一樣快的運行速度。
https://forum.proxmox.com/threads/poor-virtio-network-performance-pfsense-guest-proxmox-3-4.23933/
^^ 以上是一篇文章,詳細介紹了您可以採取的一些幫助措施,例如關閉來賓和主機上以及 pfSense 設定中的硬體校驗和卸載(請務必在重新測試之前重新啟動虛擬機器)。
我一直在嘗試在 Proxmox(Debian 基礎)之上運行 pfSense,並在裸機上的演出介面上獲得 940-980 Mbps,但在 VM guest 上獲得最大 650-700 Mbps。