vagrant
개발을 위해 VirtualBox 시스템을 관리하기 위해 OSX를 실행하는 개발자를위한 설정을 관리합니다 .
inotify
Linux 시스템 내부 를 지원하기 위해 VirtualBox와 디렉토리를 공유하는 일반적인 방법을 피하십시오. 대신 Virtualbox 시스템은 OSX에 마운트 된 NFS 공유를 노출합니다.
Git (및 소스 트리와 같은 관련 도구)은 OSX의 공유 디렉토리에서 실행됩니다. 이것의 성능은 매우 열악합니다. 종종 실행하는 데 최대 5 초가 걸립니다 git status
. 작은 저장소를 마운트 된 NFS 드라이브에 복제하는 데 몇 분 (로컬 드라이브에서 5-10 초)이 걸릴 수 있습니다.
분명히 NFS 성능은 로컬 SSD에 직접 쓰는 것보다 좋지 않지만 NFS는 Virtualbox와의 가상 사설 네트워크 인터페이스를 통해 실행되고 있습니다.
몇 가지 벤치 마크를 실행했습니다. 첫번째:
dd if=/dev/zero of=test bs=16 count=16384
각 결과는 100 개의 샘플을 기반으로합니다.
# 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
두 번째 벤치 마크 :
ioping -c 500
local avg: 6 microseconds
local IOPS: 65.5 k
NFS Latency avg: 703 microseconds
NFS OPS: 1.4 k
분명히 약간의 대기 시간은 불가피하지만 이것은 간단한 작업을 상당히 고통스럽게 만들기에 충분하지 않습니다.
볼륨 소유자가 기본 설정으로 Ubuntu 12.10 (Quantal)을 실행 중입니다. 볼륨을 마운트하는 시스템이 OSX Mavericks를 실행 중입니다.
현재 주요 nfsd 연결은 UDP를 통해 실행되고 있으며 이는 가상 연결보다 이상적입니다. 나는인지 확실하지 않다 statsd
및 lockd
TCP와 UDP를 통해 실행된다.
나는 async
깃발로 장착을 시도했지만 rwsize
부스트 와 함께 거의 차이가 없었습니다.
이 환경에서 NFS의 성능을 크게 향상시킬 수있는 기회는 무엇입니까?
git status
게스트 컴퓨터에서 실행 하는 데 약 5 초가 걸립니다. OSX 인 호스트 시스템에서는 조용히 빠릅니다. 내 설정은 최신 버전의 vb, 공유 NFS 디렉토리입니다. 인터페이스를 어떻게 변경 했습니까? 그러려고했지만 이것을 이해하지 못했습니다. 또한 일부 업데이트 후 더 눈에 띄게되었습니다. 처음에는이 문제가 없었습니다
Am79C973
대신virtio
. 여기서 교훈은 시스템이 수행하고있는 작업을보다 자세히 살펴 보는 것입니다. 특정 시점에서 병목 현상은 가상 네트워크 성능 인 것으로 보입니다.