每个虚拟机必须配置虚拟机实例及其工作负载正常运营所需要的处理器、内存以及存储。资源需求取决于工作负载及其活动等级,因此为虚拟机配置数量合理的计算资源可能是一个棘手的问题。配置的资源太少,工作负载可能表现不佳,变得不稳定或者甚至是彻底宕机。分配太多的计算资源,超额的计算潜能可能被浪费掉,而且会增加业务运营成本。IT管理员必须是检测虚拟机过度配置方面的专家,并采取正确的步骤调整资源使用。
为什么会发生过度配置
很多时候,管理员在一开始给虚拟机配置资源时就出错了。需要计算或内存资源的工作负载的创建者明确提出需要更多的资源完成工作任务。但供应充足的资源与将额外的、根本不需要的资源丢给工作负载之间存在差异。
过度配置往往会发生,因为对特定的虚拟机而言管理员通常不知道哪些资源是必需的、适宜的,尤其是其负载情况一直在不断变化。有时管理员认为虚拟机的性能可能会因无意中的资源匮乏而受到影响。最自然的反应是过度分配以保证问题被修复,同时也可以避免问题经常萦绕于管理员的心头。
下意识的反应并不是一个很好的实践,普遍缺少对应用的理解、规划以及测试。在生产环境中部署工作负载前进行合理的测试有助于建立资源等级或边界。某些IT工作人员还在坚持错误的概念是更多的资源等同于更好的工作负载性能。
VirtualQube是一家云供应商,该公司的CEO Scott Gorcester 说“顾客以及IT专业人员可能认为增加计算资源以及内存能够改进虚拟机性能。但对虚拟机及其应用性能进行测试并进行正确的分析表明在某些情况下存在一个最有效的点,此时系统运行的最好,再增加更多的资源或者没有影响,甚至还可能有副作用。”
例如,分配额外的vCPU看似免费,但某些软件许可受处理器数量的影响,增加处理器可能会触发意料之外的许可费用,增加虚拟机的运营成本。给虚拟机增加内存可能会减少一台服务器能够承载的虚拟机的数量。这限制了工作负载的整合举措,削弱了工作负载的平衡方案,导致企业需要买比实际需求更多的服务器或存储。这反过来导致了更高的运营成本及能耗,引发了对制冷的关注。
找到过度配置的虚拟机
如果没有先判断虚拟机是否过度配置,那么想解决虚拟机过度配置问题是不可能的。某些工具能够为做出决策提供帮助。当虚拟机资源需求发生变化时IT专家依赖远程监控及管理工具,比如Kaseya VSA 以及SolarWinds虚拟化管理器提醒员工。其他人选择了与hypervisor厂商像匹配的工具。
W.P. Carey是一家不动产投资公司,该公司的网络工程师及发布经理Aldo Cabrera说“我们主要使用vRealize洞察系统资源过度配置或资源配置不足的情况。还使用监控工具通过SNMP以及脚本触发器直接对磁盘、网络以及内存使用情况进行监控。”hypervisor平台甚至可能包括性能计数器以及监控功能—比如vSphere的性能图标、主机健康仪表盘、报表以及告警—其他工具比如VMware的esxtop命令行产品。
哪些因素能够反应虚拟机资源存在过度配置的情况?
先考虑处理器利用率。处理器利用率临时出现峰值是正常的,但处理器利用率持续居高不下—可能超过90%—表明存在过度配置。请记住很容易创建更多的vCPU并将其分配给虚拟机,但必须对每个vCPU进行调度并等待物理CPU以处理虚拟机的指令及数据。这导致了更高的就绪时间—通常超过了10%到20%—vCPU排队等待物理处理器资源。这一类过度配置可能会降低服务器上的虚拟机性能。
对比同一台服务器及不同服务器上有问题的虚拟机、其他虚拟机的性能报表。问题的根源往往是vCPU太多,虚拟机太多或者是有问题的虚拟机的CPU限制配置不当。减少不必要的已分配给虚拟机的vCPU,例如,为单线程的虚拟机分配两个或四个vCPU浪费了计算资源,因为单线程应用只能够使用一个vCPU。增加CPU份额优先级或者设置虚拟机CPU预留值允许vCPU更多地访问物理CPU。工作负载平衡—将有问题的虚拟机迁移到具备更多可用资源的其他服务器—也可以减少运行在服务器上的vCPU数量。
配置问题还经常会扩展到内存分配。每个虚拟机应该稍微配置多一些的内存,服务器的内存容量要比所有虚拟机使用的总内存容量大一些。为虚拟机分配过多的内存没有任何好处。定期检查每个虚拟机的内存使用情况、可用内存大小以及活动、已分配的内存容量。
内存使用率过高达到95%或者空闲内存过低—5%或者更少—表明内存配置不足。活动内存经常等于已分配的内存,表明可用内存不足。这会导致大量的磁盘交换,影响虚拟机性能,hypervisor可能会使用具有侵略性的内存回收技术,比如内存膨胀以恢复并重用空闲内存。相反内存使用率过低、可用内存过高表明内存存在过度配置。在某些情况下减少不必要的高内存预留设置也能够释放额外的内存用于内存回收及重用。
存储容量很少会直接影响性能,但仍有必要检查分配给虚拟机的LUN并监控容量使用情况。给虚拟机分配一个不会用到的大容量LUN是对昂贵存储容量的浪费。精简配置有助于减少存储浪费,因为实际安装的物理磁盘容量只占逻辑卷容量的一小部分。例如精简配置100GB的LUN但只分配10GB,然后再增加物理内存的成本要低很多。
监控容量并在已分配的容量用完前增加更多的物理磁盘空间是很重要的。此外,监控磁盘性能参数,比如延迟以确保存储性能问题不会影响虚拟机性能。
合理分配资源
避免虚拟机过度配置的最佳方式是从一开始就给虚拟机分配最合理的资源,但实现虚拟机资源配置合理是一个棘手的问题。很多组织基于最初的分配决定与应用厂商进行详细的沟通,假定厂商对应用及需求理解的最到位。
然而,将厂商的建议作为最终的结论可能并不明智。Gorcester 说:“客户通知我们,他们的软件厂商强烈建议配置48个内核、128GB的内存。调整系统后,我们配置了4个CPU核心、24GB的内存达到了最佳性能。配置了4个以上的核心后用户体验下降,而且不需要配置超过24GB的内存。”
IT员工的专业技能加上性能监控、测试、调优对于建立最好的资源配置以及最好的性价比同样至关重要。先将已确定的最低资源分配给虚拟机,当工作负载需求发生变化时,观察性能并预计变化情况。这是非常正常的,资源不足可以很容易地进行调整。Cabrera说:“最好是低配置或者坚持最低配置建议并进行后续的观察。服务所有者可能不希望减少资源配置。配置合理并增加更多的资源往往受欢迎,但降低配置往往要更困难。”
借助任何资源恢复及工作负载平衡工具同样能够提供帮助。例如,使用hypervisor的资源恢复功能比如动态内存、内存膨胀以及透明页共享。VMware的分布式资源调度及类似工具有助于调配虚拟机迁移并充分利用每个服务器的可用资源。实现了虚拟环境支持的虚拟机总数量的最大化同时为相关工作负载提供了最好的性能。
并非所有过度配置一定是不好的。配置合理的额外资源能够提升工作负载性能,提升用户体验并获得应用利益相关方的好感。但仅仅是配置更多的资源会浪费容量、经费,甚至对正在试图改进的性能问题造成威胁。选择正确的工具并对数据进行客观的评价以做出正确的资源使用决策。
本文转自d1net(转载)