您的位置:首页 > 大数据 > 云计算

如何在云平台选择虚拟机配置信息

2017-03-02 08:45 337 查看
题记

对于已经拥有云平台或者云GIS平台的用户来说,只需几分钟就可以创建一个自定义操作系统和计算参数配置的虚拟机是一件非常容易的事情,但是很少有用户关心云主机配置类型的选择,也就是说我创建的虚拟机需要多少个CPU和多少G内存,多少存储,可能是刚刚从传统模式转换到云环境,很多思想还是禁锢在传统模式下,我要的虚拟机配置越高越好。



其实我们为什么使用云计算,主要还是希望将原来闲置的资源利用率进行大规模的提高,通过更多的虚拟机参与工作提高工作效率,如果说我们还是沿用传统模式,创建一个非常高配置的虚拟机或者对虚拟机的配置不“斤斤计较”,那基本还是走传统模式的老路,无非是以前物理机资源利用率不高,现在是虚拟机资源利用率不高。(当然了,我也不是说每个虚拟机我们都非常精确的抠配置)



由上图左可以看到,我们由原来的宿主机+OS的传统模式,升级到宿主机+OS+Hypervisors+云平台的云化模式,虽然我们可以提供资源利用率,创建很多VM,但是我们VM的资源配置与传统模式的资源配置完全不是一个级别,也就是说我们VM的所谓的CPU+内存只能称之为vCPU+vRAM,他是通过软件定义计算的技术将原来的物理CPU和物理内存进行虚拟化,相关的性能效率肯定不敌传统模式的性能。

PS,插播一下基础知识,关于CPU虚拟化

前面提到的hypervisor是在OS层之上的,主要包括KVM 、Xen、Esxi等,例如OpenStack就是基于KVM的,而且KVM已经内置到linux内核中,那么如果通过KVM创建一个虚拟机,我们可以看到,这个虚拟机其实就是一个qemu-kvm进程,与其他Linux进程已有被调度。



每个虚拟机可能包含几个vCPU,所谓的vCPu就是qemu-kvm进程中的多个线程,如上上图,右图所示。

在这个例子中,宿主机有两个物理 CPU,上面起了两个虚机 VM1 和 VM2。

VM1 有两个 vCPU,VM2 有 4 个 vCPU。可以看到 VM1 和 VM2 分别有两个和 4 个线程在两个物理 CPU 上调度。

从这个例子可以看出,并不是我只有两个物理CPU,我的虚拟机只能使用2个CPU,虚拟机的vCPU的总数可以超过物理CPU的数量,这个叫CPU的超配(OverCommit),这个在以前博客也提到过。

一般情况下,OpenStack默认的CPU超配比例为1:16,也就是一个CPU Core可以超配16个vCPU,当然,现在各大厂商默认的规则,以Intel CPU为例,为了保证vCPU的性能,默认按照1:4的比例超配比较合理。内存也可以超配,1:1.5.

按照这个思路我们可以推算一个物理硬件配置环境下,可以提供多少个虚拟机(nCPU+nRAM)计算能力,也要记得为OS和云平台预留资源,同时不要忘记CPU也可以超线程。

对于超配需要注意的是,超配越多,相关vCPU的性能越差,对于超配,如果同一时刻,所有超配后的虚拟机的负载一般,这是我们希望看到的,用超配生成更多的VM工作,如果说所有超配过后的虚拟机还是满载运转,反而会影响整体的性能,这个时候你需要为宿主机的资源进行扩容了。

回过头来我们继续说选择虚拟机的配置。关于虚拟机的配置,我的建议你需要了解你虚拟机的操作系统,以及在该操作系统中的应用,该应用的特性,是计算密集型的,还是消耗内存的,由于虚拟机的CPU不讲究频率,只讲究vCPu,所以如果你的应用支持多进程操作,可以适当多提供vCPU数量,否则,2个CPU即可,对于内存,如果Windows应用4GB即可,当然所有的建议都还需要测试来验证。

关于虚拟机的硬盘量如何选择呢?

一般情况下,虚拟机的存储只需要为OS预留足够的存储资源即可,所有的数据建议都以块存储的形式提供,这样既可以保障数据的安全,又可以保证块存储的扩容,而且如果应用非常耗费磁盘I/O,也可以添加基于SSD的块存储提供IO读写效率。

不建议用户创建比较大的内置硬盘的虚拟机,一方面我们时刻提醒自己,虚拟机是不可靠的,随时可能有问题,一旦虚拟机崩溃有可能导致数据丢失,另外,云计算经常会提到动态迁移,如果你的虚拟机过大,势必会导致虚拟机迁移效率过低(当然,如果共享存储不会有这个问题)

虚拟机的配置极限是多少?

一般情况下,虚拟机的配置不可能超过宿主机的物理配置(包括超配),特别是不能超过内存资源,最大虚拟机的消耗不能超过宿主机资源的75%,不然会有极大的风险。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: