2011-01-30 44 views
3

我安装了Drupal常见的来自acquia并将其用于我的大学内联网网站。我将它配置在运行最新XAMPP的Ubuntu lucid lynx桌面版上。我想提高网站的性能。我的数据库服务器和网络服务器在同一台机器上。通过PHP优化Drupal Apache和Mysql优化

任何一个可以建议methos加大对以下点

  1. 的表现应该是什么理想的硬件配置
  2. 我应该在PHP中更改哪些参数来运行它以获得最佳性能?
  3. 如何优化Apache和My SQL以获得最佳性能?
  4. 有没有在drupal中调整可以使它更快?
  5. 是否有任何额外的缓存等包可以提高速度?
+0

你是否询问有关改善桌面计算机上的性能还是通过提高服务器上的生产环境中的性能? – cjm2671 2011-01-30 13:37:22

+0

在我的服务器上,但实际上我们正在本地Intranet上设置它,所以我希望它可以快速访问 – 2011-01-30 17:49:28

回答

2

您提出的问题非常广泛,因此很难在答案中给出具体的答案。在性能调整上,一个好地方是drupal's own handbook

如果您的网站主要服务于匿名用户,我也强烈建议您使用boost module,因为这样可以使请求不会转到drupal并完全由静态缓存提供服务。

3
  1. 不是特定于Drupal,而是每个PHP设置。更一般:每个网络应用程序。我建议你从O'Reilly's Building Scalable Websites开始。
  2. 见上。对于Drupal,请注意内存限制;许多人只是夸大其价值;逻辑后:Drupal需要更多的38MB,我会给它250MB,以保证安全。
  3. 再次参见上文。对于Drupal,请特别注意查询的金额。如果您只关注慢速查询,那么您可能会错过每次请求敲击数据库100次以上的单一细小查询。
  4. 很多。我的建议是开始寻找pressflow,一个优化的Drupal。它有你正在寻找的所有内容。还有更多。
  5. 是的。很多,但是从memcached开始。如果你依赖搜索了很多,考虑移动搜索SOLR search.

还有更多的技巧对于初学者可以在Drupal performance Blog

4

也可发现,尝试光油如果你使用PressFlow,通过贝尔克斯的建议。如果您必须为匿名用户提供内容,它会有很大的帮助。

清漆可以在内存中缓存Drupal生成的所有内容,减少对您的Web服务器和数据库的访问量。

这里一个很好的起点与Pressflow配置光油:

https://wiki.fourkitchens.com/display/PF/Configure+Varnish+for+Pressflow

谷歌一些更多的细节。

不要忘记非Drupal相关优化,如减少http请求数量,提供来自不同域的网页元素以减少浏览器流水线等。使用YSlow并遵循雅虎的优秀规则。 Google针对“雅虎加速您的网站的最佳实践”(由于新用户的限制,不能包含链接)。

1

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

使用此选项可以确定您网站上的哪些页面速度较慢。

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

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

0

Pro Drupal 7 Development有一整段关于微调称为“优化Drupal”。
我想你会发现它很有趣。它还讨论了您感兴趣的硬件架构。

关于第四个问题,您可以开始检查升压模块并禁用不使用的模块。 此外,为了改进页面性能,您可以从配置 - >性能启用页面缓存。在同一页面中,您可以使用聚合和压缩CSS(JS)文件“,这样可以减少每页HTTP请求的数量和下载页面的总体大小。是设置。未运行的cron可以填补了日志,陈旧的缓存和其他“垃圾”的分贝。

最后一个建议是你的数据库从的MyISAM转换为InnoDB的,但我认为这需要一些调查因为InnoDB速度并不总是这样,使用InnoDb可以减少表锁的时间损失,而MyISAM在表读数方面速度更快。