企业虚拟机配置的最佳方案

简介:

摘要:根据企业业务工作负载和活跃程度的不同,可能会使得一台虚拟机所需的资源呈现明显的波动。但管理员们通常却往往忽视了这一点,其所导致的结果便是虚拟机的过度配置。甚至可能导致虚拟机的性能不佳以及不必要的成本的增加。

根据企业业务工作负载和活跃程度的不同,可能会使得一台虚拟机所需的资源呈现明显的波动。但管理员们通常却往往忽视了这一点,其所导致的结果便是虚拟机的过度配置。甚至可能导致虚拟机的性能不佳以及不必要的成本的增加。

在本文中,我们将帮助广大读者朋友们深入了解为什么会发生过度配置的情况;以及如何就此进行恰当的诊断。寻找一款能够与虚拟管理程序供应商协同合作的IT工具以便能够让管理员对磁盘、网络和RAM的使用情况获得有价值的深入洞察了解。同时,文章中还将对造成虚拟机过度配置的原因也进行深入的探讨(处理器的CPU使用率一直保持在90%及以上是判断过度配置的强大指标)。文章中,我们还将为企业推荐一些策略和流程,可用于配置“恰当规模的”虚拟机,以避免资源的浪费,并与此同时,帮助您企业确保仍然能够为用以处理突发需求的一台虚拟基础设施的配置做好准备。

对于管理员来说,为虚拟机配置资源可能是一个容易被忽视的任务。而通过适当的规划和测试,则可以帮助他们更好地分配资源,从而实现更稳定的性能,改善用户体验,并实现成本的节省。

关于合理的虚拟机配置,并没有什么简单的方法。企业管理员可能寄希望于简单地通过过度补偿计算资源的方法来解决计算资源短缺的问题,并同时避免将来的问题。在本文中,来自TechTarget网站的撰稿人Stephen J. Bigelow将为我们广大读者解释为什么说这是一种十分糟糕的做法。

Bigelow表示,VM的资源需求可以根据企业的工作负载及其活跃程度而变化。这使得配置具有适当数量的计算资源的虚拟机变得相当棘手。而且,错误的步骤措施还可能潜在地增加成本。尽管在分配额外的vCPU方面可能没有前期成本,但Bigelow警告说,一家企业可能会因此在后期受到财务方面的困扰;或将通过虚拟机运营成本的提高引发许可证授权方面的大开销。

Bigelow表示,尽管这不容易做到,但从最开始就确定每台虚拟机的最佳资源水平是防止虚拟机过度配置的最佳方法。不要仅仅从供应商的角度来理解应该配置些什么资源;Bigelow建议管理员采取保守的措施,并在最初从分配工作负载所需的最低资源量开始。如有必要,可以随时添加更多资源。

IT架构师布莱恩·基什(Brian Kirsch)表示说,资源的过度调拨使用可能是一种富有成效的操作。他解释说,如果您企业的虚拟机承担不起过度使用,可能是因为其资源没有得到充分有效的利用。计算整合并使用诸如“CPU就绪时间”等工具来监控您企业资源的使用情况,可以带来更高效的虚拟机。

了解您企业的配置方案

每台虚拟机都必须配置确保虚拟实例及其工作负载正常运行所需要的处理器、内存和存储资源。资源的具体需求取决于工作负载及活跃程度,因此配置一台具备了适量计算资源的虚拟机或将是一项棘手的工作。为虚拟机提供的资源太少,可能会造成工作负载的性能表现不佳,变得不稳定,甚至直接崩溃。而为虚拟机提供太多的资源,则又浪费了多余的计算能力和业务成本。故而企业的IT管 理员必须是检测虚拟机是否过度配置方面的专家,并能够采取适当的步骤措施,以调整资源的使用。

为什么会发生过度配置的情况?

最初,管理员会出现很多次配置错误的情况。处理或内存资源不足,无法处理工作负载,显然需要更多的资源来完成工作。但是,在具备了足够的资源与在工作负载不需要资源的情况下投入额外资源之间则是存在差异的。

通常会发生过度配置的原因是因为管理员们根本不知道对于一台既定的虚拟机而言,什么资源是必要和适当的,特别是当其负载条件发生变化的时候。或管理员认识到虚拟机的性能可能由于无意造成的资源匮乏而受损。因此,他们最自然的反应显然过度补偿,以保证问题得到纠正,也希望借此来防止问题再次困扰他们。

