VPS的三种虚拟技术OpenVZ、Xen、KVM优缺点比较

 点评:本文就VPS采用的几种常见技术OpenVZ、Xen、KVM做简单介绍和对比,以备你选购自己合适的VPS

很多人看到同样配置的VPS价格相差很大,甚是不理解,其实VPS使用的虚拟技术种类有很多,如OpenVZ、Xen、KVM、Xen和HVM与PV。在+XEN中pv是半虚拟化,hvm是全虚拟化,pv只能用于linux内核的系统,效率更高,hvm可以虚拟所有常见操作系统(可以使用windows),+理论效率比pv略低,另外,hvm需要cpu虚拟化指令支持,pv无此要求。KVM是新兴的虚拟化项目,出售KVM的VPS商家不多,但据说KVM虚拟技+术是比较强悍的。而OpenVZ是一个类似于Linux-VServer的操作系级全虚拟化解决方案,目前基于Xen和OpenVZ的VPS服务商比较+多。本文就VPS采用的几种常见技术OpenVZ、Xen、KVM做简单介绍和对比,以备你选购自己合适的VPS。 

OpenVZ 

OpenVZ是操作系统级别的虚拟化技术,是底层操作系统上的一层应用,这意味着易于理解和低权重开销,一般来说也意味着更优的性能。但是OpenVZ配置起来比较灵活,给黑心服务商改低限制的机会。 

优势:现在外面卖的这种类型,许可的内存都超大,CPU也强劲,而且卖家很多,可比性也很强。性价比超高。 

劣势:超卖,没有不超卖的,导致各种石头盘,钻石盘。连带的cpu也被过度分割导致性能升值不如其标明的1/10。再有就是内存,基本上OpenVZ技术没有独占的,都是共享,别人多了你就少了,而且这种技术最大的劣势就是内存下来后直接就是当机。还有开设vpn各种不方便。 

Xen 

Xen是半虚拟化技术,它并不是一个真正的虚拟机,而是相当于自己运行了一个内核的实例,可以自由的加载内核模块,虚拟的内存和IO,稳定而且可预测。分Xen+pv+和Xen+hvm,区别就是pv只支持linux,而hvm支持win系统。 

优势:内存独占,虽然小但是保证分配的到。部分虚拟技术决定了就算是超卖也不会超太离谱。所以一般的母鸡就算超了,也很少导致石头盘。当然小鸡有pt就除外了。另外就是即使内存再低也不会当掉,只是会无响应一段时间。 

劣势:内存小,硬盘小,带宽小(以上3点均和同价位的openvz对比)。因为没法超卖了,为了赚钱只能把这3个基本配置降下来了。还有就是供应商残次不齐,而且大部分在说xen的时候都木有明说是pv还是hvm,其实pv的性能是优于hvm的。 

KVM 

优势:和xen类似,比xen更好的一点是,kvm是完全虚拟的,所以不分pv和hvm的区别,所有的kvm类+型的虚拟技术都可以装各种linux的发行版和各种win的发行版,不管供应商在主页有没有写明是否支持win,只要你配置够win运行,那就肯定可以装+的上去,只是方法的问题而已。 

劣势:恰恰因为kvm可以装任意类型的操作系统,导致了折腾帝甚至在128m的机器上装了win2003(上去+后直接所有的cpu和内存都用于硬盘IO了,不明白这些人想干神马)。其结果就是所有的kvm邻居都得看你周围邻居的脸色。这么说把,一个node下只要+有5、6台这种折腾帝,对不起,你的硬盘基本就是石头盘了。 

个人比较倾向于Xen,因为它是对供应商和和客户来说都是可以接受的折衷方案。openvz超卖太厉害,kvm等看RP,这2种都不适合那些不想折腾只想做站的站长。

【检测小妙招】

对于新手来说,刚开始使用VPS的时候只要这家商家不跑路,机器稳定流畅就已经很感激流涕了。随着我们学习只是的深入,以及开始需要检测自己购买的VPS是否如服务商列举出来的参数和配置以及环境。在我开始使用VPS的时候,给一个朋友帮我看,他告诉我我买的不是真的XEN VPS。

如果大家对自己购买和使用的VPS需要检测是否为真的Xen,我们可以用如下方法进行测试。比较专业的就是用virt-what脚本进行检测。

检测Linux VPS是Xen、OpenVZ还是KVM真假方法

看到上图没有,我检测出自己手上这款Linux VPS是采用XEN虚拟技术的。如果你也需要测试,方法如下:

wget http://people.redhat.com/~rjones/virt-what/files/virt-what-1.12.tar.gz
tar zxvf virt-what-1.12.tar.gz
cd virt-what-1.12/
./configure
make && make install

