今日のラーメン:麺屋煮干と鶏ひんな(弘明寺) 限定・鰤出汁味噌らーめん ~特製あん肝バターを添えて~

これは株式会社SUPER STUDIO Advent Calendar 2022の15日目の記事です。

Docker Desktopが最新バージョン4.15.0で、新しいファイルシステムであるVirtioFSが正式リリースになってた。

Virtiofs正式採用でMacのファイルアクセスが高速化、Docker Desktop 4.15リリース。WebAssemblyアプリをcontainerd配下で管理可能に

WindowsやMacなどのローカル環境に簡単にDockerコンテナを用いた開発環境を導入できるDocker Desktopの最新版「Docker Desktop 4.15」正式版がリリースされました。 #VirtioFS GA, admi...

特にMacOSでDocker Desktopのファイルの読み書きが遅いことがよく言われてますが、それを改善できるとの触れ込み。
この辺の経緯は以下の記事参照。

Docker for Macの新しいファイルシステムVirtioFSを試してみた

このバージョン4.15.0でのファイル読み書きがどれくらい早くなったか、M2 MacBook Airで試してみた。

ベンチマーク

設定画面でVirtioFSが選べる

計測方法は先のZennの記事にあったリポジトリを使わせてもらった。

  • 読み込み(従来のgRPC-FUSE)
docker-bench % docker compose run --rm bench hyperfine --warmup 2 './justread.sh files'
Benchmark 1: ./justread.sh files
  Time (mean ± σ):      42.5 ms ±   0.7 ms    [User: 32.8 ms, System: 9.7 ms]
  Range (min … max):    41.7 ms …  45.0 ms    70 runs
  • 読み込み(VirtioFS)
docker-bench % docker compose run --rm bench hyperfine --warmup 2 './justread.sh files'
Benchmark 1: ./justread.sh files
  Time (mean ± σ):      41.3 ms ±   0.6 ms    [User: 32.6 ms, System: 9.0 ms]
  Range (min … max):    40.3 ms …  43.4 ms    71 runs
  • 書き込み(従来のgRPC-FUSE)
docker-bench % docker compose run --rm bench hyperfine --warmup 1 'dd if=/dev/zero of=speedtest bs=1024 count=100000'
Benchmark 1: dd if=/dev/zero of=speedtest bs=1024 count=100000
  Time (mean ± σ):     20.368 s ±  0.030 s    [User: 0.205 s, System: 1.934 s]
  Range (min … max):   20.308 s … 20.410 s    10 runs
  • 書き込み(VirtioFS)
docker-bench % docker compose run --rm bench hyperfine --warmup 1 'dd if=/dev/zero of=speedtest bs=1024 count=100000'
Benchmark 1: dd if=/dev/zero of=speedtest bs=1024 count=100000
  Time (mean ± σ):      8.935 s ±  0.190 s    [User: 0.203 s, System: 3.854 s]
  Range (min … max):    8.670 s …  9.244 s    10 runs

読み込みは誤差範囲と思うが、書き込みはおよそ2.3倍改善されて早くなっているのが確認できた。

有料化で何となく使うのを避けるようになりがちなDocker Desktopですが、これならきちんとライセンスを取る意味もでてきそうですな。