我正在基于Drupal的网站上工作,并注意到有很多单独的CSS和js文件.虽然涉及到一些代码,但我也可以看到很多使用了很多查询的情况.
您尝试了哪些技术来提高Drupal的性能以及您使用哪些模块(如果有的话)来提高Drupal的"开箱即用"性能?
转到admin/settings/performance页面,打开CSS和JS聚合,以及最短1分钟的页面缓存,可以立即提升高流量站点的速度.如果您正在编写自己的代码并进行任何查询,请考虑为昂贵的函数编写自己的离散缓存.链接的文章涵盖了Drupal 5,而不是6,但d6中唯一的变化是序列化要求的消除以及cache_set()和cache_get()函数的函数签名.(两者都在对该文章的评论中指出)
在大型站点上还考虑将memcached服务器放到网络上:使用memcached模块,您可以完全绕过drupal数据库以获取缓存数据.如果您有大量内容并且搜索是热点,您还可以考虑使用lucene/solr作为搜索索引器而不是drupal的内置搜索索引器.这对于内置索引器来说很不错,但它并不是为重负载而设计的(例如,每小时有数百或数千个新内容,需要进行大量的分段搜索).在Apache Solr实现模块可以与配合英寸
如果您正在大量使用视图,请确保已检查为未编制索引的字段生成的查询; 特别是CCK字段的排序和过滤可能很慢,因为CCK不会自动添加主键之外的索引.在D6中,在管理界面中预览视图,复制查询文本,并通过mysql中的EXPLAIN或您拥有的任何查询分析工具运行它.
像YSlow和Firebug这样的工具也可以帮助你发现缓慢的东西,比如大量的图像文件,托管在远程服务器上的JS等等.
Drupal 6,开箱即用,提供css和javascript聚合---大多数css和js文件将合并为一个文件(因而是单个HTTP请求),并且还缩短了空白(以减少带宽)消费).您可以在/ admin/settings/performance下启用此功能.
此屏幕上还有Drupal(非常有效)缓存的控件,这有助于减少数据库查询的数量.
此外,由于Drupal(以及您可能安装的所有模块)都有大量的PHP源代码,因此使用APC等PHP操作码缓存有助于显着缩短请求时间.