virt-what

执行后会看到类似如图的反馈信息。

如何检测OpenVZ VPS和Xen VPS是否超售

百分百销售VPS的主机商都有“超售”的现象,不管你是OpenVZ还是Xen环境,没有“超不超售”的问题,只是是否严重而已,如果严重的话那就是变成了

“OVERLOAD”了,也就是服务器超载。所以,大家购买的时候不要心里报着有地方购买到没有超售的便宜的VPS。那是不可能的。

没有超售的VPS一般一个月的价格都可能是你便宜的VPS的半年或者一年的价格。

查看OpenVZ VPS的超售方法:

进入linux的共享内存目录:
cd /dev/shm
创建100MB的文件:
dd if=/dev/zero of=./memtest bs=1M count=100
查看内存:
free -m
可以看到内存使用增长了100MB。
只要不超过提供商的内存配额,
不断调大创建文件命令中的count值,
可以看到内存的增长,
假如在承诺内存内机子就挂彩就是超售非常严重了。
结束的时候输入:
rm ./memtest
其他:
查看CPU信息:
cat /proc/cpuinfo
磁盘IO测试命令
dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
端口速度测试
wget http://cachefly.cachefly.net/100mb.test
1)查看进程内存占用
top
2)查看CPU信息
cat /proc/cpuinfo
3)磁盘IO测试命令
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
4)端口速度测试
wget http://cachefly.cachefly.net/100mb.test
5)查看Inode
df -i
6)内存超售检查
进入linux的共享内存目录:
cd /dev/shm
创建100MB的文件:
dd if=/dev/zero of=./memtest bs=1M count=100
查看内存:
free -m
结束的时候输入:
rm ./memtest

查看Xen VPS的超售方法:

以前购买了一个512MB内存的Xen VPS
价格也便宜。所以,我登录并检查了多少内存。
运行
# free
             total       used       free     shared    buffers     cached
Mem:        543776     535360       8416          0      66516     130504
-/+ buffers/cache:     338340     205436
Swap:      1048568        136    1048432
330MB的内存已经用于我新的Xen的VPS。”让我们来看看哪些进程正在运行
# ps aux
...
root       204  0.0  0.1  17028   780 ?        S    Oct27   0:00 upstart-udev-bridge --daemon
102        356  0.0  0.1  23548  1080 ?        Ss   Oct27   0:00 dbus-daemon --system --fork
root       431  0.0  0.1  21068   788 ?        Ss   Oct27   0:00 cron
root      3110  0.0  0.5 253832  2992 ?        Sl   Oct28   0:00 /usr/sbin/console-kit-daemon --no-daemon
root     11037  0.0  0.1  49256  1012 ?        Ss   Oct28   0:00 /usr/sbin/sshd
root     15427  0.0  0.1  12520   772 ?        S    Oct28   0:00 /usr/sbin/syslogd --no-forward
root     31231  0.0  0.0  16748   436 ?        Ss  Nov12   0:00 udevd --daemon
root      5716  0.0  0.6  79100  3772 ?        Ss   01:02   0:00 sshd:  root@pts/0
root      5731  0.0  0.3  19400  2148 pts/0    Ss   01:02   0:00 -bash
root      5782  0.0  0.1   6072   724 ?        Ss   01:08   0:00 /sbin/getty -8 38400 hvc0
root      5783  0.0  0.2  15248  1172 pts/0    R+   01:08   0:00 ps --sort=start_time uax
没有什么内存在VPS上运行。 SSH服务器,syslogd的,cron
那么,我没有使用的内存为什么330MB消失?
让我们进一步的挖掘之前,我们得出这个认证。
你可以肯定出答案:该Xen的VPS的内存存在于超售行为。这东西是好多年来很多人都知道,它使用一个称为“ ballooning”的技术。
基本上是一个特殊的Linux内核驱动程序安装在您的系统 – “balloon driver”。
当dom0的(在Xen服务器/管理程序)需要更多的内存,并希望要求从(domU)客户的VPS,它会要求客人VPS的“balloon driver”充当本身
- 通过询问其Linux内核的一些内存。内核内存分配将被要求到该VPS系统可用的内存,并且不能调出到交换。
主机一旦膨胀的消耗内存,然后将其传递给dom0/hypervisor用于其他地方(例如建立一个新的VPS)。
因此,你的VPS的“总内存”将保持不变,但将在“内存使用”大增加,一大块已经被内核balloon driver驱动程序使用,

标签:  KVM  Xen  OpenVZ
相关文章
相关标签/搜索