对帝国cms、dedecms、phpcms等负载测试总结

来自:http://www.chinaz.com/web/2013/0729/311360.shtmlphp

担忧被骂,本不想写这篇文章。犹豫良久,最终仍是决定写。但愿可以帮助到一些朋友,认识到数据库索引正确设计的重要性。html

因为我比较懒,就简单用文字描述一下,就懒得切图片证实了,懂技术的朋友能够本身测试一下,可证明个人测试结果是否真实。不懂技术的朋友信不信也无妨。mysql

测试程序:web

CMS程序:帝国cms dedecms phpcmssql

论坛程序:discuz phpwind xiuno数据库

负载测试结果:apache

xiuno > discuz > phpwind > phpcms > ( 帝国cms ? dedecms)数据结构

从数据库设计来看(我的观点):架构

xiuno > (discuz 、 phpwind 、 phpcms) > (帝国cms 、 dedecms)数据库设计

dedecms和帝国cms都是老牌的CMS了,从的数据库设计来看,不知是数据库设计者彻底没有理解mysql索引的真谛,仍是留一手以对高负载需求的用户收费改进?(但愿不懂技术的朋友不要喷我,真正懂mysql索引的朋友能够本身看一下他们对索引的设计,虽然对于dedecms和帝国cms的做者来讲,我只是一个晚辈,像您们这样有10多年开发经验的人,我比较尊敬,但我建议当前的dedecms和帝国cms数据库设计者仍是再研究一下mysql索引吧,能够不相信我,但能够花点时间看看discuz 、phpwind的数据库设计吧,确实是比您们的好)。

若是有幸帝国cms做者能看到此文,但愿您再从新设计帝国cms架构吧,毕竟这些年您一直在改进帝国cms的负载能力,光是经过分表技术提高,没有真正用到索引来优化,真的不行的,若是用对了索引,性能还会有更大的提高。

dedecms的创始人我算是和他认识,但如今dedecms却不是他的,比较遗憾,如今的dedecms这几年确实没多大变化,一直在打补丁,这样下去真是比较悲剧。

个人测试环境:

i3CPU 4G内存 1T硬盘 win7系统   apache 2.2 + mysql 5.0(普通环境没有优化过)

测试方法:

导入100万至1亿 不等数据,进行简单的访问测试

个人导入方法:

根据各个程序的数据结构写出导入程序,

1.先写一个PHP程序,将数据写入 e:/insert1.sql 这个文件,

2.而后再经过 LOAD DATA local INFILE 'e:/insert1.sql' INTO TABLE `数据表名` character set 编码; 这种方式导入的,导入千W数据也就几分钟。

一、帝国cms

测试版本:EmpireCMS_7.0_SC_GBK (当前官方最新版)

先说说帝国cms,官方有一篇大数据测试贴(2千万数据、17.3GB数据库下帝国CMS超强生成速度 ),当年我看到这篇测试贴时,也以为负载很是强大,但我测试后,令我失望了。

安装默认测试数据(共33篇新闻测试数据),首页改成动态首页 第一次访问0.670127010345459 第二次访问0.07926607131958

我导入100W数据时,数据库大小3.6G,首页第一次访问182秒,第二次访问155秒,我不知道当时帝国cms做者测试时,是否有测试过动态访问首页的时间。包括从6.0版起,每次更新都有说提高性能,但为什么会这样?

帝国CMS官方的测试帖,就是误导人,忽悠人。

问题1.测试数据并无提到动态访问首页或是生成首页。也没有提到动态访问列表页,和生成列表页。

问题2.测试统计的时间,也只统计了链接数据库以后的执行时间,并无加上链接数据库的时间,这样很容易误导不少人,拿这个时间和别人统计了链接数据库的时间比。这样就差异大了。

问题3.每篇新闻的内容不多也就几行字。同时内容页模板,也很是简单,生成出来的文件也很是小,只有3K。正常的文章,都是上10K至几十K。

问题4.同时由于phome_ecms_news表 id 为主键,读取内容时,都是走的索引,因此动态访问内容页,编辑内容,生成内容页很快,都是理所固然的。

问题5.测试时都是经过分表来测试的,在真实站长作网站,不可能一开始就把网站内容分表。因此这和真实作站状况彻底不同。

