设为首页收藏本站language 语言切换
查看: 4008|回复: 23
收起左侧

虚拟机的核心数量和CPU份额关系

[复制链接]
发表于 2013-4-3 11:07:31 | 显示全部楼层 |阅读模式
有一事不解,默认情况下,CPU份额是根据分配的核心数量对应的,CPU份额又是可以手动编辑的。那么我分配1核给虚拟机后,手动调整CPU份额为很高,那么会有什么效果了?
发表于 2013-4-3 11:22:40 | 显示全部楼层
本帖最后由 TiGi 于 3-4-2013 11:54 编辑
根据你的硬件和硬件而定 —— 假设主机上8*2.0GHz的处理器,理论上可以有16G的CPU资源,分配一个vCPU给某个VM 8G,那这个虚拟机理论上可以用到8G的处理器。
注,根据“plane”的跟帖,我在其他VM上,对于多vCPU进行了实验,暂时的推论如下:
在pCPU频率低于8GB的情况下,单vCPU能够分配到8G资源,但是只能拿到将近2G的资源,而无法真正拿到8G的资源。

——————————
但是如果VM的CPU资源占用都很高,那多个设置了较高CPU资源的VM,到时候就会打架!
设置多vCPU还是单vCPU,和应用有关系 —— 但是通常虚拟化的应用,单vCPU以及2-4vCPU会比较合适。
沙发 2013-4-3 11:22:40 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 11:26:53 | 显示全部楼层

如果这个VM,只有一个vCPU,那它最大只能用到2GHz的CPU资源。
尽管你的主机有8*2.0GHz CPU资源。
板凳 2013-4-3 11:26:53 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 11:22:00 | 显示全部楼层
本帖最后由 TiGi 于 3-4-2013 11:55 编辑
没有试过"赋予单vCPU的VM超过pCPU频率的CPU资源"过。
手头有一个VM,运行在R710上,pCPU频率是2.66G,分配了4vCPU,限额是16000MHz。我以此作为测试机,测试了一下。
原本的运行状况如下:
————————
我更改了资源配置状况,由16000MHz CPU增加到24000MHz,但是占用的CPU资源,差不多还是115xx Mhz。
————————
我估算了一下,估计如下:
在资源分配表内,可以设置较多的CPU —— 这个数值,不会受到pCPU频率等因素的影响;但是VM所能真正占用到的资源,估计还是受到"vCPU核心数*pCPU频率"的影响。
因此,你的说法是正确的。
地板 2013-4-3 11:22:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 11:40:30 | 显示全部楼层

说起来一把辛酸一把泪啊!
曾经我也以为,像你这样想。
后来,遇到一个项目,Windows 2000 Server,只支持4个CPU!
一开始不知道。。。
搞了很大的硬件,完全用不上。。。
5# 2013-4-3 11:40:30 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-3 11:26:00 | 显示全部楼层
非常感谢各位的解释,另外问下有没有文档介绍这个的?
6# 2013-4-3 11:26:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 12:31:55 | 显示全部楼层

win2000看你安装的是什么版本了。类似的问题在Windows Server上面还是存在的。
对于这类的你需要将Vm设置成合适的“座数”以及“核数”才能让GuestOs用足。
不论如何其实还是要看应用本身的对于“座”“核”“线程”的利用方式了。不然即便Os支持也白搭。
7# 2013-4-3 12:31:55 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 11:40:00 | 显示全部楼层

由此看来,如果要在虚拟化平台上运行不支持较多vCPU的系统,那物理主机必须要配置较高频率的pCPU。
8# 2013-4-3 11:40:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 12:33:09 | 显示全部楼层

LS已经有实验了啊。
你也可以根据自己的需求,测试一下啊。
9# 2013-4-3 12:33:09 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 13:00:28 | 显示全部楼层

这个是基本啊,vCPU不可能突破Core限制的速度。因此不可能发生虚拟化后多核叠加成一个更大的虚拟核的。
虚拟化就是分拆,完全不能组合的。
还有内存,别以为Vm分多少内存都可以,这个牵涉到内存控制器和内部调用通道的问题。实际上现在的内存控制器是每Cpu的,不是系统全局的。如果发生Vm内存分配过大,vCPU分的又少,会可能发生性能下降的。cpu在访问内存的时候如果发现不是本身控制器控制的内存,就要通过通道去其他Cpu调。
10# 2013-4-3 13:00:28 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 12:31:00 | 显示全部楼层

LS已经有实验了啊。
你也可以根据自己的需求,测试一下啊。
11# 2013-4-3 12:31:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 13:06:50 | 显示全部楼层

资源分配里分配的实际上是权重值,单独增加一个Vm的Cpu权重不能直接反映实际的调度值,这个Vm实际的分配值受到全局分配值的影响,另外还和保留、以及本池和上级池其他的Vm分配权重有关系。
12# 2013-4-3 13:06:50 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 12:31:00 | 显示全部楼层

Vmware官方文档库里有的,记得是resource management guide之类的
http://www.vmware.com/support/pu ... _pubs_res_mgmt.html
13# 2013-4-3 12:31:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 13:18:00 | 显示全部楼层

一直以为pCPU“资源”池化后,所有核心、所有频率就全部“一体化”了。前面的测试,才意识到这个问题。
14# 2013-4-3 13:18:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-3 13:07:17 | 显示全部楼层

本来就是这个样子的,一个vcpu对应一个核心
15# 2013-4-3 13:07:17 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-3-7 07:34 , Processed in 0.074816 second(s), 21 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表