这几天老是在折腾rhel和他的子孙们centos,oracle-linux,突然发现了一些深入的问题,可以帮助那些为了选择debian还是centos做自己的开发环境或者web服务器而苦恼的人,做个参考:
首先,我们知道在linux中有很多lsm安全模块,其中selinux和tomoyo是经常用的到(在freebsd我们可以开启trustbsd-mac)强制访问模块,其作用当然是限制root权限,增强系统安全,可是安全是有代价的,要安全少性能,我们可以查看 Phoronix 在 2009 年使用 Fedora 11 所做的横向比较 ,再根据本人对内核的测试分析发现,在开启selinux或者tomoyo的情况下性能下降5%-10%之间,还有开启内核中的debug调试分析功能下降20%以上,当然不是所有性能都下降主要是在磁盘性能,数据库性能,web性能测试时!在debian中selinux是默认关闭的,在centos中默认是开启的,而且通过内核编译选项可以看出来centos中的调试,分析代码比debian内核更多,而且编译centos中可以看到所有的模块都是要经过gpg签名的,这点比debian来的安全,大大减少了非法模块的插入有效预防了rookit后门!(补充说明,如果你的内核打了Grescurity安全补丁则损失最少30%以上性能)
通过以上我个人认为:从安全上说 centos,rhel,oracle-linux > debian
从性能下降说也是 centos,rhel,oracle-linux > debian
其次,通过观察debain内核源码和centos内核源码大小,我们可以看到debian内核才62M,而centos内核则达到了82M 为什么呢?还是我先前一篇文章中
分析过的,debian是自由内核,里面去除了很多no-free固件驱动,功能代码,而centos
则是继承了rhel的特点,得到世界很多硬件厂商的权利支持,不管是free还是no-free的全部包含在内核源代码中,而且在虚拟化(kvm)部署中也是处于领导地位的,其中也不乏一些还来得及被debian,或者标准内核采纳的代码,这样就导致了:
硬件支持特别是虚拟化 centos,rhel,oracle-linux > debian(freebsd)
还有,一个就是通过编译内核我们发现,默认情况下,centos开启的内核
选项都是非常保守的,而debian则很时髦,有什么新玩意就上,比如debian开启了内存分配slub 内核尺寸优化Os而centos还是使用久经考验的slab 和 O2..........
默认内核配置性能测试 debian > centos,rhel,oracle-linux
最后我们来说说,他们各自的应用软件支持数量,从官方发布的安装dvd(只有一张3.4G)上可以看出centos rhel是专门来做服务器,vps来用的,包含的软件相对debain 安装dvd (8张dvd)来说是少只又少。我曾经就yum install nginx结果我失败了
我以为我打错。结果真的没有,要自己二外去加源,我知道有很多第三方的软件源可以使用,但是单从官方支持上说是很少了,这也表明了centos重要用途,还是以服务器为主,桌面勉强可以吧!而debian呢有4万多种软件,涵盖了开发,桌面,服务器软件,等等几乎你说能用到的所有软件都有,而且apt包管理也比yum强很多,以此,我个人判断:
开发方环境,通用性 debian >> centos,rhel,oracle-linux
好了来个总结吧,如果不是狂热的系统定制优化狂人,我的建议是:
1,如果你是开发者,和狂热的性能追求者或者是vps中的服务器请使用debian !
2,如果你是vps供应商,电子商务,使用了很多像hp,ibm等大品牌服务器,而且要求很高的稳定性,安全性,我建议你使用rhel家族,最少用10%左右的性能损失,不是很大的易用性损失,换来 安全稳定还是值得的!
好了,以上观点纯属个人意见,如果太菜请大家多多包涵,指正!!