The Vagrant gatling rsync plugin
I recently covered our Vagrant setup. As mentioned in the blog post we mostly use the Vagrant shared folders setup which unfortunately is rather slow. When searching for alternatives I came across the vagrant-gatling-rsync plugin which seems to work better compared to the built-in rsync support of Vagrant. As it seems the built-in rsync support uses a lot of CPU and disk I/O especially when working with very large rsynced directories. The vagrant-gatling-rsync plugin is designed to work well with such large rsynced folders and performs a lot better. In addition to that you are able to fine-tune the rsync latency via your Vagrantfile which is also a huge win. To install the plugin simply run the following command:
sudo vagrant plugin install vagrant-gatling-rsync
After installing the plugin add the following code to your Vagrantfile to configure the plugin for your project:
if Vagrant.has_plugin?("vagrant-gatling-rsync")
config.gatling.latency = 2.5
end
Fine-tune the config.gatling.latency option to match your needs. In my test set-up a value of 0.7 worked quite fine for me.
A downside of the rsync approach is that you are by default not able to sync the files from your guest os back on the host (e.g. to run a git commit on changed files). However there's a solution from the author of the vagrant-gatling-rsync plugin. It's called the vagrant-rsync-back plugin. I haven't yet tested it but is sounds promissing ;)