目录
一、简介
KVM 虚拟机管理程序会自动过量分配 CPU 和内存。这意味着,与系统上的物理资源相比,可以分配给虚拟机的虚拟化 CPU 和内存更多。这是可能的,因为大多数进程不会始终访问 100% 的已分配资源。
因此,未充分利用的虚拟化服务器或桌面可以在较少的主机上运行,从而节省了大量系统资源,最终效果是减少功耗、冷却和服务器硬件投资。
二、内存超分(过量使用)
在 KVM 虚拟机管理程序上运行的虚拟机没有为其分配专用的物理 RAM 块。相反,每个虚拟机都充当一个 Linux 进程,其中主机物理机的 Linux 内核仅在请求时分配内存。此外,主机物理机的内存管理器可以在其自己的物理内存和交换空间之间移动虚拟机的内存。
过量使用要求在主机物理机上分配足够的swap交换空间来容纳所有虚拟机,并为主机物理机的进程分配足够的内存。作为基本规则,主机物理机的操作系统需要最大 4 GB 的内存以及至少 4 GB 的swap交换空间。有关确定交换分区的适当大小的高级说明,请参阅 Red Hat 知识库。
重要
对于一般内存问题来说,过量使用并不是一个理想的解决方案。处理内存不足的推荐方法是为每个虚拟机分配较少的内存,向物理主机添加更多物理内存,或利用交换空间。
如果频繁交换虚拟机,则虚拟机的运行速度会变慢。此外,过量使用可能会导致系统内存不足 (OOM),从而导致 Linux 内核关闭重要的系统进程。如果您决定超额使用内存,请确保执行了足够的测试。请联系 Red Hat 支持部门,以获取有关过量使用的帮助。
过量使用不适用于所有虚拟机,但已发现在桌面虚拟化设置中工作,使用密集程度最低,或使用 KSM 运行多个相同的客户机。有关 KSM 和过量使用的更多信息,请参阅《Red Hat Enterprise Linux 7 虚拟化调优和优化指南》。
重要
设备分配不支持内存过量使用。这是因为在使用设备分配时,必须静态预分配所有虚拟机内存,以便与分配的设备启用直接内存访问 (DMA)。
三、cpu超分(过量使用)
KVM 虚拟机管理程序支持超额使用虚拟化 CPU (vCPU)。只要虚拟机的负载限制允许,虚拟化 CPU 可能会超额使用。超额使用 vCPU 时要小心,因为负载接近 100% 可能会导致请求丢失或响应时间不可用。
在 Red Hat Enterprise Linux 7 中,可能会对具有多个 vCPU(称为对称多处理 (SMP) 虚拟机)的虚拟机过量使用。但是,在虚拟机上运行的内核数多于物理 CPU 上存在的核心数时,可能会遇到性能下降的情况。
例如,具有四个 vCPU 的虚拟机不应在具有双核处理器的物理主机上运行,而应在四核物理主机上运行。由于程序获得的 CPU 时间少于所需时间,因此过度使用超过 SMP 虚拟机的物理处理核心数会导致性能显著下降。此外,不建议每个物理处理器核心分配的 vCPU 总数超过 10 个。
使用 SMP 虚拟机时,一些处理开销是固有的。CPU 过量使用可能会增加 SMP 开销,因为使用时间切片将资源分配给虚拟机可能会使虚拟机内部的 CPU 间通信变慢。随着拥有更多vCPU或者更高超配比的虚拟机增加,这种开销也会增加。。。
当单个物理主机具有多个虚拟机,并且每个虚拟机的 vCPU 数量与物理