I’ve been learning Django Web framework for a while and started working on a few projects using it. I use Vagrant with VirtualBox as my development environment on Windows machine.
Issue
It gets slower and slower to run tests and runserver command locally. The reason is VirtualBox’s vboxsf used by Vagrant synced files has performance issue when there are large number of files/directories.
Solution
It seems that it was a known issue and the solution is to use NFS for synced folder. I search in Vagrant documentation , and it said that
Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows.
So according to Vagrant’s documentation, NFS folders do not work on Windows hosts.
We need third party plugins to make it work on Windows host. After searching the net for a few hours, I stumbled upon a program called WinNFSdBinary which is a NFS server for Windows.
After setting up the NFS folders with Vagrant, the tests and runserver command run fast again.
Steps
Download WinNFSdBinary which is a NFS server for Winodws.
https://github.com/dziad/WinNFSdBinary
Follow instructions from wiki https://github.com/dziad/WinNFSdBinary/wiki to install and setup NSF in Windows.
In Vagrant file, add the following lines,
Vagrant.configure(“2”) do |config| # .... # VirtualBox provider needs private network setup for nsf to work Config.vm.network “private_network”, type: “dhcp” Config.vm.synced_folder “.”, “/vagrant’, type: “nfs” end