像官方这种测试贴,真是误导人,并且还挂了几年。对于不懂技术的人,就是一种误导,让普通用户盲目的崇拜。

二、dedecms

测试版本:DedeCMS V5.7 SP1_GBK正式版 (当前官方最新版)

织梦CMS在知度CMS中一直公认的负载性能最差的CMS,确实不好。

我导入100W数据时,数据库大小只有330M,首页访问已经须要70几秒-80几秒才能访问。

三、phpcms

测试版本:PHPCMS V9_GBK 正式版 (当前官方最新版)

PHPCMS如今是由新的团队从新开发,也是号称高负载。

我导入100W数据时,数据库大小3G,首页访问须要20几秒。

四、phpwind

测试版本:phpwind v9.0 UTF-8 正式版(当前官方最新版)

phpwind之前和discuz比,速度上有优点,如今听说是全新开发,新版确实作了很大的改变(之前一直是discuz追随者,和discuz设计差异不是很大),如今这一变化,应该值的赞赏,但如今速度上不如discuz了,之前网页底部显示执行时间都去掉了。

我导入1000W数据时,数据库大小13G,

首页第一次访问8秒,第二次访问0.70477390289307秒

帖子列表页(默认排序)0.2x-0.5x秒  但我采用按“最新发贴”排序时,花了182秒才显示出来(我看了数据库设计,由于只作了按“最后回复”的索引,“发帖时间”的排序都没作索引,因此才很慢) 

帖子内容页,没填充多少回帖也没具体测试

五、discuz

测试版本:Discuz_X2.5_SC_UTF8  Discuz_X3.0_SC_UTF8

dx3看来是dx2.5的增强版,从后台、前台设计看,都变化不大。数据库架构变化也不大。

我导入1000W数据时,数据库大小18G,

首页0.05-0.06秒,(也没太大测试价值,由于都没读到thread表)

帖子列表页(默认排序)0.07-0.09秒 但我采用按“发帖时间”排序时,花了181秒才显示出来(我看了数据库设计,由于只作了按“最后回复”的索引,“发帖时间”的排序都没作索引,因此才很慢) 

帖子内容页,(没填充多少回帖也没具体测试)

六、xiuno

测试版本:xiuno bbs 2.02 UTF8

我导入1000W数据时,数据库大小15G

首页0.03-0.05秒

帖子列表页0.03-0.05秒(回贴排序)    0.01-0.03秒(发帖排序)

帖子内容页0.03-0.05秒 (没填充多少回帖也没具体测试翻页)

我导入1亿数据时,数据库填充到215G

首页0.05-0.08秒

帖子列表页0.05-0.08秒(回贴排序)     0.03-0.05秒(发帖排序)

帖子内容页0.05-0.08秒 (没填充多少回帖也没具体测试翻页)

总结:

xiuno 虽然负载很高,可是功能上有很大的控制,去掉了不少可能影响到性能的功能,功能方面我以为要是能有一个像wordpress这样的一个平台来弥补,那将会有很是大的优点。

discuz 虽然没作深刻测试,不过已经可见负载上面仍是有缺陷的,同时thread表设计为 tid mediumint(8) UNSIGNED 因此最大数值也就16777215,因此他的设计也并无往更高考虑。

phpwind 此次的新版本的改变,证实了他们的决心,要和discuz走不一样的路,也能看出来他们更注重用户体验方面。程序性能已经次之。

phpcms 性能是比之前提高了,可是用户体验我是感受不太好。不过可以说明CMS性能方面不如BBS程序。由于排序方式多,并且同一个页面列表也比论坛的多,因此让CMS性能不如BBS。

帝国cms 虽然程序官方一直强调负载,但真还不如phpcms,光是经过分表提升负载,真不是一个好办法。我我的愚见,程序负载高不高,第一步应该是正确设计索引,索引都没设计对,就用分表来解决,并且还要站长手动设置,彻底增长使用难度。

dedecms 虽然用户量很是大,但数据库设计真很差,不但索引没设计对,并且还没分表,并且也能看出dedecms并无考虑作高负载,毕竟上百W级数据的网站不多。

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息