但是一般会有几个限制:
1.内存内存基本上是一个硬限制。物理服务器的内存肯定是有限的。例如,一台服务器有8core,8G内存,通常hypervisor会占用512M内存,大概还剩下7.5G内存,假设每个虚拟机的配置是1corecpu,1G内存,那么在此机器上最多可以运行7个这样的虚拟机。再创建新的虚拟机时,就会报错说内存不够。在此情况下,每个虚拟机在满负载情况下最多可以拥有1个cpucore的运算能力,1G的内存空间。
当然,现在的hypervisor基本上都支持over-commit的功能,也就是说,如果你的内存只有8G,但是设定一定比例的overcommit,例如50%,那么你可以最多分出去12G内存。还是上面那个例子,如果设定overcommit为50%,那么最多可以创建11个虚拟机(1core,1Gmem)。在服务器虚拟化方面,建议overcommit设置的不要太高,一般20%。在桌面虚拟化方面,可以将overcommit设置到50%.
2.网卡如果服务器只有一个网卡,所有虚拟机的网络流量都是通过一块网卡出去,虚拟机越多,每个虚拟机可以使用的带宽就会越少,这个是需要综合考虑。例如使用多个网卡等。
3.CPUCPU资源基本上都是采用时分复用,也就是时间片的方式来轮询的。
4.磁盘I/O是本地磁盘还是网络磁盘?如果是网络磁盘,是使用的iSCSI还是光纤?不同的情况,负载是不一样的。
一般一台服务器上能跑多少个虚拟机,需要综合考虑物理服务器,虚拟机负载等方面的整体情况,再来计算。没有一个固定的公式。
两者的区别:
1、虚拟机没有硬件实体,而物理机有实体。也就是说,物理机是有实体的硬件系统,比如服务器等,而虚拟机是借助物理机虚拟出虚拟的硬件系统。
2、两者容器不同。以电脑举例,一台电脑就是一个物理机,但是一台电脑可以成为多个虚拟机,每个虚拟机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。
3、物理机的执行引擎是直接建立在CPU处理器、指令集、操作系统和硬件层面上的;而虚拟机的执行引擎则由自己实现,因此可以制定自己的指令集和执行引擎的结构体系,而且还可以执行一些不被硬件直接支持的指令集格式。
扩展资料
虚拟计算机系统三层含义-同质、高效、资源受控。同质-本质上虚拟机和物理机是相同的、表现上有所差异,如一个物理核虚拟多个核。高效-虚拟机效能接近物理机。资源受控-虚拟机对系统资源有完全的控制能力,包括分配、管理、回收。
虚拟化分不同层面的虚拟化硬件抽象层的虚拟化-客户机与宿主机硬件相似,指令集相似。操作系统层虚拟化-内核可以提供多个相互隔离的用户态,其拥有独立的文件系统、网络、系统设置和库函数。库函数层初始化-是不同的操作系统可以拥有共同的库函数接口,应用程序不需修改。
虚拟机现在越来越多的被使用,他相比物理机有很多优点,但是缺点也比较明显,由于多了一层虚拟指令,执行虚拟机指令后还要转化为本地机器码,所以在执行效率上,虚拟机是不如物理机的。
参考资料:百度百科-物理机
百度百科-虚拟机
CPU预留定义了分配给该VM的最少CPU资源;CPU限制定义了分配虚拟机占用CPU资源的上限;CPU份额定义多个虚拟机在竞争CPU资源的时候按比例分配;CPU份额只在各虚拟机竞争计算资源时发挥作用,如果没有竞争,有需求的虚拟机可以独占主机的物理CPU资源。
由于采用分时复用的方式,在不做VCPU预留的条件下,系统可分配给VM的VCPU总数远远大于实际可提供的VCPU数目(具体能创建多少额外的VCPU依赖于物理CPU的性能和VCPU的使用情况),在出现资源争用的时根据CPU QoS中的预留和份额来分配资源。
扩展资料
对虚拟机来说,不直接感知物理CPU,虚拟机的计算单元通过vCPU对象来呈现。在VMM中,每个vCPU对应一个VMCS结构,当VCPU被从物理CPU上切换下来的时候,其运行上下文会被保存在其对应的VMCS结构中;当VCPU被切换到PCPU上运行时,其运行上下文会从对应的VMCS结构中导入到物理CPU上。通过这种方式,实现各vCPU之间的独立运行。
虚拟化平台将1000台以上的服务器集群虚拟为多个性能可配的虚拟机(KVM),对整个集群系统中所有KVM进行监控和管理,并根据实际资源使用情况灵活 分配和调度资源池,可以突破单个物理机的限制,动态的资源调整与分配消除服务器及存储设备的单点故障,实现高可用性。
一个物理CPU一般一个内核会支持多个处理线程(英特尔超线程技术)。这就意味着一个六核的Xeon处理器可以提供给服务器六个物理CPU。当超线程开启的时候,每个线程可以作为一个物理CPU,所以如果这个六个核都开启了双线程支持,那么服务器将看到12个物理CPU。
每个物理CPU被抽象成每个虚拟CPU,通常情况下,会为每个内核划分可用的虚拟CPU资源,并允许多个虚拟CPU虚拟机共享一个物理处理器内核。默认情况下,虚拟化层会给每个工作负载分配一个虚拟CPU(一个核),一般一个虚拟CPU可以支持4到8个虚拟机。
参考资料:百度百科-云服务器
参考资料:百度百科-虚拟CPU
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)