您的位置: 网界网 > 服务器 > 正文

过犹不及:过量内存和多处理器未必好

2011年04月22日 17:10:00 | 作者:中关村在线 | 来源:ZDNet服务器频道 | 查看本文手机版

摘要:虚拟机配置的传统观点已经发生了改变。在虚拟化初期,很多管理员配置虚拟机的时候犯了两个错误:分配内存和分配处理器。管理员分配了过多的内存和处理器,因为虚拟化管理平台允许管理员这么做,但是过量内存和多处理器通常是不...

标签
内存
处理器
虚拟机

过去几年,虚拟机配置的传统观点已经发生了改变。在虚拟化初期,很多管理员配置虚拟机的时候犯了两个错误:分配内存和分配处理器。管理员分配了过多的内存和处理器,因为虚拟化管理平台允许管理员这么做,但是过量内存和多处理器通常是不必要的。

虚拟机配置影响服务器整合的比率:如果每个虚拟机的资源被充分利用,那么可以在物理主机上运行更多的虚拟机。更大的整合将斩获更多的剩余资源,提供更高的业务灵活性,当需要时可以在物理主机上运行额外的虚拟机。

如果给虚拟机增加不必要的内存和处理单元,那么物理主机上只能运行更少的虚拟机。因此虚拟机内存和处理器的配置对主机性能和运行虚拟机的容量有显著影响。

错误的内存观念

现今流行的虚拟机配置指导建议给虚拟机分配的内存数量应该是虚拟机所需要的。如果只需要2GB,那么给虚拟机分配4GB内存并没有任何好处。

给虚拟机分配过多的内存源于两种不正确的观念:考虑到虚拟机能够使用更多的空间用于其它资源,分配更多的内存意味着计算机运行的更快,而未分配的内存只是被虚拟化管理平台占用。

实际上,分配过多的内存仅仅是创建更多空闲的内存空间。通过测量虚拟机内存随着时间变化的消耗发现,虚拟机实际上并不使用空闲的内存空间。

主要的虚拟化平台厂商都在宣扬他们自己的内存算法,许多人把厂商的内存算法归结为:“给虚拟机分配过多的内存并无大碍。”但是分配过量内存的观念不能和事实相去甚远。

虽然使用虚拟化平台可以给虚拟机分配过量内存,不过最好不要分配过多的内存,因为在虚拟机之间传输未用的内存常常需要更多的资源。

在“了解VMware ESX 4.1内存资源管理”的最佳实践部分,VMware建议将虚拟机的内存大小设置为“稍稍大于平均的内存使用大小。” 建议“稍稍大于”的内存值要适应虚拟机工作负载的峰值,比如登录、备份、恶意软件扫描或者其他非标准活动。如果你给虚拟机分配了过多的内存只是因为你可以这么做,那么需要重新思考虚拟机的内存配置。

处理器分配滥用

过量分配内存不是好事儿,但过量分配处理器甚至更糟。举例来说,取决于虚拟化平台如何调度虚拟机处理需求(+微信关注网络世界),给运行单线程应用程序的虚拟机分配多个处理器可能破坏性能。

现在,虚拟化平台不再需要几乎同时调度虚拟处理器,但是处理器的一致视图需要额外的资源。这样的处理器称之为co-de-scheduled处理器,它们的活动不会同时被调度。如果虚拟服务器的工作负载不是多线程的,并不需要在多个处理器间运行工作负载。从根本上说,给单线程的虚拟机分配多个处理器,是在为不存在的额外的好处支付附加税。

难以确定是否要给虚拟机配置多个处理器。Windows操作系统倾向于在可用的处理器之间平衡处理线程,因此难以了解工作负载是否使用多处理器或者工作负载的活动是否自动被负载均衡。而负载均衡也会带来开销,这进一步增加了额外的税收,同样使了解工作负载是否真的是多线程变得困难。

除非你确定虚拟机的活动是多线程的,而且能够从多处理器受益,否则从单一虚拟处理器开始是虚拟机配置的最佳实践。你可能试图去利用过量内存和添加处理器的能力给虚拟机分配过多内存和多个处理器,但这往往是不必要的。

[责任编辑:服务器 zhou_yuan@cnw.com.cn]