ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

ニフティクラウドをベンチマークしてみよう 【CPU・メモリ・ネットワーク編】

みなさま、はじめまして。ニフティの寶田(ホウダ)です。

ニフティクラウドの新ゾーン(east-13)がリリースされてる!
どれぐらいの性能が出ているのか見てみましょう!ということで、【CPU・メモリ・ネットワーク】に対して、ベンチマークを実施してみました。
それでは、さっそく結果を見てみましょう。

ベンチマーク結果

CPU

ベンチマーク条件と手順は後述しますが、
まず、CPUのベンチマーク結果を見ていきましょう。
こちらは、ニフティクラウドのサーバータイプで比較をしており、 結果の値(スコア)が高いほどCPUが高速であることを示しています。 今回は、8vCPUにて、最高で"6257.0 Score "を確認できました。

unixbench

メモリ

続いて、メモリのベンチマーク結果を見ていきましょう。
こちらもCPUのベンチマークと同様に、ニフティクラウドのサーバータイプで比較をしており、 結果の値(MB/s)が高いほどメモリが高速であることを示しています。 今回は 8vCPU にて、最高 13087.90 MB/s の性能が確認できました。

stream

ネットワーク

最後に、グローバルネットワークのベンチマーク結果を見ていきましょう。
こちらは、ネットワークの帯域をそれぞれ比較をしています。
結果の値(Mbps)が高いほど高速であり、広帯域であることを示しています。 今回は、国内海外から複数拠点から同時にネットワークトラフィックを発生させてベンチマークを実施してます。たくさんのユーザが同時にアクセスしたときの動作を模倣しています。各社に設置したサーバは帯域制限の挙動が確認されており、ネットワーク上限が見えてしまいました。
ニフティクラウドでは、1.7Gbpsを超えるトラフィックが流れても、問題なく捌くことができるのを確認できています。...ここまで大量のトラフィック流す人はめったにいないと思いますが、アクセスが殺到する大規模サービスでも安心して運用できますね。

iperf

ベンチマーク条件

今回のベンチマーク条件は以下のとおりです。

CPU - unixbench

ニフティクラウド(mini, small, midium, large, xlarge16, wlarge32, 対象ゾーン:east-13): 1台、それぞれのスペックで計測。
OSタイプ: CentOS6.3 Plain
計測ソフト: unixbench-5.1.2
計測結果:System Benchmarks Index Scoreとし、3回平均を結果とする

メモリ - stream

ニフティクラウド(mini, small, midium, large, xlarge16, xlarge16, wlarge32, 対象ゾーン:east-13): 1台、それぞれのスペックで計測。
OSタイプ: CentOS6.3 Plain
計測ソフト: stream 9.2-6
計測結果:Triadとし、3回平均を結果とする

ネットワーク - iperf 

ニフティクラウド(small, 対象ゾーン:east-13, CentOS6.3 Plain): 1台 
以下、複数拠点のサーバを用意。

海外A拠点のサーバ: 1台 
国内B~I拠点のサーバ: 7台 
計測ソフト、設定パラーメータ: iperf-2.0.5、TCP、パラレル数: 30 
計測結果:スループットとし、1分間、3回平均を結果とする 
測定方法: 各拠点にて、iperfを複数同時に実行、1台のサーバに対して、7台のクライアントが同時に接続とする
以下のイメージ図をご参照ください。

まず、下記のようにニフティクラウドをサーバとして稼働させ、他拠点から同時に接続していきます。

iperf-exp-01

他拠点についても同様に計測していきます。

iperf-exp-02

ベンチマーク方法と結果の見方

ベンチマーク方法の具体的な手順と、実行結果の見方について以下に記載します。
今お使いの環境や物理サーバと比較してみると面白いと思うので、ぜひお試しください。
※以下のインストール手順や実行方法はLinux(Red Hat Enterprise Linux/CentOS)での手順になります。
 今回は、CentOS6.3 Plainにて環境構築をしております。
ベンチマークはサーバーを一時的に高負荷状態にさせますので、注意して実行してください。

CPU - unixbench

unixbenchはCPUの計算能力を測定することができるツールです。
CPU利用率が100%上がりますが、どのぐらい性能が出るかスコアで確認することができます。
インストール方法は以下のとおりです。

インストール

# wget http://byte-unixbench.googlecode.com/files/unixbench-5.1.2.tar.gz
# tar zxvf unixbench-5.1.2.tar.gz
# cd unixbench-5.1.2
# yum install -y libXext-devel
# yum install -y freeglut freeglut-devel
# yum install -y perl-Time-HiRes
# yum install -y gcc
# make

