我在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秒
现在我不知道为什么网站运行这么慢
请欢迎任何建议
答案 0 :(得分:9)
每个请求的400个查询是一个完整的(但甚至是50 +)。
你应该实现一些html cacher。我的网站通常甚至不做数据库连接。它只是触发缓存在文件中的html。
答案 1 :(得分:6)
需要考虑的其他一些事项:
安装像Yslow / PageSpeed这样的工具,看看这些10-15中有多少是客户端和服务器时间。
与Devel一起安装XhProf(在开发站点上,不在线)以查看哪些功能占用时间最多。先看看这些。编辑,现在使用链接:http://groups.drupal.org/node/82889
使用pressflow 可能有所帮助,但由于你使用的是路径补丁,可能没那么多。
您提到您安装了memcache。您是否还安装了memcache模块并配置缓存插件以使用memcache?
编辑:是的,切换到InnoDB可以提供帮助。 InnoDB的主要性能优势之一是行级锁定(与MyISAM的表级锁定相反),这意味着除非确实需要,否则针对同一个表的多个INSERT / UPDATE查询不会相互阻塞。但是,InnoDB在开箱即用方面表现不佳,你真的需要微调你的特定站点的mysql配置。因此,在开发站点上进行测试和优化之后,您应该仔细考虑这一步骤。关于InnoDB调整,本网站和其他地方已经存在各种问题......
除此之外的任何内容都是特定于站点的,取决于您使用的模块。但特别是复杂的node_access设置和多种语言(i18n!)往往导致查询速度慢和/或很多。
答案 2 :(得分:1)
并非所有模块都使用您可以在性能设置区域中打开的缓存机制。值得尝试确定哪些人正在进行最多/最慢的查询,并试图让开发人员改进它们。
或者,检查您是否可以使用更少的模块来实现。有些模块在功能上有些重叠,因此您可以重新组织网站的功能。
此外,您需要查看您的设置MySQL是否允许执行这些查询的足够内存。大多数MySQL发行版都附带了my.ini的不同版本标记为' small',' medium',' huge'等。复制'巨大的'一个到my.ini(先备份旧的)并重新启动数据库以查看最大化所有高速缓存大小是否有所不同。你可能在那里有一个瓶颈,但很难找出导致它的设置。
PHP同样如此。将php.ini中的memory_limit设置为500MB或其他东西,看看是否有帮助。当然,根据您的托管安排,您可能无法做到这一点,但如果可以的话,它将消除一个可能的原因(或不会)。
答案 3 :(得分:0)
您的Drupal网站的性能还取决于您的托管平台针对Drupal的调整情况。 Drupal需要对LAMP堆栈组件进行特殊优化。您可以尝试特定于Drupal的托管公司http://www.drupalspecific.com,以使您的网站运行得更快。
答案 4 :(得分:0)
自己面对drupal慢度问题。但与其他人提到的问题截然不同。
我禁用了特定内容类型的drupal页面的drupal标题的所有内容。
这个页面加载的时间仍然超过20秒!
我接受了YSlow和NET firebug面板的帮助。
看着他们,注意到:
单独包含JS和CSS文件需要3到2秒,并且会发生相当多的内容,因此需要20秒。
但是我无法弄清楚,为什么js和css包含这么多时间。 (这包括正常的drupal核心js和css文件)