为什么drupal慢?

kar*_*ran 8 php drupal drupal-6 drupal-7 drupal-modules

我在drupal上制作了网站

我的网站有7500个用户和大约(20到50没有登录)(2到10个登录)用户在线(我认为这不是繁重的流量)

该站点位于专用服务器上.我已经启用了drupal admin的性能设置,还安装了memcache和eaccelerator

我查看了使用devel模块的查询日志.它在每页上总共发出600到900个查询

当我安装了path.inc补丁来减少查询drupal_look_path().它将查询减少到大约400个

我也在mysql(my.cnf)文件中做了一些积极的改动,但仍有许多相同的查询user_load()一次又一次地运行表单函数

我启用了60到70个模块,所有模块都使用完整.我无法删除模块

该网站仍然运行缓慢,大约需要10到15秒

现在我不知道为什么网站运行这么慢

  • 是因为drupal有大的PHP代码?
  • 是因为它在每个页面上触发了这么多查询吗?
  • InnoDB引擎是否提高了性能?

请提出任何建议

dyn*_*mic 9

每个请求的400个查询是一个完整的(但甚至超过50个).

你应该实现一些html cacher.我的网站通常甚至不做数据库连接.它只是触发缓存在文件中的html.

  • 好吧,我们在这里谈论drupal,可能有很多贡献的模块.使用具有许多模块的大型CMS的一个缺点是代码库的各个部分可能无法很好地协同工作并多次重新加载相同的信息.此外,静态html缓存不适用于经过身份验证的用户,但肯定是提高匿名用户性能的一种方法. (4认同)
  • 在Drupal中解决这个问题不是一个小问题.因为ajax请求不会有帮助,所以它们也可能很慢(它们在Drupal中执行正常的页面引导,因此许多查询也可能被执行). (3认同)

Ber*_*dir 6

还需要了解一些其他内容:

  • 安装像Yslow/PageSpeed这样的工具,看看这些10-15中有多少是客户端和服务器时间.

  • 与Devel一起安装XhProf(在开发站点上,不在线)以查看哪些功能占用时间最多.先看看这些.编辑,现在链接:http://groups.drupal.org/node/82889

  • 使用pressflow 可能会有所帮助,但是因为你使用path.inc补丁,所以可能没那么多.

  • 你提到你安装了memcache.您是否还安装了memcache模块并配置缓存插件以使用memcache?

  • 编辑:是的,切换到InnoDB可以提供帮助.InnoDB的主要性能优势之一是行级锁定(与MyISAM的表级锁定相反),这意味着除非确实需要,否则针对同一个表的多个INSERT/UPDATE查询不会相互阻塞.但是,InnoDB在开箱即用方面表现不佳,你真的需要微调你的特定站点的mysql配置.因此,在开发站点上进行测试和优化之后,您应该仔细考虑这一步骤.关于InnoDB调整,本网站和其他地方已经存在各种问题......

除此之外的任何其他内容都是特定于站点的,取决于您使用的模块.但特别是复杂的node_access设置和多种语言(i18n!)之类的东西往往会导致查询速度慢和/或很多.