外付けSSDを使ったらVMWareの動作速度が飛躍した

Fusion DriveはVMを動かすのに向いていない。SSDを買おう。

どうもTAKUYAです。拙作のInkdropというノートアプリでは、Windows版・Linux版をビルドするためにmacOS上でVMWareを使用しています。しかし、特にWindowsのバーチャルマシンが死ぬほど重いという問題がありました。何かするたびにマウスポインタが砂時計になり、ほとんど使い物になりませんでした。

なのでこれまではAWSのEC2でWindowsインスタンス(m5.large)を利用してビルドしていました。でもこの方法だとビルドの際に毎回インスタンスを起動・終了する必要がありますし、たまに終了し忘れたりしました。EC2のコストは時間単位でかかる($0.124/h)ので、落ち着いて使用できないという問題もあり、とてもストレスフルでした。

VMWareのパフォーマンスを解決するために、ネットで見つかる様々な方法を試しましたが、微妙か全然効果が無いものばかりでした。設定をいじくるだけでは解決できないと諦めました。原因はI/Oの遅さということは分かっていたので、外付けSSDを取り付けてみたところやっと解決しました。自分のiMacはFusion Driveを搭載していますが、これがVMと著しく相性が悪いようです。本稿では、VMWareのパフォーマンス問題を解決するために行った事をシェアしたいと思います。

Fusion Driveでのパフォーマンス

Windowsに搭載されているツールwinsat を実行してディスクのランダムアクセス速度を計測しました:

読み込み速度は 1.95 MB/s、書き込み速度は 1.57 MB/sでした。遅すぎますね。

アプリのビルドにかかる時間は7m 37.9sでした。待ち時間が苦痛です。

SSDでのパフォーマンス

読み込み速度は 332.60 MB/s に向上、書き込み速度も 444.36 MB/sに。素晴らしい!今の所、通常の操作でポインタが砂時計になって無意味に待たされることもなく快適に使用できています。

アプリのビルド時間は 4m 50.2sで、約3 m改善しました。まだ遅いですが、悪くないですね。

VMWareの設定で気をつけるところ

自分のケースでVMのI/O速度に大きく関わっていたのは、Hard DiskセクションのBus typeという設定項目でした。ここをIDEからSCSIに変更したところ、かなり改善しました。

外付けSSDをThunderboltで取り付ける

今回のために購入したデバイスは、WD BLACK SN750 NVMe 500GB (¥13,169):

それとThunderbolt 3に対応したSSDの外付けケース(TREBLEET社製) (¥14,899):

開封します。

SSDをケースに取り付けます:

そしてiMacに接続。なんの問題もなく動作しました。速度もバッチリ。

素晴らしい。他プラットフォームのビルドのためだけにもう一台コンピュータを購入する必要がなくなって良かったです。

SSDは結構発熱するので注意。あと、ケースのThunderboltコネクタ部分の接触が不安定で、動かすとすぐにアンマウントされてしまう点がネック。ハズレを引いたかもしれない。しかし安くない代物なので、その辺はしっかり作り込んでほしいところではある。自分はiMacのスタンドの後ろ部分にマジックテープで取り付けた。次にiMacを買う時はFusion DriveではなくSSDにしたい。

結論

ホストのMacがFusion Driveの場合は諦めてSSDを買おう。その費用は、VMWareの設定をいじって無駄な時間を大量に浪費する事に比べればずっと安いでしょう。

--

--

Published in 週休7日で働きたい

フリーランスしつつ自作サービス開発しながら食っていきたいブログ

Written by Takuya Matsuyama

I’m an indie SaaS developer currently building a Markdown note-taking app called Inkdrop. https://www.inkdrop.app/ Homepage: https://www.craftz.dog/

No responses yet