Drupal网站自然会慢吗?

时间:2013-11-06 08:39:36

标签: drupal

我对Drupal几乎一无所知,但我确实有一个问题。我们有一个用直接HTML和PHP编写的站点,它在1-2秒内加载主页面并向服务器发出25个请求以获取所需的数据。一个新的Drupal版本的网站需要5-6秒来加载主页面,这不比旧页面复杂,并向服务器发出127个请求(我正在观看Firebug NET)以获取所需的数据。

这是典型的吗?

感谢。

3 个答案:

答案 0 :(得分:4)

对于Drupal或大多数大型PHP应用程序框架来说,性能上升3倍自然。 Bootstraping Drupal是一项代价高昂的操作,因为它需要加载大量文件。众所周知,Drupal执行过多的数据库查询以生成单个页面。

第一步是启用页面缓存和JS / CSS聚合。这可以从 Administration>>的管理页面完成。配置>>性能(在Drupal 7中)。

但轻量级PHP站点上的1-2秒加载时间表示主机过载或调整不当。您应该确保您的站点在最近的PHP版本中运行(每个版本的PHP越来越快)。同时启用APC(或任何其他opcache),即使使用默认设置,它也可以大大提高Drupal的性能。使用APC,尝试增加共享内存大小(例如,php.ini中的apc.shm_size = 64)。

您还应该尝试对网站进行分析,以确定实际的瓶颈。随着Drupal每页发出多个请求,数据库很快成为瓶颈。 Drupal支持使用多个 slave 服务器进行读取查询。

关于数据库,Drupal使用内部缓存,默认情况下存储在数据库中。所以这个缓存不能很好地处理重载数据库。 Drupal的缓存是可插拔的。它可以配置为使用memcacheredismongodb进行存储。这可以大大减少数据库的负担。

答案 1 :(得分:2)

是的drupal很慢。 这就是为什么我们使用缓存mecahnisms如果你的页面提出太多请求

  • 看看你是否可以聚合你的CSS和JS(这将减少数量 HTML调用。你可以从管理员那里做到这一点)
  • 使用CDN
  • 使用memcache或varnish cache
  • 在apache中使用页面缓存。

注意:-please提供一些实际数据与一些负载测试工具分开

答案 2 :(得分:1)

向服务器发送了多少请求?它也很重要,但drupal有解决方案。 Drupal将所有css文件合并到一个文件中以使服务器调用较低,对于js文件也是如此。

但速度对服务器端代码,数据库操作也很重要。 Drupal是一个功能强大的系统,它使复杂的事情变得容易(并且简单易事)并提供这样的功能,以便用户可以在没有编码线的情况下创建完整的门户。但所有这些功能都来自性能成本。内部drupal做了很多操作,它使它变慢。

这些操作包括视图和块操作,视图/块/表单越复杂,操作就越多,因此需要更多时间。

此外,如果网站内容增加,那么它将变得更慢。因为drupal将每个内容都视为一个节点,并且对于所有内容类型(例如新闻,cms页面,推荐等),数据都存储在单个节点表中(还使用了一些其他表,但主要内容是存储在节点表中)。因此,当内容增加时,单个表上的负载会增加,这会导致数据库操作变慢,因为表大小越大,操作时间就越长。

我可能错了,但Drupal很慢:P