这种反应是一种糟糕的做法。这表明管理员们缺乏对于应用程序的理解、规划和测试。正确的测试有助于在生产过程中部署工作负载之前建立资源级别或边界。一些IT工作人员也坚持认为更多的资源等于更好的工作负载表现。

云服务提供商VirtualQube公司的首席执行官Scott Gorcester表示:“企业客户和IT专业人士可能会觉得增加处理能力和内存能够提高虚拟机的性能。但是,通过对虚拟机和应用程序性能的测试和正确分析将显示,在某些情况下,会达到一个系统最佳运行的点,而在这一点上,增加更多资源要么没有任何效果,要么甚至会产生负面影响。

例如,分配额外的vCPU可能看起来是免费的,但是一些软件许可证授权会受到处理器数量的影响,并且增加处理器功率可能会触发意外的许可授权费用,从而无意中提高了虚拟机的运营成本。将内存添加到一台虚拟机可能会降低一台服务器所能够支持的虚拟机的总数。这限制了工作负载的整合计划,损害了工作负载的均衡安排,并会导致企业需要购买比实际所需的更多的服务器或存储空间。这反过来又会导致更高的维护和能源成本,并造成冷却问题。

查找过度配置的虚拟机

在没有首先确定虚拟机是否有过度配置的情况下,是无法修复过度配置的虚拟机的。借助一些工具,可以帮助您企业做出这一决定。IT专家依靠远程监控和管理(RMM)工具,如Kaseya VSA和SolarWinds虚拟化管理器,以便在需要更改虚拟机资源时提醒管理员。其他的则选择与管理程序供应商一致的工具。

一家房地产投资公司的网络工程师兼发行经理Aldo Cabrera表示说:“我们主要使用vRealize来了解过度配置和欠配置的系统。我们还拥有监控工具,借助简单网络管理协议和脚本触发器,我们可以立即洞察磁盘、网络和RAM的使用情况。”甚至虚拟机管理程序平台也可以包括性能计数器和监控功能,例如vSphere的性能图表,主机健康运行状况仪表板、报告和警报以及其他工具,如VMware公司的esxtop命令行产品。

哪些因素实际上表明了虚拟机的过度配置?

首先,考虑处理器(CPU)的使用情况。处理器使用量出现临时性的峰值是正常的,但处理器使用率持续性的一直很高——也许超过90%——表明出现了过度配置。请记住,创建更多的vCPU并将其分配给虚拟机很容易,但是,每款vCPU都必须经由安排调度并等待一款物理CPU,以便处理虚拟机的指令和数据。这导致高就绪时间(通常超过10-20%),使得vCPU需要排队等待物理处理器资源。这种过度配置可能会降低服务器上的虚拟机的性能。

将一台故障虚拟机的性能报告与同一服务器及跨多台服务器上的其他虚拟机进行比较。问题的根本原因通常是太多的vCPU,太多的虚拟机,或者故障的虚拟机上配置的CPU配置限制设置造成的。需要减少分配给虚拟机的不必要的vCPU的数量。

例如,将两款或四款vCPU分配给单线程虚拟机会浪费vCPU,因为单线程应用程序只能使用一个vCPU。增加CPU共享(优先级)或为虚拟机设置CPU预留可以通过给予vCPU更多的物理CPU访问提供一定帮助。并且工作负载均衡 ——将故障的虚拟机迁移到具有更多可用资源的另一台服务器,可以减少在服务器上运行的vCPU的数量。

配置问题也经常扩展到内存分配。每台虚拟机应该具有比虚拟机及其应用程序所需的更多内存,并且服务器需要比托管在其之上的所有虚拟机所使用的组合内存更多的总内存。为一台虚拟机(及其应用程序)分配比起实际所需更多的内存并不会带来多大益处。故而企业管理员需要检查每台虚拟机的内存使用情况和可用内存值以及活跃程度和被授予的内存大小的报告。

内存使用率始终太高(达95%)或空闲内存总是太低(5%或更少)表明了内存的不足。活跃内存通常等于授予内存,因此也就没有足够的可用内存。这会通过多余的磁盘交换来影响虚拟机的性能,虚拟机管理程序可能会使用积极的内存回收技术(如内存扩充)来恢复和重新使用空闲内存。相反,内存使用太低,内存空闲度过高就是过度配置了;通常可以将分配给虚拟机的内存减少,以便为其他虚拟机释放资源。在某些情况下,减少不必要的高内存预留设置也可以释放多余的内存以进行回收和重用。

