Я начал переносить многие наши среды разработки в Vagrant. До сих пор это было отлично для почти всего, но наша первая миграция Drupal непригодна для использования. Это невероятно медленно. Наши сайты Wordpress, CakePHP и Node.js работают очень адекватно или лучше, но не Drupal. Это всего лишь ужасно.Drupal очень медленный в условиях бродяг
Коробка представляет собой Ubuntu 12.04 64-битную машину с Veewee. Это тот же базовый ящик, который мы используем для всех наших веб-проектов, поэтому ничего особенного нет. В моем каталоге сайтов у меня есть канонический каталог (sites/my-site/
) со всеми ресурсами сайта и символическая ссылка на этот канонический каталог с доменным именем (sites/dev.mysite.com -> /vagrant/www/sites/my-site
), который, очевидно, требуется для некоторого модуля, который использует команда.
Это смешанная команда разработчиков Windows/OSX, и на обеих платформах она медленная. Только пол-нетрадиционный фрагмент из моей Vagrantfile
это:
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
Моя оболочка Provisioner только делает несколько вещей:
- Установку Drush
- Создает вышеупомянутую символическую ссылку в каталог канонического сайта
- Записывает серверный блок Nginx
- При необходимости создается файл
settings.php
.
Есть ли что-нибудь, что я могу сделать для повышения производительности? Как много?
UPDATE
Я сузил это вплоть до точки, где она выглядит как вопрос является удаленной базой данных. Для того, чтобы сравнивать яблоки с яблоками без каких-либо проектов багажа, я скачал свежую копию Drupal 7.21 и выполнил стандартную установку с веб-сервера Бродячей против 3-х различных баз данных:
- Новая база данных, созданная на той же Бродячей VM как Веб-сервер (локальный)
- новая база данных, созданная на общем сервере Dev используется в исходном вопросе (Dev)
- новая база данных, созданная на экземпляре EC2 (TMP)
Как только это было сделано, я вошел в новую установку Drupal и загрузил hom epage (localhost: 8080) 5 раз. Затем я подключался к каждой базе данных и загружал одну и ту же страницу таким же образом. Я обнаружил, что страница загружалась на 4-6 раз медленнее, когда Drupal был подключен к удаленной базе данных.
Помните, что это новая (стандартная) установка. Никакой проектный багаж.
Вы подключения к БД через имя хоста или IP-адрес? И работает ли DB на IPv4 или IPv6? Также http://serverfault.com/questions/495914/vagrant-slow-internet-connection-in-guest – Danack