欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

DRUPAL 运行缓慢的原因

shiping1 的头像

不止一次听人抱怨DRUPAL 慢,在本地开发环境尤为常见,较为常见的原因有:~ ( 关闭db log  / watch dog 吧.... 鸡肋)

本地环境造成慢的原因,最常见的是由update manager  造成的,如果你发现你开的DRUPAL 页面 一直在等待响应,一般都是它造成的,其实根源在于国内网络因为你知我知的原因,访问国外网站常不稳定,而update manager不断在后台检查更新,遇到网络问题的时候就卡住,影响网页本身的加载速度。在模块列表那里禁用update manager 即可。

第二个慢的原因是,toolbar ,就是管理工具条,有时候这个东西的ajax 加载很慢导致网页变慢。在模块列表那里禁用即可。

第三个慢的原因是,php.ini 中的memory_limit  设置太少,一般默认设置大小为32M。当你装很多模块的时候,就会慢,特别是在后台的时候尤为常见(比如区块列表页,模块列表页),且最常见的症状就是白屏。建议这个最少放200M。

说实在的,如果不用PHP 缓存的话,DRUPAL 还是很慢的,不太强的服务器,(用iwebtool 测试)4-6秒的执行时间都可能,但是一般独立服务器或者VPS装了php 缓存 插件,比如apc,xcache 之类都能得到极显著的提升。如果配合fastcgi 就更爽了(一般内存少的VPS 就不要装fastcgi了,国外的共享空间则默认开fastcgi的。笔者的服务器nginx+fastcgi+apc+drupal 自带的缓存,一般的文章页面用iwebtool 测试都不超过0.5秒)。所以自己装的环境还是要装个php 缓存插件,推荐apc,简单高效且DRUPAL 社区有APC 模块可以实现更细的优化。( 一般国外买的共享空间都已经装有相应的php 缓存插件了的)。

在线测量网站执行速度的工具 :http://www.iwebtool.com/speed_test(link is external)

Drupal 版本: 

猜你喜欢

最近Drupal中国群里也经常会说Drupal很慢的问题,月亮的这篇分享很实用,希望能有更多的文章分享给大家!谢谢

Drupal China http://drupalchina.cn

我的vps内存不到200M,开的lnmp + zend optimizer,跑的速度不错。

好文章!

收藏

drupal7

其实,一点也没有讲到drupal慢的核心问题,现在的启动,加上apc,xcache 之类能达到0.2左右,前提是不装什么模。它启动的时间就挺长的。真正提速应分析里面的函数,从那里进行优化。

言域有研究更深入一些的吗,不妨分享一下!

Drupal China http://drupalchina.cn

如何禁用update manager和toolbar

直接在模块中取消选着不就OK了吗?

 模块装的越多越慢,如果不装模块就没有什么意思了。难道官方没有解决办法了吗?


来自 http://drupalchina.cn/node/1860

Drupal运行一段时候后好慢,有什么办法吗?

网站的有些页面加载很慢,点击form提交的时候也常常load半天有时都超时了。

大概的数据量也不大,也就不到1万个node节点,不知道为什么这么慢。

 

很多页面第一次特别慢,第二次就好了,很奇怪。

请问有什么解决办法吗?

  • 其实我也同问,我的系统也都有这个问题,在安装PHPAPC和MEMCACHE后问题稍有改善,但依然第一次访问时很慢,这里的第一次不是只某个人访问的头一次,是系统隔一段时间后,没有人访问就会出现慢的情况,做个比喻就像系统自动关机了,突然访问先开机,然后再响应,所以特别慢,但后续访问就飞快。差别非常大,第一次,要50秒,后续只要0.5秒,也在摸索中,我自己的理解是我的服务器是虚拟机,可能存在这类问题。但没有验证

    2014-07-11
  • 可能是缓存过期的问题,Drupal自带的缓存系统,或者APC缓存过期。

    2014-07-11
  • 赵老师,好的,我再留意观察一下

    2014-07-11
updown

Drupal消耗的资源比较多,你把PHP.ini里面的内存设置,开的大一点。
此外,像Entity API ,Commerce这样的模块,非常耗费内存的,要注意。

 
updown

1. 开启缓存,比如memcache等
2. 排除一下有没有需要联网的服务,比如在打开页面的时候要加载某个外部资源、加载GA、ApacheSolr的mlt区块(但是solr没打开),这一点比较重要。
3. 就是清空一些不用的数据,比如访问日志等等。
4. 就是禁用某些模块,一个一个试,看看那么个模块禁用后,有效果。

 
updown

如果不是全局都慢,而是某些页面慢,可能某些页面逻辑有问题,可以借助XHProf等工具诊断一下。如果是个别代码引起的性能问题,可以从XHProf日志很容易的看出来。

 

当然,听你的描述更像是缓存过期引起的,这种情况对Drupal来说不可避免,所以你可以考虑两个方向,一个是清缓存不要全清,只清必要的缓存,另一个方向是在用户访问之前重建缓存,也就是我们常说的Cache Warmer,可以试试这个模块:http://www.drupalproject.org ...

 

后来跟朋友讨论,如果你的是Drupal7的话,有可能是因为开启了页面触发cron的机制,使得一些页面缓存持续过期。

 

 
updown

按照上面说的,先清除缓存看是不是还慢,如果还慢,那

 

关闭db log  / watch dog 吧.... 鸡肋..

看下 node 表数量 ,这个表是drupal  基础表,关于内容的查询几乎都要走这个表, 而且drupal还是无数个关联查询 不慢才怪了.....

看下 user 表吧, 很多机器人注册的用户,把这个表搞爆了..

开启慢查询日志吧, 观察哪些SQL查询慢 然后想办法优化...

增加MySQL的查询缓存吧 索引缓存.... 

重新建立MySQL 索引吧...

top 命令看下 机器的负载和进程,看有没有僵尸进程, 特别耗计算的进程在运行,可能也有阻塞进程

netstat 看看你的网络链接 是不是被撑爆了... 

你也要看看apache 进程数啊,太大了 你就要排队等待,当然会慢 然后尝试把apache最大客户链接数增大点

最后 哎 增加硬件配置吧 一个小毛驴拖不动10吨煤的 不要太小气...

 

 

 
updown

我的服务器也有这个问题,感觉不是drupal的问题。是服务器的问题,比如Apache或nginx。

 


来自http://drupal001.net/question/504

普通分类: