优化支持英特尔® 虚拟化技术的平台的虚拟环境

提交新文章

2007年11月05日 13:07


作者:Ken Strandberg

目录

前言

虚拟环境的优化能对虚拟机(VM)的整体运行效力,而非数据中心的本地环境产生重要的影响。优化并不具备高度精密性。它取决于多种因素,具体到部署的虚拟机管理器(VMM)、用户类型、以及运行的具体工作负载和服务器上可用的一般优化参数。

在英特尔,我们一直在测试 VMM 部署环境和支持英特尔® 虚拟化技术的平台的虚拟环境的优化,以便对后者进行性能指标测评。上述测试将帮助我们开发一些可优化虚拟环境的重要技术。这些技术一经研制,将被广泛应用于数据中心中。

本文将为您提供一些有益建议,助您优化基于英特尔® 虚拟化技术的平台的虚拟环境。根据您具体的用途、用户和工作负载情况,您可能会发现虚拟环境经过进一步的优化后,可带来更出色的性能表现。

在部署一台虚拟化服务器时,管理员应参考 VMM 开发人员提供的一些建议。例如,VMware* 会针对 Virtual Infrastructure 3*、ESX Server* 及其它 VMware 产品的部署和优化工作,提供大量的优化软件注意事项和白皮书。XenSource*、Novell*、Red Hat* 和 Virtual Iron* 也会提供一些部署各自产品的应用注意事项。

主要作用

几项核心平台和处理器架构特性可赋予虚拟环境与本地环境相同的优势。

  • 前端总线(FSB)和主频的作用——FSB 和主频在虚拟环境中能够像在本地部署中那样进行有效的扩充。而且频率越高,VM 的性能表现便越出色。
  • 高速缓存的作用——虚拟化部署得益于容量更大的高速缓存。然而,与本地环境一样,不同工作负载所能获得的优势也不尽相同。
  • 预取器的作用——能让本机操作系统达到最佳性能的预取设置通常也能为 VM 提供最佳性能表现。

64 位部署

若想采用一些 VMM 来运行 64 位客户机操作系统,您就必须在 BIOS 中启用英特尔® 虚拟化技术。请检查您正在运行的 VMM 是否支持该技术。

处理器优化

如何安排平台处理器内核上的 VM 任务将对 VM 的性能产生重大影响。本文将重点阐述用于优化处理器性能的两项可配置选项:超线程(HT)技术和处理器绑定。

超线程(HT)技术

大多数 VMM 都支持超线程(HT)技术。能让本地环境达到最佳性能的超线程(HT)技术设置通常也能为 VM 提供出色的性能。然而,使用超线程(HT)技术也存在着一些弊端。

如果 OS 在 CPU 中分配了两条争用相同资源的线程,那么采用超线程(HT) 技术就可能降低性能。表 1 展示了在含超线程(HT)技术的双核处理器平台上运行的 SysBench 性能指标评测中启用超线程(HT)技术的结果。

表 1.Sysbench 中超线程(HT)技术的影响

线程数

启用超线程(HT)技术

禁用超线程(HT)技术

CPU1%

CPU2%

Ops1

Ops2

CPU1%

CPU2%

Ops1

Ops2

4

22

20

298

296

40

40

321

318

8

34

33

578

571

68

68

629

629

16

55

56

909

901

97

98

971

980

32

59

57

917

909

97

99

1020

1042

                 

如果您在支持超线程(HT)技术的平台上部署了 VMware 的 Virtual SMP*,请登录 VMware 网站查阅 VMware 白皮书《VMware Virtual SMP 应用最佳实践》,以获取优化建议。

处理器绑定

现在,借助多核处理器和多处理器平台,您就能更加灵活地为物理内核(pCPU)或线程(逻辑 CPU)分配 VM 的虚拟 CPU(vCPU)。您对 vCPU 的分配方式将对 VM 和平台的性能产生直接影响。在设置 VM 时,您可采用以下配置选项:

  • 无绑定——VMM 调度程序的算法能够把 vCPU 自动分配给 pCPU 和逻辑 CPU。
  • 绑定或锁定——您可以覆盖 VMM 的调度程序,分配或锁定 vCPU 给一个或多个 pCPU 或逻辑 CPU。如果一台 VM 与一枚以上的内核锁定,那么这些内核的位置将决定它们是被锁定在相同的插槽(封装)中,还是横跨多个插槽。图 1 演示了上述绑定选项。

图 1:vCPU 与 pCPU 的绑定选项

无绑定

VMM 一般会对新创建的 VM 进行配置,以便在无绑定的情况下运行其 vCPU。在无绑定情况下的运行通常是最佳的选择。无绑定允许 VMM 调度程序横跨所有可用 pCPU ,以平衡全部 vCPU 负载。在活跃 vCPU 的总数多于 pCPU ,或 pCPU 过度使用时,无绑定的优势尤其明显。