存储容量很少会直接影响性能,但是查看分配给虚拟机的逻辑单元号(LUN,logical unit number)卷,并监视该容量的使用情况仍然不失为一种明智之举。

将大型LUN分配给不使用它的虚拟机可能浪费昂贵的存储容量。精简配置可以有助于减少昂贵的存储浪费,因为安装的实际物理磁盘容量可能只是指定逻辑卷大小的一小部分。例如,为配置只有10 GB的一款100 GB LUN进行精简配置,然后在物理卷填充后再添加物理内存,要便宜得多。

但是,在分配的容量用尽之前,监控容量并添加更多的物理磁盘空是非常重要的。此外,请观察磁盘性能因素(如延迟性),以确保存储性能问题不影响虚拟机的性能。

恰当的资源分配

防止出现虚拟机过度配置的最佳方法是从一开始就为每个虚拟机分配最佳资源级别,但是确定虚拟机的规模大小可能很棘手。许多企业组织基于与应用程序供应商的沟通来制定初步的分配决策(以供应商对应用程序及其要求有最好的了解为假设前提)。

不过,把供应商的建议作为最终的决策可能并不明智。Gorcester说:“一家企业客户告诉我们说,他们的软件供应商强烈建议为虚拟机配置48个内核和128 GB的RAM。调整系统后,我们确定了4个CPU内核和24 GB的RAM,以获得最佳性能。当我们超过4个内核时,用户体验下降,我们根本不需要超过24 GB的内存。”

IT员工的专业知识以及性能监控,测试和调试对于建立最佳的资源配置和最佳的性价比也至关重要。

通过为工作负载分配最少的资源量以保守地开始。观察性能,并期望工作负载的需求变化会偶尔出现下降。这是完全正常的。资源的不足和紧张可以很容易地通过小增量的形式进行调整。Cabrera说:“最好按照低配置或坚持最低配置的建议,稍后再执行审查。在服务器上拥有这些服务的人可能不希望减少资源。恰当的资源配置规模并增加更多的资源永远都是受欢迎的,但是想要在此之后拿走这些资源则会很难。”

利用任何资源恢复和工作负载均衡工具也是有帮助的。例如,部署诸如动态内存分配 (Dynamic memory)、内存膨胀(Memory ballooning)和透明页共享(Transparent Page Sharing)这样具备资源恢复功能的虚拟机管理程序。VMware公司的分布式资源调度程序(DRS)和类似工具有助于协调虚拟机的迁移,并充分利用每台服务器的可用资源。这可以优化环境可支持的虚拟机总数,同时为这些工作负载提供最佳性能。

并不是所有的过度配置都是不好的。明智的额外资源配置可以使工作负载的性能得到平衡,改善用户体验,并使应用程序的利益相关者得到满足。但是,仅仅只是在工作负载下投入更多的资源就可能造成容量能力的浪费,资金的过度开销,甚至威胁您企业正在努力改进的性能。采用正确数据分析工具和客观评价,对资源利用情况作出正确的决策。

知道何时过度配置资源

虚拟化的一大优点就是能够抽象和分享资源。这种抽象也使得能够将资源过度投入到虚拟机中。数据中心内并不是所有的服务器都需要同时对所有可用资源进行全面的访问,而过度的使用允许企业更好地利用这些资源并增加服务器的整合能力。

确定您企业可以超额配置使用多少的资源是在不断变化的工作负载需求与整合目标之间的平衡。由于大多数企业和工作负载的需求是波动的,超额使用的水平并不是一个静态值。相反,超额使用的水平应该是一个取决于一系列变量的动态值,包括应用程序的类型甚至一天中所处的时间。查看CPU的过度使用状态,并密切关注几项关键指标可以帮助您企业实施动态的管理。

综合计算

各种不同的计算显示了每个内核虚拟机的不同值。该值可以从每个CPU内核的三台到六七台虚拟机。但是,这种公式需要仔细检查。首先,通过原始数学方法,一个双CPU机架服务器,每个插槽具有六个物理内核,启用了超线程,可为该盒提供24个可计数的内核。基于计算的公式估计可以为您企业提供每个内核四台虚拟机,使得每台机架服务器总共达到96台虚拟机,即:每个内核四台虚拟机乘以的每台机架式服务器的24个内核。基于几个原因,您企业不太可能会看到整合级别。

