[recovery mode] Ускоряем vagrant shared-folder на Windows хосте

59e338a218a34674224980.png

Я полтора года мучился с одной неприятной особенностью ubuntu под vagrant — чертовски медленная расшаренная папка. Простые бенчмарки показывали просадку производительности I/O операций почти на 2 порядка, проекты на php работали до 10 раз медленнее чем на нативном хосте. Так вот, сегодня я задолбался окончательно, хорошо поискал… и оказалось что есть решение, и теперь я просто не могу не поделиться им с кем-то. Решение простое, кому-то покажется очевидным, кто-то знал о нём с рождения (ну или будет так утверждать), но я уверен что знают о нём не все.

А чём проблема то?


По умолчанию vagrant использует файловую систему vboxsf, которая иногда работает крайне медленно (когда это «иногда» случается — я не знаю, у меня оно всегда тормозило). Свой тип файловой системы можно узнать по команде mount.

59e341b25a22b984878776.png

Можно заменить файловую систему, но пролема в том что официальная документация… врёт! Она говорит мол да, иногда бывают проблемы с перфомансом расшаренных папок, в таких случаях используйте nfs и будет вам счастье. А ниже приписка — на windows не сработает, и не пробуйте.

59e33be633a72175466071.png

А знаете в чём соль? Да работает оно и на windows, нельзя верить документации!

И что делать?

Идём сюда https://github.com/winnfsd/vagrant-winnfsd, читаем, ставим, радуемся. Для тех кому лень читать:

  • выполнить в windows консоли «vagrant plugin install vagrant-winnfsd»
  • добавить две строки в Vagrantfile


config.vm.network «private_network», type: «dhcp»
config.vm.synced_folder ».»,»/vagrant», type: «nfs»

Перезагружаем vagrant, готово! Не знаю, возможно существуют какие-то подводные камни, может кому-то не поможет, но у меня, вроде, работает отлично. Моя конфигурация: Windows 10 (host) + ubuntu 14.04 (guest). Мой проект на laravel ускорил отдачу страницы с 6.5 секунд до 0.5, что не может не радовать.

P.S. пост получился коротким, сумбурным, но попадись он мне год назад — я был бы безумно рад.

© Habrahabr.ru