通过PHP Apache和Mysql优化来优化Drupal

3

我从Acquia安装了Drupal common,并将其用于我的大学内部网站。我在运行最新的XAMPP的Ubuntu Lucid Lynx桌面版上进行了配置。我想提高网站的性能。我的数据库服务器和Web服务器在同一台机器上。

有人可以建议以下几点来提高性能:

  1. 理想的硬件配置是什么?
  2. 应该更改哪些PHP参数以获得最佳性能?
  3. 如何优化Apache和MySQL以获得最佳性能?
  4. 是否有Drupal中的调整可以使其更快?
  5. 是否有任何其他缓存等软件包可以提高速度?

你是在问如何提高桌面电脑的性能,还是在服务器生产环境中提高性能? - cjm2671
在我的服务器上,但实际上我们正在设置它在本地局域网上,所以我希望它能够快速访问。 - Pranay Airan
5个回答

4
如果您正在使用PressFlow,可以像berkes建议的那样尝试使用Varnish。它可以缓存Drupal生成的所有内容,从而减少对Web服务器和数据库的访问。以下是使用Pressflow配置Varnish的好的起点:https://wiki.fourkitchens.com/display/PF/Configure+Varnish+for+Pressflow。您可以通过谷歌搜索了解更多细节。此外,不要忘记进行与Drupal无关的优化,例如减少http请求的数量,从不同的域名提供Web页面元素以减少浏览器流水线等。使用YSlow并遵循Yahoo的优秀规则。可以通过谷歌搜索“Yahoo加速网站的最佳实践”(由于SO对新用户有限制,因此无法包含链接)。

如果您正在使用Drupal 6,那么Pressflow + Varnish是一个非常好的选择。它可以为您提供惊人的性能提升,并且非常容易设置:http://www.mormanski.net/2010/08/14/install-configure-varnish-on-ubuntu-lucid-linux - qliq

3
  1. 这不是针对Drupal的,而是针对每个PHP设置的。更一般地说,适用于每个Web应用程序。我建议您从O'Reilly's Building Scalable Websites开始。
  2. 请参见上文。对于Drupal,请注意内存限制;许多人只是将其增加到荒谬的值;在逻辑之后:Drupal需要超过38MB,我会给它250MB,以确保安全。
  3. 同样,请参见上文。对于Drupal,请特别关注查询的数量。如果您只关注慢查询,则可能会错过每个请求中100多次访问您的DB的单个微小查询。
  4. 很多。我的建议是开始查看pressflow,这是一个优化的Drupal版本。它已经内置了您正在寻找的所有调整。还有更多。
  5. 是的。有很多,但是可以从memcached开始。如果您非常依赖搜索,请考虑将搜索移至SOLR搜索

许多适用于初学者的提示可以在Drupal性能博客中找到。


2
您的问题非常广泛,因此很难在回答中给出具体信息。一个好的起点是阅读Drupal自己的手册关于性能调优的部分。
如果您的网站主要为匿名用户提供服务,我也强烈推荐使用Boost模块,因为这可以使请求不必进入Drupal,而完全从静态缓存中提供服务。

1

Drupal的Devel模块有一个性能模块,可以记录内存使用和访问时间到您网站的报告部分。

使用它来确定您网站上哪些页面较慢。

加载xdebug(一个PHP扩展)并打开分析功能。请求您的性能密集型页面,它将创建(非常大的)整个请求的转储。在像KCacheGrind或WinCacheGrind这样的程序中打开缓存文件,您将能够看到Drupal在构建页面时进行的每个函数调用。从这里,您可以看到哪些部分最慢并对其进行优化。

如果您的网站速度较慢,这应该可以使您的性能提高30-80%。根据我的经验,通常有一些块或视图占任何性能问题的很大一部分。


0

Pro Drupal 7 Development有一个关于微调的整个部分,称为“优化Drupal”。我认为你会发现它非常有趣。它还讨论了硬件架构,这是你感兴趣的。

关于第四个问题,你可以首先查看boost模块并禁用你不使用的模块。此外,为了提高页面性能,你可以从配置 -> 性能启用页面缓存。在同一页中,你可以使用聚合和压缩CSS(JS)文件到一个文件中,以此减少每页的HTTP请求次数和下载页面的总大小。你还应该考虑是否设置了Cron。不运行cron可能会使数据库填满日志、过期缓存和其他“垃圾”。

最后一个建议是将你的数据库从MyIsam转换为InnoDB,但我认为这需要一些调查,因为InnoDB并不总是更快的。使用InnoDb时,表锁定的时间较短,而MyISAM在表读取方面更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接