在虚拟机上设置CPU亲和力可能会导致性能降低,并且更难于管理。 在vSphere资源控制方面有几个被误解的地方,CPU亲和力就是其中之一。控制交付给一台虚拟机的CPU资源是性能管理的一个重要部分。在虚拟机上很少见到CPU亲和力的配置,一旦配置就很难移除。
一旦虚拟机设置了CPU亲和力就无法获得更多的CPU资源。 CPU亲和力无保障 在ESXi服务器中内核较少,由VMkernel负责处理和调度更多的虚拟CPU(vCPU)给虚拟机。这样的分配行为使得CPU可以过量使用。过量使用是虚拟化技术节省成本的核心部分。
VMkernel会每个几毫秒去查看一下每个内核上的vCPU状态,选择是否改变运行着的vCPU……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
在vSphere资源控制方面有几个被误解的地方,CPU亲和力就是其中之一。控制交付给一台虚拟机的CPU资源是性能管理的一个重要部分。在虚拟机上很少见到CPU亲和力的配置,一旦配置就很难移除。一旦虚拟机设置了CPU亲和力就无法获得更多的CPU资源。
CPU亲和力无保障
在ESXi服务器中内核较少,由VMkernel负责处理和调度更多的虚拟CPU(vCPU)给虚拟机。这样的分配行为使得CPU可以过量使用。过量使用是虚拟化技术节省成本的核心部分。VMkernel会每个几毫秒去查看一下每个内核上的vCPU状态,选择是否改变运行着的vCPU。虚拟机中的工作负载有它们自己的工作负载高峰和低谷。而VMkernel必须将vCPU从这个核上移动到另一个核上,可能将任意vCPU运行在任意的核上。VMkernel将尝试使用每个核心交付虚拟机所需的所有CPU。
对CPU亲和力的主要误解是它将一个内核提供给一个特定的虚拟机。这也是管理员通常错误地将CPU亲和力应用到一个非常依赖CPU性能的关键虚拟机上的原因。这样反而会造成虚拟机性能下降。因为CPU亲和力并不能保证内核,从而导致虚拟机不能使用其他的内核。目前vSphere无法保证将特定的内核提供给单个虚拟机。唯一能保证的就是预留。预留是保证预留的资源可用而不是保证资源专用。对于有关键CPU资源需求的虚拟机,你应该设置足够的CPU预留来保证虚拟机的SLA。在虚拟机上设置CPU亲和力永远不会提高该虚拟机的CPU性能,事实上,结果完全相反。
CPU亲和力的目的是删除一些VMkernel上的调度灵活性。CPU亲和力会限制可能用于虚拟机vCPU的内核。不管什么时间我们限制了VMkernel的灵活性,都会导致效率降低与性能风险。一个12核的ESXi服务器意味着有12个地方让VMlernel运行vCPU。如果一个虚拟机为内核2和3设置CPU亲和力,那么其他10个内核都不能用于该虚拟机。即使这10个核是空闲的,VMkernel也不能将它们用于这个虚拟机。更糟糕的是如果两个繁忙的虚拟机CPU亲和力设置了相同的内核。那么这两个虚拟机将被迫争夺这一个核,即使其他核心都处于空闲状态。下图为在虚拟机属性里设置CPU亲和力内核2和3。
CPU亲和力的其他问题
CPU亲和力的另一个问题是禁用vMotion。CPU亲和力是在ESXi服务器中指定特定的内核用于虚拟机。因为这些物理内核不能在主机之间移动,也不能移动必须运行在这些内核上的虚拟机。这在分布式资源调度(DRS)群集中具有很大的影响。这是在ESXi服务器之间的vCenter vMotions虚拟机交付峰值性能的体现。
不用使用vMotion的虚拟机导致集群不平衡,从而导致性能问题。在ESXi维护期间将会迁移大量的虚拟机,不能移动的虚拟机将会导致操作问题。甚至更糟的是,如果你将DRS群集设置成全自动的模式,那么CPU亲和力界面就会没有了。如果有任何CPU亲和力设置已经应用,你都不能移除这个设置。下图是已经设置了CPU亲和力,在全自动的DRS群集里就不能移除该设置。
虽然设置了CPU亲和力不能vMotion,但能支持HA故障转移。一个设置了CPU亲和力的虚拟机会在HA集群里的其他主机上启动,并在新的主机上保留CPU亲和力设置。
CPU亲和力的用途
CPU亲和力的好处是什么?我用它来模拟两个虚拟机争夺CPU。如果你设置两个虚拟机来使用相同的内核,它们可以使内核运行饱和而ESXi不饱和。这不是一个现实的用途,但它是一个很好的实验室技术。
在现实中,我只听说过关于CPU亲和力的一个用途,那就是为了在虚拟机中支持老的需要授权的应用程序,而这个应用程序的授权需要绑定CPU的内核序列号。在虚拟化中支持该应用程序的唯一方式就是使用CPU亲和力绑定一个核心。
相关推荐
-
如何高效平衡虚拟机性能、密度、成本
负责虚拟服务器维护的IT管理者当然希望确保虚拟服务器性能尽可能好。幸运的是, IT管理者可以采取很多措施确保虚拟机性能达到最佳。
-
如何轻松搞定极端存储及配置问题?
一旦对存储子系统进行了基准测试并得到了测试结果,就为解决问题做好了铺垫。最好是从查看存储基础设施配置问题入手,并移除占用大量存储I/O带宽的工作负载。
-
如何避免Hyper-V实时迁移过程中的性能问题?
如果没有提前进行准备,在Hyper-V进行实时迁移的过程当中TCP offload和备份任务可能会带来很多问题。
-
如何在过量配置内存的同时规避风险?
允许虚拟机共享资源的内存管理技术十分常见,但是管理员应该遵循文章中提到的策略和方法以降低风险。