今日の知見

Toshが諸々で得た知見を雑に書きます。

21日目-1: Vagrant 高速化

ご挨拶

こんばんは。Tosh でございます。
昨日更新したのにタイトルが穴埋め分となっているのは、日数を勘違いしていたからですorz
4/1から始めたので今日で21日目ですね……
それでは、宣言通り今日はそこそこ濃い内容でお送り致しますノシ

Vagrant 高速化

……というより、正確に言うと Virtual Box の設定周りなんですが(汗)
共有ファイルの切り替えや環境の切り分け・複製が楽なのもあって仕事で使っておりますが、開発環境 VM のパフォーマンスが悪いってことで、ここ数日はパラメータ調整と検証をやっておりました。
それではさっそく Vagrantfile の中身の一部をば。

config.vm.provider :virtualbox do |v|
  v.cpus = 2
  v.memory = 2048
  v.customize["modifyvm", :id, "--ioapic", "on", "--chipset", "ich9"]
  v.customize["storagectl", :id, "--name", "SATA", "--hostiocache", "on"]
end

それでは、各項目の説明をば。

  • v.cpus
    • CPU の(論理)コア数を設定しております。
  • v.memory
    • メモリ容量を設定しております(MB 単位)。
  • v.customize
    • 上記2つ以外の設定を行っております。上記2つの設定も含めることができます。
      • modifyvm
        • Virtual Box の「システム」に相当する部分です。
          • ioapic
            • CPU をマルチコアにする場合は ON
              I/O の割り込みをどうたら……ってよく覚えてません(´・ω・`)
            • chipset
              • デフォルト設定だと互換性重視のために古いのが残っているみたいです。
      • storagectl
        • Virtual Box の「ストレージ」に相当する部分です。
          設定する場合はストレージ名も指定します。
          • hostiocache
            • ホストの I/O キャッシュを利用するようにします。
              ディスクアクセスのオーバヘッドが格段に減りますが、環境によってはホスト側のリソースを圧迫したりするかもしれません。

……とまあ、ほかにもこまごまとした設定がありますが、Tosh の観測範囲ではこの辺を見直すだけで倍以上速くなったので、効果は十分と思われます。