概要
もともとは、vagrant の share folder が重いあたりから検索をはじめて、NFSを使うとよい記事をみつけた。
Vagrantのshare folderが遅い時はNFSを使うといいです - Qiita
やってみた。
しかし、物理マシンとおなじところにある、仮想マシンのNFSマウントがすごくおそかった。
マウントはできているので、lsとかでは気づかないし、小さなファイルでも気づけなかった。
しかし、大きなファイルを処理すると、とんでもなく時間がかかることがわかった。
これが不具合なのか、NFSの設定ミスなのか、なにかの設定ミスなのかがよくわからなかったので調べた。
結論
NATを介してNFS接続すると遅い
以下の事柄を確認する。
- 仮想マシンの中における現在の割当(NATではないとおもいこんでしまうことがある)
- Virtualbox上の設定も確認する。
確認のコマンドとしては、たとえば。
ip a
/sbin/ifocnfig
どれくらい遅いか検証してみる
TODO: まずはNATが著しく遅いことがわかればよい。
TODO: 書き出し先が、どこなのか確認しておいたほうがよいかもしれない。
TODO: 圧縮や、キャッシュがきいている可能性があるかもしれない。
NAT
TODO:
bridge
TODO:
urandom で NFS 側に書き出す。
host only adapter
ランダムなファイルをNFS上に作る
# dd if=/dev/urandom of=/data/random.dd bs=100K count=1000
1000+0 records in
1000+0 records out
102400000 bytes (102 MB) copied, 8.64082 s, 11.9 MB/s
書きだしたファイルのサイズを確認
# ls -lh /data/random.dd
-rw-r--r-- 1 root root 98M Feb 19 20:33 /data/random.dd
NFSから /tmp にコピー
# dd if=/data/random.dd of=/tmp/data.dd bs=100K count=1000
1000+0 records in
1000+0 records out
102400000 bytes (102 MB) copied, 0.78363 s, 131 MB/s
後々わかったこと
top でみても、ロードが高いし、通常どれくらいの時間でおわるか予想が作るならば
それをこえても終わらない時などが怪しい。