synced_folderをnfsでマウントする

Vagrant仮想マシンを用いて、あるプロダクトのカスタマイズを行っているのですが、パフォーマンスがすこぶる悪いです。フォルダの同期方法を、標準からnfsを用いた方法に変えると、パフォーマンスが良くなると目にしたので、nfsを用いた同期を試してみました。

環境

OS: macOS Sierra
Vagrant: 1.9.7

Vagrantfileを編集

同期設定を下記のように変更します。

config.vm.synced_folder "<ホストOS側のディレクトリ>", "<ゲストOS側のディレクトリ>", type:"nfs"

NFSに関する設定

まずNFSが起動しているかチェックしてみましょう。

$ sudo nfsd status
Password:<パスワードを入力後、Enterキー>
nfsd service is enabled
nfsd service is loaded
nfsd is running (pid 257, 512 threads)
lockd service is enabled
lockd service is loaded
lockd is running (pid 271)
statd.notify service is enabled
statd.notify service is loaded
statd.notify is not running
statd service is loaded
statd is running (pid 273)
rquotad service is loaded
rquotad is running (pid 463)

上記は起動している場合の結果です。起動していなかった場合は、下記のコマンドを実行します。

$ sudo nfsd enable

/etc/exportsというファイルが必要なので、これを作成しておきます。

$ sudo touch /etc/exports

仮想マシンを起動

vagrant upすると、起動シーケンス中にパスワードを聞いてくるようになります。作成した/etc/exportsファイルを編集する為に、管理者権限が必要だからです。パスワードを入力して下さい。

==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
Password: <パスワードを入力>

パフォーマンスについて

体感ですが、パフォーマンスは少し良くなったように感じます。本当に少しだけ、ちょっぴりです。