锁定

当 vCPU 与一个 pCPU 锁定时,VMM 调度程序只能在特定 pCPU 上运行它们。当在特定内核上执行一个特定工作负载,使其优势得以发挥时,锁定 vCPU 会提升性能。上述工作负载的优势之一便是 pCPU 高速缓存能对工作负载的性能产生积极的影响。始终在相同的内核及其多种高速缓存上执行某类工作负载,就能将每条指令的高速缓存缺失率降至最低,从而大幅提升系统性能。

如果一台 VM 与一个以上的 pCPU 锁定,那么在一个插槽内或跨多个插槽锁定 pCPU 也会影响性能。此性能影响最好由实验结果决定。注:不同的平台 BIOS 可能会以不同的方式对 pCPU 进行编号。在实验前,您需要确保已对 BIOS 内核编号及其系统主板上的物理位置进行映射。图 2 展示了不同平台间映射的不同。

图 2:BIOS 编号到物理内核的映射

与报告 CPU 的物理位置(插槽)相比,英特尔提供的程序可谓简单实用,它只需向您报告 OS 的编号即可。如欲获取本程序,请访问以下网址:

http://www.intel.com/cd/ids/developer/asmo-na/eng/recent/275339.htm 

VMware Virtual SMP*

VMware Virtual SMP* 允许您在基于 VMware ESX* 服务器的 VM.中执行多个 vCPU。若要在 Virtual SMP 下配置 vCPU,您可以参照 VMware 网站上的 VMware 白皮书《VMware Virtual SMP 应用最佳实践》中的建议。

内存

由于分配给 VM 的内存来自系统的物理内存,因此您须谨慎使用这些内存。图 3 展示的是一项较好的内存分配操作。

活跃 VM 的总内存 ≤ .8 *(系统内存—VMM/主机 OS 内存)

图 3:活跃 VMM 内存的分配

活跃 VM 内存是重要的组件。您可以创建更多 VM,有些活跃,有些不活跃;当活跃任务完成时,您可以用不活跃的 VM 替代活跃的 VM。所有 VM 需要的总内存占据了 80% 以上的分配内存。但是,如果过多的活跃 VM 尝试使用多于所分配的内存,那么主机就会开始进行交换,而所有目标 VM 的性能也会随之降低。

VMware 资源池、共享、保留和限制

VMware Virtual Infrastructure 3* 允许您设置 CPU 和内存资源限制,确保 VM 和 VM 池的使用资源,并能设置出现冲突时资源的分配优先级。上述参数的设置方式不仅能影响性能,还能切实防止 VM 的启动。在VMWORLD 2006* 大会上,一家 VMware 实验室就如何确保资源的充分分配问题,为您提供了一些宝贵建议。如欲参考这些这些建议,请访问如下网址:

download3.vmware.com/vmworld/2006/labs2006/vmworld.06.lab04-PERFORMANCE-MANUAL.pdf 

存储与虚拟机

当涉及本地环境和虚拟环境这两种环境时,存储便是一个非常宽泛的主题。由于存在着诸多存储架构、技术和部署方法,优化面向 VM 的存储已超出了本文所涉及的范围。但是,为了帮助您提升虚拟环境的性能,我们仍然为您提供了以下建议:

当您在构建虚拟环境时,最好在一块硬盘上创建 VMM,并在尽可能多的各种硬盘上构建所有 VMM。通过为每台 VM 分配单独的物理盘,您将能利用更多的主轴实现最出色的性能。

如果您没有足够的物理硬盘进行此类部署也无妨,因为我们的实践经验表明,在每个主轴上部署最多两台 VM 也能为非磁盘密集型 VM 带来令人满意的性能。

如超过上述限额,您应考虑增加物理硬盘。

总结

优化虚拟环境能够为您的虚拟架构提供出色的性能。一些本地环境具备的平台优势同样适用于虚拟化的系统。然而,调整处理器绑定、内存以及部署 VM 磁盘存储的方式能够帮助您进一步提升性能。此外,您也应该参考一下 VMM 开发人员提出的建议。如果可能,您可以在非生产环境中进行测试,以实现面向您的具体工作负载、用户和系统硬件的更出色的性能优势。

在本文中我们总结了面向多种性能指标评测的技术。英特尔的《对基于英特尔® 虚拟化技术的平台上的优化虚拟环境的性能影响》一文也揭示了在标准性能指标评测中,我们所能够得到的一切结果。您可以访问英特尔网站下载此文。

作者简介

Ken Strandberg 是一名技术专栏作家兼开发人员培训讲师,曾撰写过诸如高性能计算、企业、基于高级 TCA 的模块化平台、融合通信和处理器架构等课题的文章。如欲与他联系,请发送电子邮件至 ken@kenstrandberg.com ,或访问他的个人主页: www.kenstrandberg.com 。