仮想環境ベンチマーク

マシンが遊んでいたのでVT-xとcoLinuxを少しだけ試してみた。

実行環境

gcc-core 4.2.4をセルフビルドした時間(秒)をtimeコマンドで測定。j2(2個同時ビルド)ありなしを実行。
※ 誤差はけっこうあります

環境 make -j2 対実機 make 対実機
native 843.2 1.00 1433.0 1.00
VMI + SCSI(non-revert) 1354.3 0.62 2143.8 0.67
VMI + physical IDE 1360.8 0.62 2209.3 0.65
VMI + IDE 1390.6 0.61 2348.7 0.61
自動 + IDE 1461.8 0.58 2345.2 0.61
VT-x + IDE 2064.5 0.41 2655.2 0.54
coLinux 2062.0 0.41 2050.5 0.70
Cygwin 1966.0 0.43 3854.9 0.37

※ native … ホストOSがFedora 10
※ VMI … 準仮想化有効
※ non-revert … 事前割当、スナップショット無効、独立ディスク
※ physical IDE … ホストOSのパーティションをマウントしてそこで実行(独立ディスク)
※ 自動 … デフォルトの実行方法(バイナリ変換)

結果についてのメモ

  • E6600だとVMwareのVT-xは意味なし。(旧世代は遅いらしい)
  • 準仮想化は効果あり。(有効状態はdmesgで確認できる)
  • 事前割当と物理パーティションの違いは誤差の範囲。(SCSIである事前割当の方がわずかに速い)
  • 独立ディスクの方が速いが、高負荷のビルドではそれほど差が出ない。
  • coLinuxは1CPUでは速いがSMP非対応のため頭打ち。
  • Cygwinは遅いが、マルチコアだとcoLinuxより速い。

Intel VTについて

単にVTとしか書いてないことが多いのだが

  1. VT-x(Core2Duo以降)
  2. VT-d/IOV(X38/Q35/PM45以降)
  3. EPT(Core i7以降)

という感じでCore i7からが本気サポートっぽい。P8700のマシンでVT-dが有効のようだったので期待して実行したところ、VT-xのパフォーマンスは確かに上がっていた(バイナリ変換とほぼ同じ)のだが、VT-dは特に使っていないようだしEPTが非サポートでがっかり。