OpenVZ和Xen的超售

2015-02-10 14:56:02    2015-02-10 14:56:02

关于OpenVZ和Xen的超售,这其实是一个老生常谈的问题了,这边就来总结一下:

什么是超售(就是平常看到的oversell,oversold,overselling之类的)?

简单来说,超售就是出售超过你现在所拥有资源的一种销售方式。最容易理解的一个例子就是健身房了。一个健身房可能只能容纳50人同时使用,但他的会员可能有超过300人,因为不大可能这300人同时来使用健身房。类似的,这种方式在网络主机这一行也是相当普遍,从虚拟主机(shared hosting)到虚拟独立服务器(VPS)和独立服务器(Dedicated Server),基本上没有不超售的。

从某种意义上来说,超售并不一定是坏事,适当的超售反而是节约资源的表现。因为同一个时间,不可能一台主机上所有的VPS都使用100%的资源。如果一个16G内存的独服只划分出15个1G的VPS(除去一些母机本身占用的资源),那可能绝大部分时间里还是会有很多内存是闲置在那边导致资源浪费。如果多放两三个上去,对各个VPS的性能不会造成太大的影响,反而可以降低每个VPS的成本和价格。

但有些疯狂的主机商进行疯狂的超售(是不是应该叫“超超售”呢?呵呵),对母机的压榨已经到了每个VPS使用者难以忍受的程度,导致性能严重下降,根本达不到一个正常VPS使用的功能的标准了,那就会有问题了。

常见观点一:Xen没法超售。

错。Xen这几年已经使用一种叫Ballooning(不知道中文叫什么,充气球?呵呵)的技术(有兴趣可以自己去google一下Xen Ballooning),超售起来已经跟OpenVZ一样简单了。所以不存在Xen无法超售的问题。就算是很久以前需要增加内存来超售,也是相当容易,何况现在一般内存都已经白菜价了。同样一台正常应该是32G内存的主机,本来只能放30个Xen VPS,现在内存加到64G,一下子放了60个上去,但其它资源(像CPU速度,硬盘的读写速度,网络的出口速度等等之类的)根本没有增加,一下子多了一倍的人来用,性能马上就显著下降了。

常见观点二:Xen比较贵是因为它比OpenVZ要快。

。其实恰恰相反,Xen使用的是硬件虚拟化,反而需要消耗更多的资源,所以反而要比使用软件虚拟化的OpenVZ慢。(最多可慢10-15%,有兴趣的可以去看几年前HP实验室的一个论文

常见观点三:OpenVZ的超售要比Xen严重得多。

半对半错。大家有这个印象,是因为绝大多数主机商都是使用OpenVZ这个技术(因为速度快,容易搭建和使用等原因)。所以大家接触到的大多是OpenVZ的VPS,再加上很多Xen的都吹说他们绝不会超售,所以感觉上OpenVZ好像一直在超售。但其实超售起来没什么区别。至于对的那部分,就是如果对那种丧心病狂的超售狂主机商来说(就是理论上从超售到极致这点上来说),Xen的超售极限确实比不上OpenVZ。因为如果两者有同样数量的VPS,而且都在待机状态,OpenVZ基本上不会消耗太多资源,但Xen即使在待机状态,只要开机,就会消耗掉一部分资源,所以如果从这点上来说,Xen的超售确实要比OpenVZ先达到极限。