我对Drupal几乎一无所知,但我确实有一个问题。我们有一个用直接HTML和PHP编写的站点,它在1-2秒内加载主页面并向服务器发出25个请求以获取所需的数据。一个新的Drupal版本的网站需要5-6秒来加载主页面,这不比旧页面复杂,并向服务器发出127个请求(我正在观看Firebug NET)以获取所需的数据。
这是典型的吗?
感谢。
答案 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的缓存是可插拔的。它可以配置为使用memcache,redis或mongodb进行存储。这可以大大减少数据库的负担。
答案 1 :(得分:2)
是的drupal很慢。 这就是为什么我们使用缓存mecahnisms如果你的页面提出太多请求
注意:-please提供一些实际数据与一些负载测试工具分开
答案 2 :(得分:1)
向服务器发送了多少请求?它也很重要,但drupal有解决方案。 Drupal将所有css文件合并到一个文件中以使服务器调用较低,对于js文件也是如此。
但速度对服务器端代码,数据库操作也很重要。 Drupal是一个功能强大的系统,它使复杂的事情变得容易(并且简单易事)并提供这样的功能,以便用户可以在没有编码线的情况下创建完整的门户。但所有这些功能都来自性能成本。内部drupal做了很多操作,它使它变慢。
这些操作包括视图和块操作,视图/块/表单越复杂,操作就越多,因此需要更多时间。
此外,如果网站内容增加,那么它将变得更慢。因为drupal将每个内容都视为一个节点,并且对于所有内容类型(例如新闻,cms页面,推荐等),数据都存储在单个节点表中(还使用了一些其他表,但主要内容是存储在节点表中)。因此,当内容增加时,单个表上的负载会增加,这会导致数据库操作变慢,因为表大小越大,操作时间就越长。
我可能错了,但Drupal很慢:P