Drupal网站加速的技巧

7
我们刚刚实现了一个Drupal网站。网站的性能似乎是一个问题。我们启用了Drupal缓存,并设置了Apache缓存衍生物。重复访问页面足够快(因为CSS和JS被缓存),但是初始页面访问仍然是一个问题。
Drupal专家,您能否给我们提供一些指针,介绍不同的技术,以加速Drupal网站(例如DOs和DONOTs)。还有其他的易于实现的方法吗?
(顺便说一下,数据库在这里不是一个问题。那一层已经足够快。问题似乎在于PHP/Drupal层)

这个问题似乎不属于范畴,因为它涉及Drupal管理而非编程。 - user1228
8个回答

5
你是否使用过像YSlow或Firebug这样的工具来确定页面加载中实际上占用了大部分时间的部分?此外,考虑使用Devel模块的查询监视器来确定运行查询所需的时间与执行PHP代码所需的时间之间的差异。
正如其他人指出的那样,像APC这样的opcode缓存可以产生显着影响。然而,再次访问该网站速度更快的事实暗示了与次要文件(图像、JS、调用远程站点的外部JS等)有关的问题。

我赞同这条建议。Y!Slow会指出许多问题。 - Randy Burgess
@wrburgess 但是你必须对YSlow的意见持保留态度 - 它是为了评估每秒处理数十亿个请求的页面而编写的。 - Sean McSomething
1
确实。关于YSlow评估的最佳提示涉及图像/ css / js文件的数量; Firebug对每个文件(本地和远程)加载所需时间的详细分解非常有帮助,在大多数情况下更加有用。 - Eaton

4
你提到CSS/JS很慢-你是否在/admin/settings/performance中打开了CSS和JS的“带宽优化”? 它将所有CSS(或JS)捆绑到一个文件中-如果您有大量单独的文件,则可以产生相当大的差异(延迟是致命的)。
使用opcode缓存,例如APC,对页面性能也会产生很大影响,特别是一旦您开始添加模块。 我无法想象在没有使用它的情况下开发PHP。

4
你有网站的URL吗?
以下是几个快速提示:
  1. 使用YSlow
  2. 使用tools.pingdom.com查看是否有明显的缓慢
  3. 使用YUI压缩器压缩js和css
  4. 只在必要时使用cookies
  5. 使用APC/Xcache
  6. 调整PHP参数
  7. 使用单独的服务器处理静态内容。使用nginx
  8. 使用Varnish进行缓存
希望对你有所帮助。

3
我写了一篇关于Drupal中页面加载性能的文章。您可以在那里找到几乎所有关于该主题需要了解的参考。正如其他人已经指出的那样,您一定应该安装一个像eAccelerator或APC这样的opcode缓存。它们易于设置并为您提供免费的性能提升!

1
我找到了一些加速Drupal的方法。我使用的是Godaddy,它比已经很慢的系统还要慢,但这帮助我发现了一些问题。此外,我使用的Commerce Kickstart甚至比Drupal 7还要慢。
Drupal有点慢,所以尽可能快地使这些东西运行是必要的。
  1. 您需要一个快速的数据库连接(没有缓慢的网络数据库连接)。

  2. 您可以在php.ini/.user.ini中修改一些配置设置。(请参见下面的链接)

  3. 如果Drupal托管在托管公司,则需要选择响应时间最快的托管公司。(请参见下面的链接)

  4. 启用Drupal缓存。

  5. 不要启用超过50个模块。

  6. 如果您正在使用MySQL,请使用查询缓存。

之后,与性能有关的很多内容都是程序化的。如果您想查看另一个随着规模增长而增长的数据库问题,请查看Drupal 7如何分解Profile实体,这意味着Drupal 7可能永远无法扩展。您可能需要自己编写模块来加速核心中已经很慢的部分。也许Drupal 8会解决其中的一些问题。

你能否在这个答案中加入一些细节,而不仅仅是链接到外部资源? - Jordan Kasper
这个外部资源是我在使用Drupal 7和Drupal Commerce Kickstart时遇到问题时编写的。链接中提到的内容帮助我加快了网站速度,但我花了几天时间和测试了几家托管公司才找到解决方法。这可能节省您的时间,但不一定。如果您想了解我的经验,就看看吧。 - JTHouseCat
不是要刻意挑毛病,我看了一下链接,认为它对原帖作者可能有用。我的观点只是作为你的第一个回答,我想确定StackOverflow在回答方面需要什么。你可以在帮助部分中找到一些好的提示,但关键是,虽然外部资源很棒,但通常我们更喜欢在答案中引用外部内容的“精华”。再次强调,不是要冒犯,只是提供建议。 - Jordan Kasper
理解。我会在评论中尽可能添加更多内容。 - JTHouseCat
谢谢!我敢打赌,如果你编辑一下这篇文章,加入那篇帖子的一些细节,它就会得到点赞。 ;) - Jordan Kasper

0

如果您确定数据库不是瓶颈,那么问题可能出在执行时间或服务器响应上。

您是否使用任何类型的PHP操作码缓存?

还要检查您的Apache配置。它只在并发使用下表现缓慢,还是即使只有一个访问者也很慢?

Drupal网站上还有一个页面介绍了一些常见步骤:服务器调整注意事项

当然,您可以忽略与数据库相关的步骤。


0

我最近推出了一个Drupal网站,它运行得非常快。根据Y!Slow的说法,最大的瓶颈是我们添加的ShareThis应用程序。此外,Google Analytics的外部下载也会增加一些时间。

另外,请确保关闭所有开发人员模块(它们可能会增加jscript和样式开销),在测试时不要以管理员身份登录,并使用一个没有太多附加组件(如Chrome)的浏览器,以免其在旁边进行处理。


0

尝试安装 apc - http://il.php.net/apc 或者 eccelerator - http://eaccelerator.net/

两者都可以提高 PHP 的运行性能。在一些我测试的网站上,加载首页所需的时间从大约 750 毫秒减少到了约 300 毫秒。

我对在 Windows 上使用 PHP/MySQL/Drupal 有不好的经验,很难找到可靠的 LAMP 设置。所以我建议远离基于 Windows 的系统。

这不是一个 stackoverflow.com 上的回答...但该网站目前还不可用 :)


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