亟待解决的第一批问题之一是:您企业将要运行什么样的工作负载?在一个繁重的基于交易事务的环境中,您企业可能有多台虚拟机需要多个内核。如果您使用双核或四核虚拟CPU(vCPU)运行大部分虚拟机,则必须考虑这些要素。

通过使用具有四个vCPU的四核虚拟机,您企业最初计算所需的96台虚拟机现在可以减少到24台虚拟机,但该公式可以进一步减少虚拟机的数量。假定一个核心的四台虚拟机的使用范围为0%至50%,平均每个核心的虚拟机为25%。但是,如果应用程序的需求使您的平均水平接近50%,那怎么办?这将使得您的每个内核的虚拟机平均值从四个变为两个,同时从每个机架式服务器最初估计的96台虚拟机缩减到12台虚拟机。

CPU就绪时间的度量

这是一个很大的范围覆盖。哪种计算是对的:12台虚拟机还是96台虚拟机?答案是两者都对。过度使用是一条流畅的线路,数学计算只能给您提供一个合适的范围。监控才是真正的关键。具体来说,企业要关注CPU就绪时间。这个值是您处理CPU过度使用时最好的朋友。CPU就绪值是您的虚拟机准备使用CPU的时间量,但不能因为CPU资源正在被其他方面所使用。如果您的虚拟机具有少于2%至3%的CPU就绪时间,则您的虚拟机可以随时访问CPU资源。如果该值增加到5%或更高,您的虚拟机将变得CPU限制。一旦您的CPU就绪时间达到了两位数(10%或更高),您就会遇到麻烦。在这一点上,您将需要减少主机上的工作负载,否则最终会出现重大的性能问题。虽然CPU就绪时间是仅适用于VMware vSphere用户的度量标准,但其常规前提适用于所有环境。

随着可能的争论和CPU就绪时间的上升,使得企业有机会利用共享和资源池。需要记住的一点是,由过度配置所带来的共享和资源池可能不会给您企业带来额外的免费资源。是的,您可以增加某些虚拟机的可用资源,但是会对其他虚拟机造成损失。请记住,过度使用的性质使得资源被争用成为可能。

并非所有被创建的虚拟机的重要性都相同的。在构建虚拟基础架构时,企业计划对CPU资源进行过度使用。平衡CPU资源紧张的虚拟机与具有较低需求的虚拟机;以及关键任务虚拟机与具有低处理优先级的虚拟机。通过设置虚拟机的共享值或利用资源池,您企业可以允许生产服务器在争用资源期间从较低优先级的虚拟机提取资源。

如果您企业不是在同一台服务器上混用虚拟机,那么在需要的时候,您无法挤压额外的资源,因为每项工作负载都至关重要。如果您企业承受不起过度使用,资源可能会被无效地利用。过度使用是安全的,只需借助“CPU就绪时间”作为您的指南,并注意虚拟机的设置,以便您可以根据需要提取其他资源。

本文转自d1net(转载)

相关文章
|
7月前
|
网络协议 Linux Shell
搭建虚拟机的网络布局类型和配置操作
搭建虚拟机的网络布局类型和配置操作
|
7月前
|
Web App开发 Java Linux
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
497 0
|
7月前
|
PHP
百度虚拟机 bcloud_nginx_user.conf配置
百度虚拟机 bcloud_nginx_user.conf配置
166 0
|
7月前
|
Linux 虚拟化
VMware workstation 中centos7虚拟机在nat模式下怎么配置网卡,指定我想要的IP并且可以联网
https://blog.csdn.net/2302_78534730/article/details/132825156?spm=1001.2014.3001.5502
315 0
|
4月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
166 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
4月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
4月前
|
安全
【Azure 云服务】Azure Cloud Service 关于虚拟机资源,杀毒软件配置,补丁机制的问答
【Azure 云服务】Azure Cloud Service 关于虚拟机资源,杀毒软件配置,补丁机制的问答
|
4月前
|
存储 网络协议 搜索推荐
在Linux中,如何配置和管理虚拟机的网络和存储?
在Linux中,如何配置和管理虚拟机的网络和存储?
|
4月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
189 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
4月前
|
网络协议 Linux 网络安全
Hyper-v 如何配置 Centos7 虚拟机网络?
Hyper-v 如何配置 Centos7 虚拟机网络?
148 0