У меня есть проект (Rails 4.0.2), который я сейчас запускаю внутри Vagrant (1.3.5), на котором работает VirtualBox (4.3.4). Гостевой ОС - Debian 6.0. Когда я запускаю приложение на ОС хоста, или я запускаю Virtualbox вручную, я вижу резкое улучшение в реагировании. Как только я использую «бродягу», производительность кажется очень бедной. Вот соответствующие Apache Bench результаты:Vagrant замедление HTTP-запросов на сервер rails
Apache Bench Command
ab -n 10 -c 1 http://127.0.0.1:3000/application.js
Хост OS
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 27 44 28.3 33 118
Waiting: 25 41 28.6 31 116
Total: 27 44 28.3 33 118
Virtualbox
min mean[+/-sd] median max
Connect: 0 0 0.4 0 1
Processing: 57 71 19.1 67 119
Waiting: 46 59 19.3 57 110
Total: 57 71 19.1 68 119
Vagrant
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 849 916 76.2 901 1115
Waiting: 831 892 72.6 883 1081
Total: 849 916 76.2 901 1115
Я бы ожидать замедления при запуске приложения в VirtualBox, но не на порядок. Я тоже ничего не делает фантазии с моим Vagrantfile:
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "squeeze"
config.vm.network :forwarded_port, guest: 3000, host: 3000
end
Я пытался исправления, указанные в this github issue и this HackerNews comment, но безрезультатно.
Синхронизированные папки были моей проблемой. Я изменил его, чтобы использовать NFS, и это значительно быстрее. Вот документация для него http://docs-v1.vagrantup.com/v1/docs/nfs.html –
Конфигурационный файл Webbrick был моей проблемой. Я также обнаружил, что Vagrant rsync в 10 раз быстрее, чем vboxfs или NFS. – Chloe