手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

转:VPS采用的几种常见技术(OpenVZ、Xen、KVM)介绍与对比

一直都知道openVZ性能不高,不太能設VPN,所以一直想用的也都是XEN,但XEN的價格又比較高,比較有名的就是linode了。
找了一下資料,詳細了解一下資料:
很多人看到同样配置的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种都不适合那些不想折腾只想做站的站长。

--------

上面這段文字是來自於:http://www.laoyao.me/post/2805.html

Tags: vps, openvz, xen, kvm

小贴士:喝水的杯子有毒吗?

你知道喝水的塑料杯其实也分等级的吗?
大小: 95.12 K
尺寸: 392 x 376
浏览: 1456 次
点击打开新窗口浏览全图
仔细看看,以后还是要注意一下。尽量选择PP等级高的杯子吧。
不过再想想,在國內啥沒吃過?地溝油每天都在吃,毒蘑菇三天兩頭嘗,病豬肉一天不吃不開心。所以,忍忍吧。

Tags: 杯子

yiiredis的一个小BUG

yiiredis是基于phpredis的一个YII组件。平时用的话确实也挺方便,但偶尔还是会有一些小BUG,比如说:
yiiredis自带了计数器的功能,嗯,它是调用了phpredis裏的代碼:
$counter = new ARedisCounter($key);
$counter->increment();  //表示每次加1
echo $counter->getValue();

這樣的代碼是沒有任何問題的,但問題卻出現在了:
$counter = new ARedisCounter($key);
echo $counter->getValue();

上面的代碼好象沒有任何問題?但就因為這樣寫,程序崩潰了。。
NND,你不先加1,就不能取$counter->getValue();
這尼瑪也太坑爹了吧。。。。。你好歹默認一個0嘛。

Tags: yiiredis

str_word_count的想当然

看到str_word_count的時候,想當然的認為它就是統計字符串中某些單詞出現的次數。结果,根本不是這樣,只是統考這個單詞出現在第幾位。我TNND。
然後一猶豫,我就寫了一個函數:

PHP代码
  1. function getStrCounts($str,$findstr='%s'){  
  2.     $i =$s= 0;  
  3.     while(($s = strpos($str,$findstr,!$s?0:$s+count($findstr)))!==false){  
  4.         $i ++;  
  5.     }  
  6.     return $i;  
  7. }  

等我写完后,发现,果然不错耶。然后我TNND又看了一下手册。。因为我记得这玩意确实是有函数的。找了一下,果然还真TMD有。substr_count就是这个苦逼的函数:

PHP代码
  1. $format = "There are %s monkeys in the %s %s %s";  
  2. echo substr_count($format,"%s");  


我晕啊。这个count,你为什么要扔到substr_这个前缀后面???真受不了。这个问题好象很久以前也有人提过,看来苦逼的人不是我一个啊

在VPS上为mysql禁用innodb引擎

我知道INNODB不錯,但是我的VPS只有小小的512M內存,實在是扛不住,這玩意啥也不錯就吃掉了我不少內存了。於是我直接在my.cnf裏加上了skip-innodb。結果服務無法啟動。

找了一下資料 ,原來mysql 5.5以上的時候,默認的引擎就是innodB,因此,如果要skip掉它,必須告訴 mysql我的默認引擎是myisam。因此代碼就變成了這樣,在[mysqld]中加入:
default-storage-engine = MyISAM
然後再skip-innodb,接著運行service mysql restart,世界清靜 了。
原來運行top的時候,mysql一直佔有著70%左右的CPU。現在立刻清零。
一下子安逸了

Tags: linux, mysql, innodb, myisam