本文为翻译摘要,具体性能待实践验证

在一个物理服务器上可以运行的KVM虚拟的最大数量并没有一个明确的权威说明,以下内容综合一些文档来提供一个感性认识,具体情况请以实践为准。

每个VM的虚拟内核数量

KVM允许用户为每个虚拟机设置多个虚拟内核,从实践来看每个虚拟机的虚拟核建议如下:

  • 每个VM建议只使用一个核:请参考kvm性能优化,对于多核要考虑到数据缓存命中率,建议使用cpu绑定,并且不能跨cpu,否则会导致缓存效率降低并且跨CPU节点访问缓存的开销。
  • 每个VM的虚拟cpu核数量不要高于物理服务器可提供的真实cpu核数量:如果超配了cpu核,会导致持续的cpu切换,性能降低明显。

每个物理主机的KVM虚拟机数量

大多数笔记本和台式机的处理器都支持硬件虚拟化,但是如果分配了超过硬件支持的虚拟机数量,(根据RedHat Eduardo Habkost说明)虽然配置VM使用KVM来实现CPU虚拟化,就不会再使用QEMU CPU模拟模式(TCG)),应该会出现CPU资源竞争。

KVM Performance Limits for virtual CPU cores一文中个提供了一个经验数据: 每个物理服务器cpu核支持8个虚拟机cpu核 。即,物理服务器是2个cpu核的环境,可以运行16个单vcpu的虚拟机,或者8个使用双vcpu的虚拟机。

内存限制

启动KVM虚拟机时候,可以定义VM使用的内存大小。所有运行在主机上的虚拟机的内存总量有可能可以超配(overbooked)。

有关KVM内存限制的大多数信息汇总得到的经验是:可以最多超配到物理服务器的150% (包括物理主机使用的内存)。例如,你的笔记本有8GB内存,则可以运行10个1GB内存的虚拟机,这样加上物理服务器操作系统运行需要的2GB内存,就可以实现实际物理内存的150%超配。

然而,上述配置是假设所有guest虚拟机并不是同时使用分配给它们的所有内存。如果运行的应用程序消耗了每个虚拟机的所有内存,就会导致极差的性能。(此时会导致大量的内存交换)

详细的KVM内存限制,网络接口和其他资源,在Fedora projetSUSE Linux Enterprise Server 11 SP4 Virtualization with KVM:Performance Limitations详细列出了KVM的限制,特别是有关硬件和性能的限制:

虚拟硬件 最大限制
Guest最大支持虚拟内存 4 TB
Guest最大支持vcpu数量 256
每个Guest支持最大虚拟网络设备数量 8
每个Guest支持最大块设备数量 4个模拟设备(IDE),通过virtio-blk支持20个para-virtual设备
每个Host物理服务器支持最大VM数量 所有guest虚拟机的vcpu数量总和不能大于物理服务器CPU核数的8

SUSE测试过上述虚拟硬件的限制,报告说VM安装和工作正常,并且在达到上限时没有出现明显的性能恶化(CPU,内存,磁盘,网络)。

分类 完全虚拟化(Fully Virtualized) 半虚拟化(paravirtualized) 主机传递(Host Pass-through)
CPU,MMU(内存管理单元) 7% 不适用 在使用EPT(intel)或NPT(AMD)的硬件虚拟化时 97% / 在使用SPT do?)的硬件虚拟化时 85%
Network I/O (1GB LAN) 60% (e1000虚拟网卡) 75% (virtio-net) 95%
Disk I/O 40% (IDE虚拟设备) 85%(virtio-blk) 95%
Graphics(非加速) 50% (虚拟VGA或Cirrus) 不适用 不适用
时间精度(没有使用NTP) 95%-105%(100%表示完全准确) 100%(kvm-clock) 不适用

请参考CPU MODELS AND TOPOLOGY了解详细的CPU model配置方法。

CPU host-passthrough 模式表示将物理CPU的一些特性传给虚拟机使用,虚拟机里看到和物理CPU一模一样的CPU品牌型号,但不同型号CPU的宿主机之间虚拟机不能迁移。

Fedora虚拟化手册

Fedora projet文档陆续发布了几本有关虚拟化的手册

参考

results matching ""

    No results matching ""