一对一免费咨询: 13913005726 025-66045668

因为最近在给VeryCD作山寨站点,这个可是有1G数据库的真家伙,可不是wordpress、没啥人气的discuz论坛等这种小菜可以比拟的,想必会在一定程度上考验VPS的性能。之前选VPS那个花钱如流南京网站建设公司水,买的多个VPS都还没到期,打算压榨一下他们的剩余价值。应用web.py框架的几台VPS/Shared Hosting中,一台rapidxen的128M Xen方案,一台ramhost的512M Openvz方案,一台stdyun.com的80M共享空间方案。

测试Xen vs Openvz vs Shared Hosting的性能比, 用ab -n 1028 -c 128 addr来测,以response time(mean)为基准 ,他们的性能对比大约是0.8:28:6,这么个悬殊的差别,实在令我惊讶万分。

stdyun.com是专为python优化过的共享主机,本身load 天津北辰网站建设公司 average比较低,能有6的表现也属不错;ramhost就是一个bt,从来没见过VPS性能那么猛的,根据我对数据的初步分析这么个站同时在线万人也不会有什么问题;而rapidxen则让我大跌眼镜。

诚然应该有相当部分的原因是rapidxen的方案内存比较小的关系,可是人家内存比你更小(80M)的标准云都表现比它强6倍,这无论如何有点说不过去。而且观察程序的内存占用,令人沮丧地发现,xen的内存占用达到了openvz的两倍之多,这让我强烈审视起网上流传的xen要比openvz好,能彻底利用主机性能的说法。

有了怀疑,就打算真的好好比较一下他们了,所有错误的观念都要摒弃,所有人云亦云都由我而止,Xen和Openvz到底孰优孰劣,真相只有一个,我追求的就是那尽可能无偏的结论。

本文打算从两个方面来比较Xen和Openvz的性能。第一是理论方面:根据强大的参考文献1,具体分析两个架构的优劣。第二是实践方面:大家一碗水端平了用真实的应用决胜负:既然内存不公平,那我就给你公平。根据参考文献2的廉价VPS列表,我挑选了Xen的内存512M的,价格最便宜的PhotonVPS(又是16刀,泪奔,做个测试成本真高)。

以下理论中,普通字是我对参考文献1的粗略翻译。

一、Openvz和Xen的技术规格分析

1.Xen与Openvz的区别

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

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

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

2.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表现更佳。

这实际上解答了我关于ramhost为啥那么牛叉的疑惑,因为据我所知ramhost是相当undersale的服务商,从他们的状态日志上可以看到,一般inactive内存都在2G以上,所以性能当然强劲了.

3.Xen的内存模型

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

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

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

4.稳定性和可预测性

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

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

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

5.结论

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

有趣的是我虽然看了这篇文章,却得出了一个截然相反的结论。

不考虑黑心openvz服务商的问题。由于同样的程序在xen中占用内存比openvz两倍还多,xen总是很容易进入swap环节,从而在同样的配置下一般会性能更低。

对我来说用vps就是追求性价比的。像openvz那样撞墙?不怕,程序写写好,控制内存使用,一旦内存用尽,exception写写好,处理得漂亮一点就没事了。像xen那样跑车变成黄鱼车?这个提都别跟我提。


 


 南京牧狼文化传媒有限公司简介:


      牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!


  公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!


  为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!


  主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等


  合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯


  资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。



致力于为客户创造更多价值
13913005726 025-66045668
需求提交
电话咨询
在线咨询