1.3. 虚拟化性能功能和改进
Red Hat Enterprise Linux 7 中的虚拟化性能
以下功能提高 Red Hat Enterprise Linux 7 中的虚拟化性能:
- 自动 NUMA Balancing
- 自动 NUMA 平衡提高了在 NUMA 硬件系统上运行的应用程序的性能,无需任何 Red Hat Enterprise Linux 7 客户机所需的手动调整。自动 NUMA 平衡移动任务(可以是线程或进程),更接近他们访问的内存。这可启用零配置的良好性能。然而,在某些情况下,提供更准确的客户机配置或将 guest 设置为托管 CPU 和内存的影响可能会提供更好的结果。有关自动 NUMA 平衡的更多信息,请参阅 第 9.2 节 “自动 NUMA Balancing”。
- virtio 型号
- 任何具有 virtio 模型的虚拟硬件都没有模拟所有特定硬件的开销。VirtIO 设备拥有较低的开销,因为事实上专为虚拟化环境而设计。然而,并非所有客户机操作系统都支持此类模型。
- 多队列 virtio-net
- 种联网方法,它允许数据包发送/接收处理,以便通过客户机的可用 vCPU 数量进行扩展。有关多队列 virtio-net 的详情,请参考 第 5.4.2 节 “multi-Queue virtio-net”。
- bridge Zero Copy Transmit
- 零复制传输模式可降低主机 CPU 开销,从而降低在客户机网络和外部网络之间传输大型数据包的开销,且不会影响吞吐量。在 Red Hat Enterprise Linux 7 虚拟机上完全支持桥接零副本传输,但默认禁用。有关零副本传输的详情请参考 第 5.4.1 节 “bridge Zero Copy Transmit”。
- APIC 虚拟化(APICv)
- 更新的 Intel 处理器提供高级程序中断控制器(APICv)的硬件虚拟化。APICv 通过允许客户机直接访问 APIC 提高了虚拟化 AMD64 和 Intel 64 客户机性能,显著降低中断延迟以及 APIC 导致的虚拟机数量。此功能默认使用新的 Intel 处理器,提高 I/O 性能。
- EOI Acceleration
- 较旧芯片组上的高带宽 I/O 结束中断加速,无需虚拟 APIC 功能。
- 多队列 virtio-scsi
- 提高了 virtio-scsi 驱动程序中的多队列支持存储性能和可扩展性。这可让每个虚拟 CPU 有一个单独的队列和中断,以便在不影响其他 vCPU 的情况下使用。有关多队列 virtio-scsi 的详情,请参考 第 7.4.2 节 “multi-Queue virtio-scsi”。
- 半虚拟化的 Ticketlocks
- 半虚拟化票据锁定(pvticketlocks)提高了在具有超额订阅 CPU 的 Red Hat Enterprise Linux 7 主机上运行的红帽企业 Linux 7 虚拟机的性能。
- 半虚拟页面故障
- 当虚拟页面错误试图访问主机交换后的页面时,会将半虚拟化页面错误注入到客户机中。这可提高在主机内存被过量使用且客户机内存被交换时的 KVM 客户机性能。
- 半虚拟时间
vsyscallOptimization - gettimeofday 和 clock_gettime 系统调用通过
vsyscall机制在用户空间中执行。在以前的版本中,发出这些系统调用需要系统切换到内核模式,然后返回到用户空间。这可以大大提高某些应用程序的性能。
Red Hat Enterprise Linux 中的虚拟化性能功能
- CPU/Kernel
- NUMA - 非一致性内存访问.有关 NUMA 的详情,请参阅 第 9 章 NUMA。
- CFS - 完全公平调度程序.先进的面向类的调度程序。
- RCU - 读取复制更新.更好地处理共享线程数据。
- 最多 160 个虚拟 CPU(vCPU)。
- memory
- 用于内存密集型环境的巨页和其他优化。详情请查看 第 8 章 memory。
- Networking
- vhost-net - 基于内核的快速 VirtIO 解决方案。
- SR-IOV - 用于接近原生的网络性能级别。
- 块 I/O
- AIO - 对线程的支持与其他 I/O 操作重叠。
- MSI - PCI 总线设备中断生成。
- 磁盘 I/O 节流 - 控制客户机磁盘 I/O 请求,以防止过度利用主机资源。详情请查看 第 7.4.1 节 “磁盘 I/O Throttling”。
注意
有关虚拟化支持、限制和功能的详情,请查看 Red Hat Enterprise Linux 7 虚拟化入门指南 以及以下 URL: