Plone4.1 - 还能更快些吗?

原文链接: http://blog.hannosch.eu/2011/04/plone-41-is-it-any-faster.html



Plone4.1 已经到了它最后的 beta阶段 ,马上就将最后发布。现在 又是时候 看看它在性能方面的改进了。

 

Plone4.0 我们 关注 于改进Plone显示速度 内存消耗 二进制文件的处理 。这些改进有利于任何规模的站点。

 

Plone4.1 的性能改进中我们有了不同的关注点:索引( catalog )。索引与搜索、内容列表、 portlet 列表、站点标签、网站地图、引用引擎、 UUID 查询等 n 多方面有关。

 

对于中等规模的内容项少于10000 的站点,性能问题不大。但是一旦你的站点规模上升到几万甚至上百万的内容项之后,性能开始迅速下降。

 

过去几年 中许多 公司 社区成员 已经开始着手解决这个问题。到目前为止这些改进都只以附加产品的形式提供( add-on component ),良莠不齐。在 Plone4.1 中我们将一些稳定的已经过考验的代码集成进了 Plone 核心。

 

这些改进可以归为两个大的方面:改进索引中数据的存储和优化内部搜索算法。

 

在存储方面我们添加了两个特别的索引类型:一个UUID 索引和一个boolean 索引。它们将默认生效并且在你升级Plone 版本的时候更新你站点中已存在的索引。我们还更新了几乎所有旧索引,以更高效的存储索引数据。减少索引存储所占尺寸并且降低在并行写操作时的冲突错误。

 

在搜索方面最大的改变是引入了查询计划(query plan )。所有的搜索在运行时将收集信息,根据这些信息,后续的搜索将以更优化的方式执行。这个过程是完全透明的,不需要任何配置。你可以在ZMI 中通过索引工具提供的报表检查所有的搜索计划和慢查询(slow catalog query )。

 

这些工作到底对性能有什么改进呢?

 

对于一个小型或者空的Plone 站点,上述改进基本上没有导致任何性能提高。好消息是也没有导致任何性能下降。

 

为了清楚说明到底有哪些影响,我将一个大型的真实Plone 站点稍作调整,使它分别运行于默认安装的Plone4.0Plone4.1 上。真实站点原来已经应用了上面说过的一些改进,我将这些改进一一剔除掉,以获得一个真实的比较。这个站点有差不多250000 个内容对象,大多数是已发布的内容。它用了LingualPlone ,有许多的portlet 列出最近更新的内容和相关内容,所以许多页面都做了很多的索引查询。当每个索引查询都更快一点,积累起来你就可以看到效果了。

 

在下图中我提供了首页(front page )、一个每种语言有4000 多条目的新闻存档页、一个普通的页面和它的编辑页的性能对比。

 Plone4.0 4.1性能对比图


 

对于做了多个索引查询或查询基于大量内容的页面我们得到了2-4 倍的性能提高。对于一个甚至没有显示导航树的编辑页,改进就少得多。但是仅仅是显示页面顶标签和语言选择就有1.4 倍左右的改进。

 

我在自己主频为3GHz 和内存为8GBiMac 上做的上述测试,数据来自于一个直接的文件存储(file storage )。实际上所有的操作所需数据都来自于内存中的ZODB 缓存或内存中的操作系统磁盘缓存。

 

在真实环境下性能改进将更为明显,当你从数据库中读取更少的对象,减少了通过网络对数据库进行实际的读取和对磁盘进行读取之后。你还可以减少ZODB 缓存的尺寸而不至于降低性能。由此释放出来的内存可以用来添加更多的Zope 实例或者降低运行一个Plone 站点所需的硬件投资。

 

当然对于任何真实生产环境的影响将有很大不同。上述数据不反映任何真实的使用情况,因为在大多数情况下访问者都是从反向代理服务器中读取到缓存的内容,而不是直接从Plone 读取。随着plone.app.caching 被包含进Plone4.1 ,设置更有效的缓存将变得更为容易。

 

在这个领域我们还有很多的改进可做。但是使用 Plone4.1 你将可以不再需要任何定制开发即可轻松运行一个包含几万内容项的站点,当然以集群方式部署所需的管理知识还是必要的。

 

 

-------------------------------------------------------

anzsoft         专业Plone/Zope 技术及服务提供商

Samespace   智能表单+ 工作流 快速业务开发平台

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值