为虚拟机分配处理器的四个最佳实践虚拟化
在为虚拟机分配资源时,关注最多的是内存以及存储I/O瓶颈,但是为虚拟机分配的处理器对虚拟机性能同样具有重大影响。本文讨论虚拟机CPU分配的四个最佳实践。
遵从应用程序推荐值
在分配虚拟CPU时你应该坚持的第一个最佳实践就是遵从运行在虚拟机之上的操作系统以及应用程序的要求。虚拟机的默认配置通常不满足应用程序要求,即使是应用以及hypervisor是由同一厂商生产的。
以SharePoint 2013为例, SharePoint 2013通常需要配置四个CPU核心。SharePoint是一个专门设计的、能够使用多个CPU核心的多线程应用。与之相反,除非管理员指定,Hyper-V新创建的虚拟机只包含一个虚拟处理器。采用默认的配置SharePoint 2013将运行在单处理器或者单核系统中,但这样做往往会导致应用性能很差。
留意推荐的vCPU比率
另一个最佳实践是留意推荐的CPU比率。然而,你必须牢记CPU比率应该被当作指南看待。但一切都不是绝对的,因为生产虚拟机的工作负载几乎不会与实验室的测试环境相同。
将CPU比率当作指南而不是一个绝对要求的另一个原因就是很难知道hypervisor厂商在定义CPU比率时用意是什么。例如,比率可能是由厂商的实施部门设置的,可能是基于构建hypervisor的工程师的个人经验,认为采用此配置能够交付最好的性能,硬件使用效率最高。与之相反,该比率可能是由hypervisor厂商的市场部门提出的,用于展示hypervisor比竞争对手的产品整合比率更高。换句话说,受支持的CPU比率可能是一个最佳实践,也可能仅代表工作在理想状态下的一个配置。
了解vCPU比率与工作负载相关同样非常重要。例如,某些hypervisor厂商针对VDI部署和虚拟服务器分别提供了不同的vCPU比率。
在很多情况下,你只要记住推荐的vCPU比率并不比应用程序规定的CPU需求更有参考价值。请记住,SharePoint配置四核处理器的要求并不会因为运行在虚拟机内发生任何变化。无论是运行在物理环境还是虚拟环境,SharePoint(以及其他应用)对硬件的要求都是相同的。
这一基本概念同样适用于运行CPU密集型应用的虚拟机。如果你有这样的一台虚拟机,虚拟机所使用的vCPU核心与物理CPU核心之间保持1:1的比例将是个不错的建议。
考虑厂商对虚拟处理器的定义
虚拟处理器的概念看起来很简单。即使是这样,底层的架构可能有些令人迷惑。例如,在Hyper-V中,虚拟处理器与物理处理之间并没有直接的关系。虚拟处理器链接逻辑处理器,而逻辑处理器基于物理硬件。
很多网站表明物理处理器核心与逻辑处理器之间的比例是1:1。换句话说,每个逻辑处理器代表一个物理核心。这一解释在很多情况下都站得住脚,但是并非总是有效。
启用超线程后,Hyper-V能够将线程当作逻辑处理器对待。一个六核的处理器实际上包括12个逻辑处理器,将此考虑在内很有必要因为逻辑处理器的数量对CPU的比率有直接影响。
为hypervisor预留某些CPU资源
在给虚拟机分配CPU资源时,不要忘了将hypervisor自身的需求考虑在内。为虚拟机分配处理器时不考虑主机操作系统将会影响总体性能。
最后,确定虚拟机处理器分配策略并没有魔法配方。每个hypervisor厂商针对最佳实践都提供了各自的建议,但是这些建议在生产环境中几乎都不是最优的。作为最佳实践,你应该从遵从hypervisor厂商的推荐值开始,然后创建一个服务器性能基线。调整了CPU的配置后,通过性能对比可以发现适合组织的最佳分配方式。