如何提高 KVM VPS 的网络性能

How to improve KVM VPS's network performance

我正在使用 QEMU 来虚拟化 KVM VPS。我已经在主机的网络接口上关闭了 gso、tso、tx、rx 等所有东西,我的 VPS 使用 VirtIO 作为 NIC。当我在主机上进行速度测试时,结果通常是大约 800 Mbps 的下行链路和 600 Mbps 的上行链路。但是,当我在 VPS 中进行相同的测试时,只能获得 300/200 Mbps,好像有什么东西限制了速度到 300 Mbps。但是我检查了一切,并没有找到网络性能差的原因。

有什么方法可以进一步提高KVM中的网络性能VPS?我的主机使用双 Xeon E5530(8 核 16 线程)并具有 64 GiB 的物理内存和大约 100 VPS(主要是 256 MiB Memory/1 核心)运行。主机的平均负载约为 3.0。主机和 VPS 在主机上使用相同的 NIC,网桥设置正确。

我在从 Xen 到 KVM 的迁移过程中遇到了一些问题,并研究了我们得出的下一个结论。

1.- 我们的最佳性能是将一些新的 NIC 插入服务器并将 pci 设备分配给 VPS。 您将获得与未虚拟化时相同的性能。

问题:

  • 您需要 VPS 链接到新的外部 NIC controller.Pci 直通。
  • 您需要为每个要配置的端口配备一个网络控制器。搜索iommu信息。
  • 忘记在分配有 pci 的主机之间进行实时迁移。

2.- 使用 virtio 驱动程序和性能调整。

我们获得了更好的性能,但无法与 pci 直通进行比较。

有一些来自 KVM 人员的研究说他们达到了很好的性能,我不能说这不是真的,但我无法复制那种性能。 http://www.linux-kvm.org/page/Using_VirtIO_NIC

调整: 按照下一个指南,您可以找到一些获得最佳性能的技巧。

我们注意到多队列 virtio-net 方法的一项重要改进,但我想如果您的 VPS 只使用一个内核,它对您没有用。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Tuning_and_Optimization_Guide/chap-Virtualization_Tuning_Optimization_Guide-Networking.html#sect-Virtualization_Tuning_Optimization_Guide-Networking-General_Tips