ConoHa VPSでUnixBenchを計測
UnixBenchとは、
Linuxパソコンの処理性能を測定するためのソフトウエアのことで、
CPUの演算性能、アプリケーション実行時の処理性能、2次元や3次元のグラフィックス処理性能を測定できるものです。
さらに、マルチコアプロセッサにも対応しているため、コア数の違いによるパフォーマンスを評価することもできます。
UnixBench が出力する数値は、処理時間とIndex値です。
処理時間は、文字通り各処理性能を測定する項目毎に実際にかかった処理時間が出力されます。
Index値は、「George」と呼ばれるUNIXシステム「SPARCstation 20-61」の処理性能を10としたときの倍率を表した数値が出力されます。
( つまり、ざっくりと言うと SPARCstation 20-61 の何倍早いか?という感じでしょうか。)
現在のマシン性能は、かなり良くなっているので、100倍,1000倍という数値が普通に出ます。
主にUnixBench の値として用いられるのは、このIndex値の総合評価値である System Benchmarks Index Scoreの値が用いられています。
最新(2014年8月)に ConoHa VPS の1Gプランを契約し、UnixBenchを計測してみました。
UnixBenchのインストールについて
- UnixBenchの最新ファイルをダウンロードする。
$ wget http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
...
|
適当なディレクトリで解凍しておきます。
$ tar xfz UnixBench5.1.3.tgz
...
|
- GUI系の計測は不要なのでMakeFileを編集する。
計測が不要なものは、コメントアウトしておきます。
ここではGUI関係は不要なので、GRAPHIC_TESTS , GL_LIBS をそれぞれコメントアウトしておきます。
./UnixBench/Makefile を編集します。
- UnixBenchをコンパイルする。
UnixBenchをコンパイルするには、makeおよびgcc、perlが必要になります。
加えて CentOS/ScientificLinux の場合、perl のTime/HiResもインストールする必要があります。
前準備として以下のツールをインストールします。
CentOS/
ScientificLinux の場合
$ yum -y install make gcc perl perl-Time-HiRes
...
|
Debian/
Ubuntu の場合
$ apt-get -y install make gcc perl
...
|
準備を終えたら、続けてmakeを実行します。
実行するディレクトリは、先にUnixBenchを解凍したディレクトリで実行します。
[UnixBench]$ make
...
|
ここでエラーがでない場合は、すぐにでも計測できます。
以下のようにRunで実行です。
[UnixBench]$ ./Run
make all
make[1]: Entering directory `/root/UnixBench'
Checking distribution of files
./pgms exists
./src exists
./testdir exists
./tmp exists
./results exists
make[1]: Leaving directory `/root/UnixBench'
Version 5.1.3 Based on the Byte Magazine Unix Benchmark
...
|
Runは、概ね 1CPUあたり20分ぐらいでしょうか。単純に仮想CPU2あるので、倍の40分程度は掛かるものと思います。
また、負荷もかかるので、基本的には、実際に運用中のサーバーでの実施は避けた方が良いと思います。
でも、負荷が掛かっているときの情報が欲しい場合もあるでしょうから、計測する意図を考えて行うことが肝要かと思います。
UnixBenchの実施結果
以下の一覧表、およびグラフは、10回連続で実施し、System Benchmarks Index Score だけを抜粋したものです。
また、比較のために 以下のサーバーのUnixBenchについて一緒に掲載しています。
- 今回の 最新の ConoHa VPS 1Gプラン[ConoHa VPS]
- こちら で調べた さくらのVPS 1Gプラン[さくらのVPS]
詳細表示切替
UnixBench
回数 | ConoHa VPS #1CPU | ConoHa VPS #2CPU | さくらのVPS #1CPU | さくらのVPS #2CPU |
---|
1 | 1501.9 | 2506.9 | 1068.6 | 2244.7 |
---|
2 | 1506.5 | 2478.4 | 1077.6 | 2213.1 |
---|
3 | 1513.0 | 2594.1 | 1070.7 | 2102.1 |
---|
4 | 1508.0 | 2619.7 | 1068.2 | 2249.1 |
---|
5 | 1506.6 | 2514.8 | 1068.7 | 2158.3 |
---|
6 | 1503.1 | 2612.7 | 1066.6 | 2203.1 |
---|
7 | 1516.4 | 2576.5 | 1066.5 | 2223.3 |
---|
8 | 1480.8 | 2472.6 | 1069.2 | 2054.0 |
---|
9 | 1493.3 | 2614.7 | 1060.0 | 2194.4 |
---|
10 | 1508.7 | 2501.9 | 1070.0 | 2206.0 |
---|
|
最小値 | 1480.8 | 2472.6 | 1060.0 | 2054.0 |
---|
最大値 | 1516.4 | 2619.7 | 1077.6 | 2249.1 |
---|
平均値 | 1503.8 | 2549.2 | 1068.6 | 2184.8 |
---|
中央値 | 1506.5 | 2545.7 | 1068.7 | 2204.6 |
---|
やっぱり、ConoHa のUnixBechの数値は良いですね。
最新のさくらのVPSでも、きれいに差が出ています。CPUの情報からも、やっぱりCPUのパフォーマンスの違いが大きいのかなぁと思います。
最新のさくらのVPS 1GプランでUnixBench, IOPS を計測し、2014年と2013年分と比較してみた で調べたように、少なからずさくらのVPSのハードスペックは、良くなってきています。
しかし、ConoHaもしっかり良くなっています。
ConoHa VPSでディスクパフォーマンスを計測
最新(2014年8月)に ConoHa VPS の1Gプランを契約し、IOPS、レイテンシ(ディスクパフォーマンス)を計測してみました。
iops とは、
Input/Output Per Second の略で、簡単に言うと時間あたりの読み書き量を表す単位のことです。
ハードディスクなどの記憶装置の性能指標の一つで、ある条件の元で1秒間に読み込み・書き込みできる回数のことです。
1回の読み書きにかかる時間の逆数で、ハードディスクの場合はシークタイムと回転待ち時間、データ転送時間の和の逆数となります。
実際には、読み込み(リード)か書き込み(ライト)か、シーケンシャルアクセスかランダムアクセスか、
転送するデータの量がどれくらいかによって1回の動作に要する時間が異なるため、「4KBランダムライトIOPS」(4KBのデータをランダムに書き込んだ時のIOPS)のように計測条件を明示することが多いです。
(出典 : http://e-words.jp/w/IOPS.html)
レイテンシとは、
latencyのことで、直訳すると「遅延」という意味になります。
データ転送において、データを要求してから実際に送られてくるまでの待ち時間のことです。この時間が短いほどシステム全体の処理性能は高くなります。
(出典 : http://e-words.jp/w/E383ACE382A4E38386E383B3E382B7.html)
fioのインストールについて
- fioコマンドの最新ファイルをダウンロードする。
$ wget http://freecode.com/urls/3aa21b8c106cab742bf1f20d60629e3f -O fio.tar.gz
...
|
適当なディレクトリで解凍しておきます。
$ tar xfz fio.tar.gz
...
|
- fioをコンパイルする。
fioをコンパイルするには、makeおよびgcc、libaioが必要になります。
前準備として以下のツールをインストールします。
CentOS/ScientificLinux の場合
$ yum -y install make gcc libaio-devel
...
|
Debian/Ubuntu の場合
$ apt-get -y install make gcc perl libaio-dev
...
|
準備を終えたら、続けてmakeを実行します。
実行するディレクトリは、先にfioを解凍したディレクトリで実行します。
$ cd fio-2.1.10
[fio-2.1.10]$ make
...
|
ここでエラーがでない場合は、インストールします。
[fio-2.1.10]$ make install
install -m 755 -d /usr/local/bin
...
|
fioコマンドが使えるか確認します。
[fio-2.1.10]$ fio --version
fio-2.1.10
|
fioのパラメータについて
fioのパラメータは、読み込み、書き込み それぞれ さくらインターネットで使用されているパラメータと同じものを使用(詳細は、以下参照)します。
以下は、さくらインターネットで計測された際の fioコマンドのパラメータ設定ファイルになります。
- 書き込みパフォーマンスを確認したfioパラメータ設定ファイル
ファイル名:randwrite.fio
[global]
ioengine=libaio
direct=1
invalidate=1
group_reporting
directory=/home
filename=test.bin
runtime=60
[Rand-Write-4k-qd32]
readwrite=randwrite
size=4G
bs=4k
iodepth=32
numjobs=1
|
- 読み込みパフォーマンスを確認したfioパラメータ設定ファイル
ファイル名:randread.fio
[global]
ioengine=libaio
direct=1
invalidate=1
group_reporting
directory=/home
filename=test.bin
runtime=60
[Rand-Read-4k-qd32]
readwrite=randread
size=4G
bs=4k
iodepth=32
numjobs=1
|
[ fioパラメータの意味 ]
ioengine
jobで使用するIOを定義します。
- libaio : Linuxネイティブの非同期I/O
direct
true(or 1) を指定した場合、I/Oバッファは使用しません。(usually O_DIRECT)。デフォルト:false( or 0)。
invalidate
ファイルへの読み書きを始める際にバッファ・キャッシュを無効にします。デフォルト:true( or 1)。
group_reporting
これが設定された場合、numjobsが指定されている時に、ジョブごとの代わりにグループ単位のレポートを出力します。
directory
これが設定された場合、numjobsが指定されている時に、ジョブごとの代わりにグループ単位のレポートを出力します。
filename
fioで使用する ファイル名を指定します。通常、ジョブ名、スレッド番号、ファイル番号に基づいたファイル名になります。このファイル名でテスト用のファイルが作成されます。
runtime
指定した秒数後に処理を終了します。
readwrite
読み書きのパターンを以下のタイプで指定します。
- read : Sequential reads.
- write : Sequential writes.
- randread : Random reads.
- randwrite : Random writes.
- rw : Mixed sequential reads and writes.
- randrw : Mixed random reads and writes.
size
このジョブの読み書きの総サイズを指定します。
blocksize(or bs)
I/Oユニットのブロックサイズを指定します。デフォルト 4Kです。
iodepth
ファイルに対して非同期で同時に要求するI/Oユニット数を指定します。
numjobs
このジョブのクローンの数を指定します。デフォルト 1です。
上記のfio パラメータファイルは、fioコマンドで、以下のように指定することができます。
$ fio randread.fio
Rand-Read-4k-qd32: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
fio-2.0.13
..
|
fioの実施結果
以下の一覧表、およびグラフは、10回連続で実施し、IOPS、レイテンシ だけをそれぞれ抜粋したものです。
詳細表示切替
IOPS
回数 | ConoHa (Read) | さくら(Read) | ConoHa (Write) | さくら(Write) |
---|
1 | 11516 | 3122 | 2658 | 1782 |
---|
2 | 2728 | 3337 | 2921 | 3297 |
---|
3 | 2700 | 3384 | 2889 | 3316 |
---|
4 | 2879 | 3204 | 2766 | 3281 |
---|
5 | 2898 | 3369 | 2818 | 3323 |
---|
6 | 2524 | 3294 | 2938 | 3303 |
---|
7 | 2637 | 3347 | 2836 | 3302 |
---|
8 | 6913 | 3261 | 2841 | 3329 |
---|
9 | 2286 | 3196 | 2648 | 1612 |
---|
10 | 2684 | 3259 | 2803 | 3259 |
---|
|
最小値 | 2286 | 3122 | 2648 | 1612 |
---|
最大値 | 11516 | 3384 | 2938 | 3329 |
---|
平均値 | 3976 | 3277 | 2812 | 2980 |
---|
中央値 | 2714 | 3278 | 2827 | 3300 |
---|
詳細表示切替
レイテンシ(ms)
回数 | ConoHa (Read) | さくら(Read) | ConoHa (Write) | さくら(Write) |
---|
1 | 2.8 | 10.2 | 12.0 | 18.0 |
---|
2 | 11.7 | 9.6 | 11.0 | 9.7 |
---|
3 | 11.8 | 9.5 | 11.1 | 9.6 |
---|
4 | 11.1 | 10.0 | 11.6 | 9.7 |
---|
5 | 11.0 | 9.5 | 11.3 | 9.6 |
---|
6 | 12.7 | 9.7 | 10.9 | 9.7 |
---|
7 | 12.1 | 9.6 | 11.3 | 9.7 |
---|
8 | 4.6 | 9.8 | 11.3 | 9.6 |
---|
9 | 14.0 | 10.0 | 12.1 | 19.8 |
---|
10 | 11.9 | 9.8 | 11.4 | 9.8 |
---|
|
最小値 | 2.8 | 9.5 | 10.9 | 9.6 |
---|
最大値 | 14.0 | 10.2 | 12.1 | 19.8 |
---|
平均値 | 10.4 | 9.8 | 11.4 | 11.5 |
---|
中央値 | 11.8 | 9.8 | 11.3 | 9.7 |
---|
さくらのVPSでは、書き込みのパフォーマンスは、かなりばらつく時があるようでしたが、
ConoHa VPSでは、読み込みのパフォーマンスは、かなりばらつく時があるようす。
さくらのVPSでは、悪い方にばらついていましたが、ConoHa VPSでは、良い方にばらついているのも特徴かもしれません。
ただ、全体的なディスクパフォーマンスは、僅差ながら、さくらのVPSが良いようです。
また、ばらつき具合も概ね落ち着いています。ConoHa VPSは、良い方にばらつきがあるとはいえ、極端に良すぎと言えなくもないですね。
ConoHa VPSのパフォーマンス総括
最後に、ConoHa VPS 1Gプランのパフォーマンスを、さくらのVPS と簡単に比較してみました。
項目 |
ConoHa VPS 1G |
さくらのVPS 1G |
UnixBench |
1コア |
1,507 |
1,069 |
2コア |
2,546 |
2,205 |
IOPS |
ランダムリード |
2,714 |
3,278 |
ランダムライト |
2,827 |
3,300 |
レイテンシ |
ランダムリード |
11.8 |
9.8 |
ランダムライト |
11.3 |
9.7 |
先に書いているように
CPUのパフォーマンスは、ConoHaが上、ディスクのパフォーマンスは、さくらのVPSが上という結果のようです。
UnixBenchからすれば、全体的なパフォーマンスが良いのは、ConoHa VPSが若干良さそうかなぁというところだと思います。
データベース多用なら さくらのVPS、 スクリプト多用なら、ConoHa VPS
と言えなくもないかなぁというところだと思います。
機能的には、両者ともほとんど同じで、ローカル接続もできますし、サーバーも東京におけます。
サーバーをあえて、北海道や大阪が良い方は、さくらのVPSが良いでしょうね。
あとは、好き好きだと思います。GMOが嫌いな方は、やっぱり、さくらになるんでしょうね。
2014.10.27 追記
上記のCPUは、かなり新しい(良い)サーバーに当たったみたいです。CPU情報は必ず確認した方が良いです。
ConoHaの場合、
modelがポイントのようです。
これが 40 番台であれば、UnixBenchのパフォーマンスもさくらのVPSと大差ありません。
やっぱり、あたったサーバーに依存するみたいですね。
そのあたりを考えれば、最新に当たると、ConoHaの選択肢もありますが、そうでなければ
さくらのVPSの選択肢の方が無難かもしれません。
結構、試してみましたが、最新のサーバーには、なかなか当たりませんでした。
この記事を書いた時の運(タイミング)が良かったのだとつくづく実感しました。
また、さくらのVPSも古いサーバーがあります。これもある程度、CPU情報で確認できるみたいです。
cpu MHz、bogomipsの違いで、ある程度、わかるようになっているみたいです。
ConoHaでは、20回サーバーを借りてみて1回当たっただけでした。
さくらのVPSでは、4回サーバーを借りてみて2回最新だと思われるサーバーに当たりました。(参照:
最新のさくらのVPS 1GプランでUnixBench, IOPS を計測し、2014年と2013年分と比較してみた )
参考まで。
久しぶりにConoHa VPS を使ってみました。やっぱり、さくらのVPSに比べると、速さを感じるのは確かです。
コンパイルなどをしていると、その差を感じる時があります。
ただ、極端な差は無いのかなぁというのが実感でもありますから、やっぱり、あとは、好き好きになるんでしょうね。
ここで紹介したVPSに興味のある方は、以下からどうぞ。
ConoHa VPSの詳しい情報や試してみたい方は、http://www.conoha.jp/ からどうぞ。
さくらのVPSの詳しい情報や試してみたい方は、http://vps.sakura.ad.jp/ からどうぞ。