R3C00后,虚拟机增加了一个CPU QoS参数——预留,概念为无论主机任何压力下,都保证虚拟机可以获取的CPU资源,单位MHz,默认值为0,范围为【0, VCPU数量*CPU主频】
有了CPU预留概念后,就可以确定VCPU和物理CPU的关系:
例如主机有一个1物理CPU,主频2000MHz,,如果创建一个1核虚拟机,虚拟机Qos预留如果设置为1000MHz,那么
物理CPU = 2VCPU
如果预留设置为2000MHz,物理CPU=1VCPU
如果预留设置为0,物理CPU=无限个VCPU
了解更多请参考文档或电话咨询
默认情况下,VCPU和物理CPU没有严格对应关系,Hypervisor的CPU调度算法会平衡不同VCPU运行在PCPU上,未产生竞争情况下,1个VCPU最多能够获得1个PCPU的能力,即对应物理核能力的上限
举个例子:PCPU 2.4GHz,没有竞争的情况下,配置1VCPU的虚拟机最多能够获得2.4GHz,2VCPU对应2.4GHz*2(但并不等于4.8GHz,虚拟机内呈现的是2个虚拟核,因此单线程业务最多仍然只有2.4GHz能力),以此类推
R3C00开始引入了HZ的概念,可以细化定制虚拟机VCPU的限制(上限),预留(下限)。
限制(上限)定义了虚拟机获取PCPU能力的上限,比如PCPU 2.4GHz,2VCPU虚拟机可配置最高限制为4800MHz(2.4GHz*2),假如当前设置为2400MHz,在无竞争条件下,虚拟机内部加压最多只能获取1个PCPU的能力;默认限制为0(不限制),效果与配置最高限制相同。
预留(下限)定义了虚拟机获取PCPU能力的下限,同样PCPU 2.4GHz,2VCPU虚拟机可配置最高预留为4800MHz(2.4GHz*2),假如当前设置为2400MHz,在竞争条件下,该虚拟机能够确保至少获得1个PCPU的能力;但预留不意味着独占,在该虚拟机没有CPU压力时,这部分CPU资源仍然可以被其他虚拟机使用
1、开启内存复用后,理论可以增加的复用内存多少不是个固定值,与虚拟机具体内存使用情况有关。简单来讲,只有虚拟机存在空闲内存时才有可能复用内存给其他虚拟机。
假定虚拟机内存利用率是30%,那么理论上有70%的内存可以复用给其他虚拟机,因此我们一般对外的经验公式是:内存复用率 = 90% - 虚拟机平均内存利用率,10%预留防止内存用尽。
举个例子:单板内存40G,虚拟机平均内存利用率是60%,那么建议增加复用内存量是40G * 30% = 12G,即总计52G内存规格的虚拟机。
版本对虚拟机发放数量没有限定,如果不计利用率超量发放,会导致虚拟机产生大量内存交换,影响业务性能(已经在Portal增加告警)。
2、复用和回收完全由UVP底层内存策略来控制,当单板内存低于一定阈值时从虚拟机内复用,高于一定阈值时归还给虚拟机