Edited at

Docker for Mac のファイル共有でconsistencyを指定してアクセスを速くする(CE-17.04.0)

More than 1 year has passed since last update.

Docker for MacのEdgeチャンネルにCE-17.04.0が来たので、新機能のconsistencyを指定することでファイル共有が速くなるか確認してみました。

以前に書いたDocker for Macのファイル共有が遅いので計測してみるのベンチマークのコードを引っ張り出して、新しいマウントフラグ consistent, cached, delegated をそれぞれ試してみます。

https://github.com/WHITEPLUS/advent-calendar2016-docker-volume-bench

#! /bin/bash -Ceu

[ ! -f ./gophercolor.png ] && \
curl -O https://golang.org/doc/gopher/gophercolor.png

echo \#consistent
docker run -v `pwd`:/go/src/bench-fio:consistent `docker build --no-cache -q .`
echo \#cached
docker run -v `pwd`:/go/src/bench-fio:cached `docker build --no-cache -q .`
echo \#delegated
docker run -v `pwd`:/go/src/bench-fio:delegated `docker build --no-cache -q .`

#----------- 出力 ----------
#consistent
testing: warning: no tests to run
BenchmarkReadVolumeFile_Buf128-2 500 2765689 ns/op
BenchmarkReadVolumeFile_Buf1024-2 500 2173428 ns/op
PASS
ok bench-fio 3.013s
#cached
testing: warning: no tests to run
BenchmarkReadVolumeFile_Buf128-2 1000 1254827 ns/op
BenchmarkReadVolumeFile_Buf1024-2 2000 755789 ns/op
PASS
ok bench-fio 3.032s
#delegated
testing: warning: no tests to run
BenchmarkReadVolumeFile_Buf128-2 1000 1244565 ns/op
BenchmarkReadVolumeFile_Buf1024-2 2000 654835 ns/op
PASS
ok bench-fio 2.799s

cached, delegated は、少なくとも(バッファ少なめな非効率な読み出しでも)2倍以上速い!これで体感は結構速くなるんじゃないでしょうか。

実際にどのフラグを使うかはこちらなどを参考にして、リネットの開発環境でも試していこうと思います。