VPS选择之虚拟技术(OVZ or Xen)

作者:暗夜星辰 发布于:2012-2-29 9:48 Wednesday 分类:LINUX && VPS

目前的国内外vps主机提供商所提供的主机大多是基于xen、vmware、openVZ这三大虚拟软件,国内的提供商大多采用vmware,而美国等国外提供商大多采用xen和openVZ这两款软件。


简介

1、Xen

    Xen已经开始在集成到主要的linux发行版。它在性能上也表现很相当不错,再加上是open source(开源软件),已经成为了linux上虚拟机的一个主角。

2、OpenVZ

    OpenVZ是SWsoft公司的open source版,同公司还有Virtuozzo的商用版, 它的最大的特别在于性能出色。


OpenVZ和Xen的对比:

Xen由dom0和domU组成,Dom0是虚拟出CPU, IO总路线等资源,供工作于DomU上的不同的kernel运行。
这样的好处是,
1.对可以运行的操作系统限制较少。
2.domU上系统的crash不会影响其他的dom. 当然Dom0发生故障时还是会有问题。
坏处:
1.由于需要虚拟CPU,BUS等物理资源,开销会更大点。


OpenVZ使用了完全不同的方式,它所创造的虚拟机都使用工作在同一个kernel下。

这样的好处是:
1。性能好。
坏处:
1。任何一个kernel bug都会危及所有的虚拟机。 因kernel bug所crash的可能性大大增加。
2。他需要对内核作很多的改动。

最近,还有一个趋势就是,hardware虚拟,现在的CPU带有多个核心,Intel和AMD都开始发布基于CPU的虚拟化。这一些都也可能成为 虚拟技术的一个新的热点。


Xen与Openvz的区别

  Xen和Openvz同样是虚拟化主机技术,区别在于Xen是半虚拟化技术,它并不是一个真正的虚拟机,而是相当于自己运行了一个内核的实例, 可以自由的加载内核模块,虚拟的内存和IO,稳定而且可预测。Openvz则是操作系统级别的虚拟化技术,是底层操作系统上的一层应用,这意味着易于理解 和低权重开销,一般来说也意味着更优的性能。

  这里有一个问题,可以看到实际上openvz因为免去了大量的公共开销,理论上来说性能会比xen更好。为什么大家都会认为openvz过分压 榨性能呢?我认为是因为openvz配置起来比较灵活,给黑心 openvz服务商改低限制的机会。

  比如mediatemple,号称512M内存的dv方案,kmemsize才12M,不了解的人看了512M觉得很哈皮啊,可是使用的时候一 般这512M能分到你手里一半就不错了。此消彼长,所以才会有xen 能更好地利用机器性能的错觉。


Openvz的内核模型

  首先当OpenVZ的主机说“256MB的保证”,它实际上意味着约232MB的“privvmpages”,14M的“kmemsize”和 其他杂项资源。当应用程序调用 malloc()分配的内存将被添加到“privvmpages”。

  当“privvmpages”超过限制,malloc()将失败并返回一个NULL。当主机服务器内存用光了,然后虚拟环境下的进程超过 “oomguarpages”的将被终止。

  OpenVZ的内存管理方法既有问题也有优势。最大的问题之一是内存容量的应用程序使用的内存和应用程序实际上分配到的内存是不同的,不同的应 用程序他们的差别可能会很大。以Java为例,它通常分配一大块的内存,但是,它可能只使用一小部分分配的内存。如果privvmpages受 限,java会立即停止运行。调整参数可以解决一部分问题,但它处理得绝对没有Xen来得干净利落。事实上,几乎所有使用内存分配的应用程序都会受 OpenVZ这个问题的影响。

  /proc/meminfo 本身也有问题。虽然OpenVZ的已经为内存进行了虚拟,但是用”free”命令依然会返回主机的内存。这样就会使小内存的openvz的vps无法运行 诸如java或者gcc编译这样的程序。

  OpenVZ的内存模型的优点是, 它容易理解: 你几乎就只有privvmpages受限。与专用的服务器或Xen的服务器不一样的是,你的磁盘高速缓存和页面缓存并不计入您的总内存使用情况。因此,在 一个没有过度销售的openvz主机上,由于拥有较大冗余的公共资源,它实际上可能会比同类规格的Xen的VPS表现更佳。


Xen的内存模型

  Xen的系统模型更容易解释。256MB的Xen的VPS是就像一个256MB的专用服务器-该内存段是预留作VPS专用,没有其他VPS能够 使用这部分内存,这就像一个真正的专用服务器。

  此外,当内存不足时,VPS会使用Swap。一般每个VPS带有两倍大小的交换分区,当您的应用需要更多的内存,不常使用的页面从内存中被换出 到交换分区,从而腾出使更多的房间。因此,256MB的Xen的VPS系统实际上共有768MB内存(256MB内存+ 512MB的交换空间),请相信我,交换空间是非常有用的,特别是处理突发的需求高峰时。

  这么说来,Xen是永远远优于OpenVZ?不然,你的256MB的VPS理论可以使用高达768MB内存,而实际上内核,高速缓存,缓冲,他 们都占用内存。这部分系统开销也是可观的。另外,Swap会严重降低性能。


稳定性和可预测性

  当内存耗尽时,xen和openvz表现大相径庭。xen会把不常用的内存页面换入Swap,这将大大降低性能,当Swap也用尽,那么xen 的系统会响应得越来越慢,就像一台真实的服务器一样。

  而openvz一旦内存用尽,则会突然死亡:开不出新的程序,只能等待系统资源可用。更有甚者,本来运行的好好的程序也可能因为不断增长而超过 限制,然后突然死亡。这就像开车开到70码,然后突然撞墙上了,一般会死得很惨。

  毫无疑问这点上我倾向于xen技术,可预测,稳定。


结论

  如果xen和openvz一样贵,我肯定选xen,因为可预测性,即使openvz打8折,我还是追求稳定。

  总结一下:

  XEN比openvz主机对买家更有利,比如分配给你512M内存后,这一部分内存就从服务器上专门划给你了,别人将无法使用,而 openvz则是共用内存,比如分配给你512M内存是指最大你能使用512M内存,比如你占用了200M内存,那么就只从物体内存中分配200M给你, 所以卖家非常容易在服务器上面超卖!


标签: VPS XEN OVZ

发表评论:

©2012-2014 woodbunny.com 木头♥兔子的小屋 sitemap