前回はお名前.com VPSをDebian 7に初期化しました。これからいろいろセットアップしなければいけませんが、その前にちょっとベンチマークを行って以前使っていたServersMan@VPS (Standardプラン)と比較してみたいと思います。
なお、ServersMan@VPS時代のベンチマークは下記で見ることができます。今回は64bit同士の比較を行います。
ServersMan@VPSは月額934円のStandardプラン(メモリ2GB, HDD 100GB)で、お名前.com VPSは月額1315円のメモリ2GBプラン(メモリ2GB, CPU 3コア, HDD 200GB)です。
bonnie++: ハードディスク性能
まずはハードディスクの性能をbonnie++というツールで測定してみます。実行したコマンドは
bonnie++ -q > 記録用ファイル.csv
になります。
測定結果は次の通りです。性能が良いほうを青い背景としておきました。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio: ON) |
お名前.com VPS 64bit Debian (Virtio: OFF) |
|||||
---|---|---|---|---|---|---|---|
スループット (K/sec) |
レイテンシ (us) |
スループット (K/sec) |
レイテンシ (us) |
スループット (K/sec) |
レイテンシ (us) |
||
シーケンシャル アウトプット |
キャラクタ単位 | 633 | 27,096 | 657 | 19,539 | 672 | 23,178 |
ブロック単位 | 146,415 | 454,000 | 264,862 | 243,000 | 278,811 | 85,515 | |
ブロック単位 (再書き込み) |
144,196 | 728,000 | 79,097 | 390,000 | 57,934 | 183,000 | |
シーケンシャル インプット |
キャラクタ単位 | 2,896 | 3,877 | 3,938 | 66,323 | 3,929 | 66,300 |
ブロック単位 | 4,141,704 | 1,460 | 158,433 | 117,000 | 176,419 | 119,000 | |
ランダムシーク | 6.519 | 6,763 | 1.017 | 174,000 | 0.277 | 5,182,000 | |
シーケンシャル クリエイト |
クリエイト | — | 196 | — | 7,113 | — | 17,683 |
リード | — | 488 | — | 636 | — | 549 | |
デリート | — | 6,581 | — | 1,166 | — | 1,196 | |
ランダム クリエイト |
クリエイト | — | 5,067 | — | 499 | — | 389 |
リード | — | 113 | — | 104 | — | 51 | |
デリート | — | 7,389 | — | 1,123 | — | 722 |
もっと大差でお名前.com VPSのほうが勝つのではないかと思いましたが、勝ち負けの数は意外と拮抗しています。シーケンシャルインプットとランダムシークに関しては差がありすぎるため、ServersMan@VPSの測定時に記録間違えをしたのかもしれません。
またVirtioのON/OFFでも明確な差が出ませんでした。わずかにVirtio OFFのほうが優勢ですが明確な差があるようにも思えません。Virtio ONのほうが有利かと思っていたのですが、予想外でした。マルチスレッドを活用するベンチマークだと差が出るのかもしれません。
なお、何回か測定したのですが、大体上記のような傾向を示すものの、かなり数値のブレがありました。VPSはリソースを共有しているので仕方ないところもありますが、RAMディスクなどを使ってディスクの読み書きは減らすことを考えた方がよさそうです。
dbench: ハードディスク性能
つづいてdbenchというソフトでもハードディスク性能を測定してみます。実行したコマンドは
dbench スレッド数 -t 60 > 記録用ファイル.txt
となります。スレッド数を1, 2, 4, 8, 16と変えて試してみました。
結果は次の通りです。今回もスコアが良いほうを青い背景にしています。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio ON) |
お名前.com VPS 64bit Debian (Virtio OFF) |
||||
---|---|---|---|---|---|---|
スループット (MB/sec) |
MAXレイテンシ (ms) |
スループット (MB/sec) |
MAXレイテンシ (ms) |
スループット (MB/sec) |
MAXレイテンシ (ms) |
|
1 スレッド | 12.2828 | 205.874 | 203.468 | 109.789 | 144.021 | 104.780 |
2 スレッド | 12.7204 | 397.215 | 338.866 | 179.441 | 195.09 | 125.548 |
4 スレッド | 12.4459 | 598.216 | 557.197 | 95.768 | 287.463 | 244.282 |
8 スレッド | 12.0671 | 1001.563 | 722.040 | 371.383 | 409.607 | 510.660 |
16 スレッド | 12.7201 | 2298.850 | 777.967 | 447.950 | 526.246 | 311.759 |
このベンチマークでは全項目でお名前.com VPSの圧勝でした。
Virtio ON/OFFではVirtio ONのほうが高速なようです。MAXレイテンシに関しては一部逆転しています。MAXレイテンシはあくまでもMAXなので、共有している他のVPSの動き次第で大きくぶれるので、参考程度に考えてよいと思います。
mbw: メモリ性能
メモリの性能はmbwというソフトで試してみました。実行したコマンドは
mbw 256 > 記録用ファイル.txt
となります。256MBのデータを使ってデータコピーを行いスループットを測定します。
結果は次の通りです。今回もスコアが良いほうを青い背景にしています。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio: ON) |
お名前.com VPS 64bit Debian (Virtio: OFF) |
|
---|---|---|---|
スループット (MB/sec) |
スループット (MB/sec) |
スループット (MB/sec) |
|
MEMCPY | 3108.837 | 3169.863 | 3133.706 |
DUMB | 3852.283 | 3564.740 | 3590.463 |
MCBLOCK | 5860.618 | 4981.688 | 4848.320 |
こちらは2勝1敗でServerMan@VPSのほうが有利となりました。
メモリ性能なのでVirtio ON/OFFは特に影響がないようです。
sysbench: 総合テスト
最後にsysbenchという総合ベンチマークソフトを使って性能を測定してみます。sysbenchはテスト項目が「cpu」「threads」「mutex」「fileio」「oltp(データベース)」が選択できます。
ServerMan@VPSのときにmutexの測定結果を忘れてしまったので、それ以外の結果を紹介します。
測定結果に標準偏差という見慣れない数値が出てきますが、これは測定結果にどれだけのブレがあったかを示す数値です。小さいほうが安定しているということができます。
CPU
sysbenchの説明によれば素数の演算を行うことにより測定するようです。実行したコマンドは
sysbench --test=cpu --num-threads=スレッド数 run > 記録用ファイル.txt
となります。スレッド数は1,2,4,8,16と変化させました。スレッド数を増やすことによりスケジューラの性能も評価できるようです。
結果は次の通りです。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio: ON) |
お名前.com VPS 64bit Debian (Virtio: OFF) |
||||
---|---|---|---|---|---|---|
平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | |
1 スレッド | 11.5792 | 0.00 | 12.1561 | 0.00 | 12.1703 | 0.00 |
2 スレッド | 11.6485 | 0.00 | 6.1630 | 0.00 | 6.1245 | 0.00 |
4 スレッド | 11.7739 | 0.00 | 4.0717 | 0.00 | 4.0798 | 0.00 |
8 スレッド | 11.6937 | 0.02 | 4.0813 | 0.01 | 4.0784 | 0.001 |
16 スレッド | 11.6622 | 0.01 | 4.0681 | 0.01 | 4.0703 | 0.02 |
このベンチマークでは明らかに1スレッド以外ではお名前.com VPSのほうが圧勝です。CPU性能については明らかにお名前.com VPSのほうに分があるようです。
VirtioのON/OFFについては誤差とみてよいと思います。このテストはCPUのベンチマークなので、VirtioのON/OFFでは差がつかないものと思います。
マルチスレッド
sysbenchの説明によればスケジューラのパフォーマンスを測定するために作られたテストとのことです。実行するコマンドは
sysbench --num-threads=スレッド数 --test=threads run > 記録用ファイル.txt
になります。スレッド数は1,2,4,8,16,32,64,128と変化させて行いました。
結果は次の通りです。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio: ON) |
お名前.com VPS 64bit Debian (Virtio: OFF) |
||||
---|---|---|---|---|---|---|
平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | |
1 スレッド | 3.6137 | 0.00 | 2.7124 | 0.00 | 2.6815 | 0.00 |
2 スレッド | 4.1027 | 0.01 | 2.4271 | 0.00 | 1.7252 | 0.00 |
4 スレッド | 6.6482 | 0.00 | 1.7948 | 0.00 | 1.9127 | 0.00 |
8 スレッド | 10.5921 | 0.01 | 3.4392 | 0.00 | 3.3228 | 0.00 |
16 スレッド | 15.0340 | 0.01 | 4.7680 | 0.01 | 4.2493 | 0.01 |
32 スレッド | 15.0878 | 0.01 | 5.7740 | 0.01 | 5.5425 | 0.01 |
64 スレッド | 10.5383 | 0.02 | 4.6216 | 0.02 | 4.4655 | 0.02 |
128 スレッド | 8.9653 | 0.06 | 4.0160 | 0.01 | 3.6089 | 0.02 |
このベンチマークでは全項目でお名前.com VPSの圧勝です。体感できるぐらいが出るのではないかと思います。
また、お名前.com VPSでのVirtio ONとOFFではVirtio OFFのほうがわずかに有利な状況です。誤差というレベルだとおもますが、その割にはVirtio OFFのほうが微妙に良いので、実際に差があるのかもしれません。
ファイルI/O
sysbenchはファイルI/Oに関してはシーケンシャルとランダムでそれぞれ読み込み・書き込み・読み書きの3パターン、合計6パターンの測定を行うことができます。今回は時間がないのでランダムの読み書きのみ測定してみました。実行したコマンドは
sysbench --test=fileio --file-test-mode=rndrw prepare sysbench --test=fileio --file-test-mode=rndrw --num-threads=スレッド数 run > 記録用ファイル.txt sysbench --test=fileio --file-test-mode=rndrw cleanup
になります。スレッド数は1,2,4,6,16と変化させて行いました。
結果は次の通りです。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio: ON) |
お名前.com VPS 64bit Debian (Virtio: OFF) |
||||
---|---|---|---|---|---|---|
平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | |
1 スレッド | 0.1252 | 0.00 | 0.0701 | 0.00 | 0.0713 | 0.00 |
2 スレッド | 0.1026 | 0.02 | 0.0420 | 0.00 | 0.0529 | 0.00 |
4 スレッド | 0.2193 | 0.13 | 0.0330 | 0.00 | 0.0355 | 0.01 |
8 スレッド | 0.5252 | 0.25 | 0.0327 | 0.01 | 0.0214 | 0.01 |
16 スレッド | 1.1886 | 0.44 | 0.0598 | 0.05 | 0.0104 | 0.00 |
このベンチマークでも全項目でお名前.com VPSのほうが有利です。
興味深いのはお名前.com VPSでのVirtio ONとOFFの違いです。スレッド数が多くなるとVirtio OFFのほうが有利のようです。これは意外な結果でした。
データベース(MySQL)
最後にデータベースの速度比較です。sysbenchによると単純な検索のほかに複数の処理を組み合わせたトランザクションなどの処理を行っているとのことです。
このベンチマークを行う前にテスト用のデータベースを作成しておく必要があります。これはルートでMySQLに接続して行います
mysql -u root -p (rootのパスワードを入力)
mysql> CREATE DATABASE benchmark; mysql> GRANT ALL ON benchmark.* to benchmark@localhost; mysql> FLUSH PRIVILEGES; mysql> SET PASSWORD FOR benchmark@localhost=password('benchmark');
テスト用のデータベースの名前はbenchmarkとして作成し、パスワードもbenchmarkとしておきます。
準備が整ったらsysbenchを実行します。
sysbench --test=oltp --mysql-table-engine=myisam --mysql-user=benchmark --mysql-password=benchmark --mysql-db=benchmark --oltp-table-size=1000000 prepare sysbench --test=oltp --mysql-table-engine=myisam --mysql-user=benchmark --mysql-password=benchmark --mysql-db=benchmark --oltp-table-size=1000000 --num-threads=スレッド数 run > 記録用ファイル.txt sysbench --test=oltp --mysql-table-engine=myisam --mysql-user=benchmark --mysql-password=benchmark --mysql-db=benchmark --oltp-table-size=1000000 cleanup
スレッド数は1,2,4,8,16と変化させて行いました。
結果は次の通りです。
ServersMan@VPS 64bit Debian |
お名前.com VPS 64bit Debian (Virtio: ON) |
お名前.com VPS 64bit Debian (Virtio: OFF) |
||||
---|---|---|---|---|---|---|
平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | 平均処理時間 | 標準偏差 | |
1 スレッド | 36.5568 | 0.00 | 21.0473 | 0.00 | 21.5491 | 0.00 |
2 スレッド | 36.9384 | 0.00 | 23.0392 | 0.00 | 23.2765 | 0.00 |
4 スレッド | 36.4490 | 0.00 | 23.4389 | 0.00 | 23.6088 | 0.00 |
8 スレッド | 38.0488 | 0.01 | 22.7548 | 0.01 | 23.7763 | 0.01 |
16 スレッド | 37.4087 | 0.02 | 22.6705 | 0.01 | 22.9317 | 0.01 |
このベンチマークでもお名前.com VPSの圧勝です。Virtio ONとOFFでは常にVirtio ONのほうが早かったですが、差は微々たるものです。どちらを使うか難しいところです。
まとめ
今回は新たにセットアップしたお名前.com VPSと従来使っていたServersMan@VPSを各種ベンチマークテストで比較しました。
ベンチマークテストにより若干のブレはあるものの、全体を通してお名前.com VPSのほうが性能が高い数値が出ています。WordPressでサイトを構築したときにどのような差が出るのか興味があるところです。
なお、お名前.com VPSでVirtioをONにしたときとOFFにしたときについては、差があるのかないのかよくわかりません。LinuxのようにVirtioに対応しているOSを動かす場合は、VirtioをONにすることが推奨のようなので、とりあえずONにして運用したいと思います。
次回からはこのお名前.com VPSの環境構築をしていきたいと思います。
コメント