【发布时间】:2013-02-26 15:32:32
【问题描述】:
我已经开始将我们的很多开发环境迁移到 Vagrant。到目前为止,这对几乎所有事情都很好,但是我们的第一个 Drupal 迁移无法使用。它慢得令人难以置信。我们的 Wordpress、CakePHP 和 Node.js 站点的性能都非常好或更好,但 Drupal 则不然。这种想法只是糟糕。
盒子是 Veewee 创建的 Ubuntu 12.04 64 位机器。它与我们用于所有基于 Web 的项目的基本盒子相同,因此没有什么独特之处。在我的站点目录中,我有一个包含所有站点资源的规范目录 (sites/my-site/) 和一个指向该规范目录的符号链接,其域名 (sites/dev.mysite.com -> /vagrant/www/sites/my-site) 显然是团队正在使用的某些模块所必需的。
这是一个混合的 Windows/OSX 开发团队,在两个平台上运行速度都很慢。我的Vagrantfile 中唯一的半非传统 sn-p 是这样的:
config.vm.forward_port 80, 8080
config.vm.share_folder( "v-root", "/vagrant", ".", :extra => 'dmode=777,fmode=777' )
# Allows symlinks to the host directory.
config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
Vagrant::Config.run do |config|
config.vm.provision :shell, :path => "provision.vm.sh"
end
我的 shell 配置器只做几件事:
- 安装 drush
- 创建上述指向规范站点目录的符号链接
- 写出一个 Nginx 服务器块
- 如有必要,创建一个
settings.php文件。
我可以做些什么来提高性能?喜欢,很多?
更新
我已将其范围缩小到看起来问题出在远程数据库的程度。为了比较苹果和没有项目包袱的苹果,我下载了 Drupal 7.21 的新副本,并从 Vagrant Web 服务器针对 3 个不同的数据库执行了标准安装:
- 在与网络服务器 (localhost) 相同的 Vagrant VM 上创建的新数据库
- 在原始问题 (dev) 中使用的共享开发服务器上创建的新数据库
- 在 EC2 实例 (tmp) 上创建的新数据库
完成后,我登录到新的 Drupal 安装并加载主页 (localhost:8080) 5 次。然后我连接到每个数据库并以相同的方式加载相同的页面。我发现当 Drupal 连接到远程数据库时,页面加载速度慢了 4-6 倍。
请记住,这是全新(标准)安装。没有项目包袱。
【问题讨论】:
-
您是通过主机名还是 IP 地址连接到数据库?数据库是在 IPv4 还是 IPv6 上运行?还有serverfault.com/questions/495914/…