【问题标题】:Optimizing Drupal via PHP Apache and Mysql optimization通过 PHP Apache 和 Mysql 优化优化 Drupal
【发布时间】:2011-01-30 08:58:01
【问题描述】:

我从 acquia 安装了 Drupal common,并将其用于我的大学 Intranet 网站。我在运行最新 XAMPP 的 Ubuntu lucid lynx 桌面版上配置了它。我想提高网站的性能。我的数据库服务器和网络服务器在同一台机器上。

任何人都可以提出方法来提高以下几点的性能

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

【问题讨论】:

  • 您问的是提高台式机性能还是提高服务器生产环境的性能?
  • 在我的服务器上,但实际上我们是在本地 Intranet 上设置它,所以我希望它可以快速访问

标签: php mysql drupal optimization apache2


【解决方案1】:

另外,如果您使用的是 PressFlow,请尝试 Varnish,正如 berkes 所建议的那样。如果您必须为匿名用户提供内容,这会很有帮助。

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

这里是使用 Pressflow 配置 Varnish 的一个很好的起点:

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

谷歌搜索更多细节。

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

【讨论】:

  • +1 用于 Pressflow + Varnish,特别是如果您使用 Drupal 6。它可以为您提供惊人的提升并且非常易于设置:mormanski.net/2010/08/14/…
【解决方案2】:
  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找到

【讨论】:

    【解决方案3】:

    您提出的问题非常广泛,因此很难给出任何具体的答案。一个好的起点是drupal's own handbook 进行性能调整。

    如果您的网站主要服务于匿名用户,我也强烈推荐 boost module,因为这允许请求甚至不进入 drupal 并完全由静态缓存提供服务。

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

        【解决方案5】:

        Pro Drupal 7 Development 有一个关于微调的完整部分,称为“优化 drupal”。
        我想你会觉得这很有趣。它还讨论了您感兴趣的硬件架构。

        关于第 4 个问题,您可以开始检查 boost 模块并禁用您不使用的模块。 此外,为了提高 page-performance,您可以从 Configuration -> Performance 启用页面缓存。在同一页面中,您可以使用聚合并将 CSS(JS) 文件压缩为一个”,这样可以减少每页的 HTTP 请求数和下载页面的整体大小。 您还应该考虑是否设置了 CRON。不运行 cron 可能会用日志、过时的缓存和其他“垃圾”填满数据库。

        最后一个建议是将您的数据库从 MyIsam 转换为 InnoDB,但我认为这需要进行一些调查,因为 InnoDB 并不总是更快。使用 InnoDb,表锁定所损失的时间更少,而 MyISAM 读取表的速度更快。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-23
          • 2012-06-29
          相关资源
          最近更新 更多