linux - 如何提高KVM VPS的网络性能

标签 linux performance networking kvm

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

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

最佳答案

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

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

问题:

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

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

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

有一些 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

关于linux - 如何提高KVM VPS的网络性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682850/

相关文章:

java - GridView 加载大图片资源慢

mysql - 如何快速将非常大的 csv 文件导入 mysql?

c++ - 高频接收UDP包 : packet loss?

c++ - 消除相似函数定义的重复代码

Docker 两个容器两个公共(public)IP,相同的端口

linux - 如何制作 awk 变量的 bash 副本?

linux - Bash - 搜索和追加字符串

C++(在 Linux 下)程序没有给出预期的输出(定时器)

python - 具有子处理功能的多处理

c++ - 如果我将一个大函数声明为内联函数怎么办?