我们在Ubuntu虚拟机(VMWare)上有Drupal 7,在同一物理服务器上有MySQL 5.1服务器,但在不同的虚拟机上。
Drupal网站目前正在开发中,因此几乎没有流量,然而,尽管ping和shell访问速度非常快,Drupal站点的运行速度非常慢(超过5秒来加载任何页面)。经过这里和其他地方的研究后,我了解到问题在于SQL是通过网络接口访问的,Drupal显然做得很糟糕。
我已经检查了DNS解析,应该没有从Drupal端(db主机由ip提供,在/etc/ host文件中有一个dns条目)或从MySQL端(跳名-解析,drupal客户端被ip地址授予访问)。
Drupal说:
在5993.89毫秒内执行336个查询。突出显示超过5ms的查询。页面执行时间为7015.35 ms。使用的内存为:devel_boot()=5.53MB,devel_shutdown()=93.35MB,PHP。
最重要的是,对于单个页面加载来说,大约2/3的查询速度快,而其他查询则非常慢:
1.765 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache_bootstrap WHERE cid IN (:cids_0)
default
575.825 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache_bootstrap WHERE cid IN (:cids_0)
default
13.585 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache_bootstrap WHERE cid IN (:cids_0)
default
466.9914 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache WHERE cid IN (:cids_0)
default
1.841 drupal_lookup_pathP A E
SELECT source FROM url_alias WHERE alias = :alias AND language IN (:language, :language_none) ORDER BY language ASC, pid DESC
default
通过启用Drupal缓存,可以对anon访问进行补救。然而,整个管理界面仍然很慢。
将DB服务器分开是当前公司的策略。还有其他办法来加快Drupal的速度吗?
默认的数据库配置是驱动程序'mysql',也许我应该将其更改为'mysqli‘或'pdo_mysql'?但是,如果我将其更改为mysqli,database.inc会抱怨相关的驱动程序不存在--任何专门为drupal安装的驱动程序,因为mysqli和pdo都是在PHP中启用的。
发布于 2017-11-17 12:22:22
由于这个问题仍然很吸引人的答案,我会自己回答,因为我当时已经解决了。
基本上,当我将Mysql转移到与Drupal相同的vm时,一切都变得非常迅速。因此,问题在于Drupal为每个页面load =糟糕的体系结构发出的大量sql查询。
发布于 2012-05-09 19:59:43
我认为有两个方面你可以优化你的网站:
你查过管理现场绩效在drupal.org吗?
发布于 2012-12-23 00:51:22
我也经历过同样的问题,并使用谷歌Chrome PageSpeed和YSlow来找出我的问题。
基本上,我做了以下这些步骤:
尝试安装PHP,将APC大小设置为256 of (有很多指南)。然后确保KeepAlive为Apache打开,并且也激活Apache压缩(通过Apache mod_deflate)。
https://serverfault.com/questions/387457
复制相似问题