実行方法

# cd ~/unixbench-5.1.2
# ./Run

実行結果

以下が実行結果の例です。以下は2059.7スコアが結果となります。

System Benchmarks Index Score                 2059.7


比較例

ベンチマーク結果以下のように比較してみると、導入時の参考になりそうですね。

物理CPU スペック ※1 Score ニフティクラウド スペック Score
とある物理サーバA 323.6 mini 503.567
とある物理サーバB 1349.9 small 1351.400

※1. 下記のフォーラムから結果をいくつか抜粋してみました。
ご参考: UnixBench Results
http://www.webhostingtalk.com/showthread.php?t=308055

メモリ - stream

streamは、実効メモリ帯域幅、性能を計測することができるツールです。
インストール方法は以下のとおりです。

インストール

# mkdir stream
# cd stream
# yum install -y gcc
# wget http://www.cs.virginia.edu/stream/FTP/Code/HISTORY.txt
# wget http://www.cs.virginia.edu/stream/FTP/Code/Makefile
# wget http://www.cs.virginia.edu/stream/FTP/Code/READ.ME
# wget http://www.cs.virginia.edu/stream/FTP/Code/mysecond.c
# wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c
# wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c.5.10
# wget http://www.cs.virginia.edu/stream/FTP/Code/stream.f
# gcc -O stream.c -o stream

実行方法

# cd ~/stream
# ./stream

実行結果

以下が実行結果の例です。今回は、Traid行のRate (MB/s)を結果としております。 下の例での結果は、12301.5148 (MB/s)となります。改めて数字を見て思いますが、メモリは超高速ですね。

Function      Rate (MB/s)   Avg time     Min time     Max time
Copy:       11485.3438       0.0028       0.0028       0.0029
Scale:      11423.7576       0.0028       0.0028       0.0029
Add:        12314.3062       0.0039       0.0039       0.0040
Triad:      12301.5148       0.0039       0.0039       0.0040


ネットワーク - iperf

iperfはネットワークの帯域を測定することができるツールです。
どのぐらいネットワーク帯域が流せるか、帯域の上限値を測定することで有名なツールです。
今回は、ニフティクラウドや国内外のサーバ上に、iperfを動作する環境を構築しています。
複数拠点から同時にトラフィックを流すことで、どのぐらいまで耐えうるのかを計測していきます。
なお、今回は計測しませんでしたが、TCP以外でもUDPでの測定も行うことができます。
インストール方法は以下のとおりです。

インストール

# yum install -y gcc-c++
# wget http://downloads.sourceforge.net/project/iperf/iperf-2.0.5.tar.gz
# tar xvzf iperf-2.0.5.tar.gz
# cd iperf-2.0.5
# ./configure
# make
# make install

実行方法

サーバー側(計測対象)とクライアント側で実行コマンドが異なります。
まず、サーバ側を起動したのちに、クライアント側を実行します。
今回は、サーバ側を1台、クライアント側は7台用意して、複数個所からの接続を想定して実行しました。
計測コマンドでは、-tオプションにて60秒間、-Pオプションにて、パラレル数を30としました。

サーバー側
# iperf -s
クライアント側
# iperf -c <<ipaddress>> -i 1 -t 60 -P 30

※<<ipaddress>>の部分にサーバーのIPアドレスを指定します
※デフォルトの設定ではクライアント側がポート5001(TCP)へ通信を行います。
 ファイアウォール機能やiptablesで制限を行なっている場合は解除した上で実行してください。

実行結果

以下が実行結果の例です。下記結果ですと、747Mbits/secとなります。 今回は、複数個所から同時に接続していますので、クライアント側のスループットを合算した値としています。

[  3]  0.0-10.0 sec   890 MBytes   747 Mbits/sec


おわりに

今回は、ニフティクラウドのCPU、メモリ、ネットワークのベンチマークをご紹介しました。
ベンチマーク結果から、仮想マシンではあるものの物理サーバと比較しても決して劣らない、ニフティクラウドの性能の良さをご確認いただけましたでしょうか
超高性能なCPU、メモリ、さらに超太いネットワーク基盤に魅力を感じていただけると嬉しい限りです。
ベンチマーク構築方法も記載していますので、今のサーバ環境との結果を比較してみると面白いと思います!

ニフティクラウドは、パブリッククラウドでありベストエフォート型のサービスです。
※上記ベンチマーク結果は2013年5月にeast-13にて実行した結果になります。
ベンチマークツールは、多大なる負荷をかける処理を行います。本番環境での実施はくれぐれも計画的に。