Saya mengelola vagrant
pengaturan untuk pengembang kami yang menjalankan OSX untuk mengelola sistem VirtualBox untuk pengembangan.
Untuk mendukung inotify
di dalam mesin linux, kami menghindari metode berbagi direktori yang biasa dengan VirtualBox: sebagai gantinya, mesin Virtualbox memperlihatkan pembagian NFS, yang dipasang di OSX.
Git (dan alat terkait seperti sourcetree) dijalankan di OSX, pada direktori bersama. Performanya sangat buruk: seringkali hanya membutuhkan 5 detik untuk menjalankannya git status
. Mengkloning repositori kecil ke drive NFS yang terpasang dapat memakan waktu beberapa menit (5-10 detik pada drive lokal).
Jelas kinerja NFS akan lebih buruk daripada menulis langsung ke SSD lokal, tetapi NFS hanya berjalan di atas antarmuka jaringan pribadi virtual dengan Virtualbox.
Saya menjalankan beberapa tolok ukur. Pertama:
dd if=/dev/zero of=test bs=16 count=16384
Setiap hasil didasarkan pada 100 sampel.
# local drive
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.990 1.000 1.020 1.021 1.030 1.130
# on the shared NFS drive
Min. 1st Qu. Median Mean 3rd Qu. Max.
6.000 6.278 6.390 6.482 6.570 7.630
# inside the VirtualBox instance
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.3600 0.4800 0.5150 0.5552 0.5400 1.4500
Patokan kedua:
ioping -c 500
local avg: 6 microseconds
local IOPS: 65.5 k
NFS Latency avg: 703 microseconds
NFS OPS: 1.4 k
Jelas beberapa latensi tidak dapat dihindari, tetapi ini cukup buruk sehingga membuat beberapa tugas sederhana cukup menyakitkan.
Pemilik volume menjalankan Ubuntu 12.10 (Quantal), dengan pengaturan default. Sistem yang memasang volume menjalankan OSX Mavericks.
Saat ini koneksi nfsd utama berjalan di atas UDP, yang tampaknya ideal melalui koneksi virtual. Saya tidak yakin apakah statsd
dan lockd
sedang berjalan melalui TCP dan UDP.
Saya mencoba memasang dengan async
bendera, dan dengan rwsize
dorongan, dan itu membuat sedikit perbedaan.
Peluang apa yang ada untuk secara serius meningkatkan kinerja NFS di lingkungan ini?
git status
dari mesin tamu membutuhkan waktu sekitar 5 detik. Pada mesin host yang OSX, itu tenang cepat. Setup saya adalah direktori NFS vagrant, vb, shared terbaru. Bagaimana Anda mengubah antarmuka, saya mencoba melakukannya tetapi belum menemukan jawabannya. Juga, ini menjadi lebih berisik setelah beberapa pembaruan. Saya tidak memiliki masalah ini pada awalnya
Am79C973
alih-alihvirtio
. Pelajaran di sini adalah untuk melihat lebih dekat pada apa yang sistem lakukan: ke titik tertentu, hambatan tampaknya menjadi kinerja jaringan virtual.