本文分享自天翼云开发者社区《云服务器虚拟化超分与虚机性能关系分析》 作者:l****n
虚拟化技术是云计算商业模式的基础,它也是推动云计算经济的核心技术。虚拟化是指使用虚拟化软件在计算机硬件上创建抽象层,将单个计算机的硬件元素(包括处理器、内存、存储器等)分成多个虚拟计算机 (VM), 每个 VM 都运行自己的操作系统 (OS) ,类似于独立的计算机。这样虚拟化技术能让一台服务器变成几台甚至上百台互相隔离的虚拟服务器,不再受限于物理上的界限,而是让CPU、内存、存储、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合池化,让IT对业务的变化更具适应力。虚拟化能够提高企业资源运营效率,节约能耗,降低经济成本和空间浪费。
服务器虚拟化示意图
CPU虚拟化公式: vCPU数量=CPU数量每颗CPU核数线程数*超分比
CPU和vCPU的关系
“超分”是云计算虚拟化技术的一个必然现象,超分也是虚拟化平台的优势,它能够将可分配给客户的vCPU总数大于实际可用的物理CPU总数。因为物理机中的客户虚机不可能都处于高负荷的状态,所以适当的超分有助于资源的充分利用。 但当有些持续高CPU计算场景(如渲染)平台用户量过多时, CPU超分率数值过大会严重影响物理机性能,导致业务性能卡顿,影响服务体验。那超分与虚机性能关系是怎样的呢?
其实超分是这样一个概念:就是控制最大开出的vcpu资源数,比如物理资源总核数为1000,不管在1:3还是1:5的超分下,当已经开出的资源小于1000时,基本上虚机独立占用物理CPU的时间片,性能和独享CPU性能基本一致,当开出的资源是3000vCPU,且全部都在运行时,不管是1:3的超分还是1:5的超分,其实性能也是一样,都是3vCPU共同使用一个物理CPU的时间片,当设置的超分越高,可开出的最大虚机资源就越多,那么当实际资源开的比较多时,就会存在CPU的时间片竞争,导致性能下降。太高的超分,如果在资源基本都开满的情况下会导致CPU调度时延的增加,CPU调度时延和CPU复用比增长对应关系是非线性的,就是超分太大,会导致CPU自身在多个时间片的调度消耗增加,而留给虚机本身的算力会降得比较多。过大的CPU超分下,Linux系统可能表现为卡死,Windows虚拟机可能表现为蓝屏。
因此,结合天翼云多年业务实际经验以及业界广泛采用的实际情况 对于共享型S系列云主机,x86服务器我们推荐采用的超分是1:3;国产化服务器推荐的是1:2。