Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 缩放Drupal_Php_Mysql_Performance_Drupal - Fatal编程技术网

Php 缩放Drupal

Php 缩放Drupal,php,mysql,performance,drupal,Php,Mysql,Performance,Drupal,我在一个基于Drupal的网站上工作,注意到有很多单独的CSS和js文件。涉过一些代码,我也可以看到很多情况下使用了很多查询 您尝试了哪些技术来提高Drupal的性能?您使用了哪些模块(如果有的话)来提高Drupal“开箱即用”的性能?Drupal 6,开箱即用,提供css和javascript聚合——大多数css和js文件将合并到一个文件中(以及一个HTTP请求),并且还缩短了空格(以减少带宽消耗)。您可以在/admin/settings/performance下启用此功能 屏幕上还有Drup

我在一个基于Drupal的网站上工作,注意到有很多单独的CSS和js文件。涉过一些代码,我也可以看到很多情况下使用了很多查询


您尝试了哪些技术来提高Drupal的性能?您使用了哪些模块(如果有的话)来提高Drupal“开箱即用”的性能?

Drupal 6,开箱即用,提供css和javascript聚合——大多数css和js文件将合并到一个文件中(以及一个HTTP请求),并且还缩短了空格(以减少带宽消耗)。您可以在/admin/settings/performance下启用此功能

屏幕上还有Drupal(非常有效)缓存的控件,这有助于减少数据库查询的数量


此外,由于Drupal(以及您可能已经安装的所有模块)有大量PHP源代码,因此使用PHP操作码缓存(如)有助于显著减少请求时间。

转到管理/设置/性能页面,打开CSS和JS聚合,页面缓存的最短生存时间为1分钟,将给你一个高流量的网站立即提高。如果您正在编写自己的代码并进行任何查询,请考虑编写自己的离散代码。链接文章介绍的是Drupal 5,而不是6,但d6中唯一的变化是省略了序列化要求以及cache_set()和cache_get()函数的函数签名。(均在对该条的评论中注明)

在大型站点上还考虑将MeMcCache服务器放到网络上:使用该模块,可以完全绕过Drupal数据库缓存数据。如果你有大量的内容和搜索是一个热点,你也可以考虑使用Lucene/SoR作为你的搜索索引器,而不是Drupal的内置搜索索引器。对于内置索引器来说这很好,但它不是为重载设计的(比如说,每小时有数百或数千条新内容,需要大量的分面搜索)。该模块可以与之配合

如果大量使用视图,请确保已检查它为未索引字段生成的查询;特别是按CCK字段排序和筛选可能会很慢,因为CCK不会自动在主键之外添加索引。在D6中,在管理屏幕中预览视图,复制查询文本,并通过mysql中的EXPLAIN或任何查询分析工具运行它


像YSlow和Firebug这样的工具也可以帮助你发现诸如海量图像文件、远程服务器上托管的JS等缓慢的东西。

我强烈支持Benedict对Boost模块的建议-如果配置正确,它本身就可以让你的网站在共享托管上运行,而且根本没有问题

打开CSS/JS聚合,打开Boost,您的站点可以为匿名用户提供良好的性能

如果你的网站主要处理登录的用户,你必须做更多的工作,确保会话被缓存,并且可能考虑使用Mycache和更多SQL查询缓存。


最大的性能提升总是来自缓存,但是监视和调整慢速查询、监视和调整apache和PHP配置,以及对所使用的模块保持智能也是非常重要的。

除了drupal默认缓存之外,还有其他一些方法可以提高性能

升压模块是最好的模块之一。
memcache、Varnish(Drupal 7/Pressflow)、CDN是另一种可以提高性能的方法

同样值得一提的是,使用优质SSD存储可以提高性能。在迁移到SSD时,它始终将我的初始响应负载时间缩短了30%或更多(在我的上一个项目中,我使用相同的Apache/Memcache/Cloudfront EC2配置,从约450ms缩短到约250ms),更不用说管理snappy服务器会有多好,因为您对它发出的每个命令或脚本几乎都是即时的。我再也不会回去了。

我还想补充一点关于如何设置块缓存的内容,它允许您缓存内容,即使是注册用户,因为页面缓存只会影响匿名的页面缓存。我正在我的网站上编写一份Drupal性能白皮书——只是提供了一个很好的方法来全面提高网站性能: