***本記事にはプロモーションが含まれています。***
VirtualBox 5.0では、Linuxゲストに対してKVMタイプとして準仮想化クロックとSMPスピンロックが提供されます。
今回は、SMPスピンロックを確認してみます。
ベンチマークとしてUnixBench 5.1.3を用いました。
準仮想化インターフェースで”なし”と”KVM”を選んでそれぞれUnixBenchを走らせます。
ゲストOSはUbuntu 12.04で仮想CPUを2CPUで行いました。
まずはUnixBenchをダウンロードしてきて解凍しベンチマークを走らせます。
-iというオプションは測定を各項目で1回に制限するものです。そうしないと、10回やってしまい30分くらい時間がかかります。
wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
tar xvzf UnixBench5.1.3.tgz
cd UnixBench
./Run -i 1
準仮想化インターフェースを変えても結果はあまり変わらなかったのですが、Index Scoreと特に値が大きく変わったPipe-based context switchingをまとめました。
Index Score
準仮想化インターフェース | 1CPU | 2CPU |
---|---|---|
なし | 1739.7 | 2912.0 |
KVM | 1910.0 | 3278.5 |
Pipe-based context switching
準仮想化インターフェース | 1CPU | 2CPU |
---|---|---|
なし | 329.3 | 565.5 |
KVM | 919.5 | 1814.0 |
Pipe-based context switchingというのは、プロセスのコンテキストスイッチを起こさせることでOSとCPUの性能の違いを見るものです。コンテキストスイッチとは、複数のスレッドやプロセスの実行の順番を変えて実行することです。
準仮想化インターフェースにKVMを選ぶことで565.5から1814.0と3倍くらい性能が上がっていることが分かります。
Index Scoreの値が変わったのは主にPipe-based context switchingが変わったことによるものです。
ただ、実際にこの違いが分かるかというと、マルチスレッドのプログラムをぶん回したりサーバーで複数のプロセスを高負荷で動かすことをしないと実感できないと思います。
以上、VirtualBox 5.0のSMPスピンロックについて確認してみました。