本文へジャンプします。

ニフティクラウドと物理サーバーを比較する(CPU編)

日本仮想化技術の宮原です。
ネットワーク、ストレージとベンチマークを行ってきたので、今回はCPUのベンチマークを行ってみたいと思います。

CPUの性能は、仮想化されて動作しているクラウド環境でも、比較的オーバーヘッドが少なく、サイジングが容易な要素といえます。

それでも、ニフティクラウドではサーバーの種別によって仮想vCPU数が異なっていますし、コストパフォーマンスの高いType-eとType-hがあるので、どのサーバーを選択すれば良いか分からない人も多いのではないでしょうか。

そこで、実際の物理サーバーのCPUベンチマークの結果と比較しながら、CPU性能のサイジング方法について解説していきます。

CPU性能の考え方

まずCPU性能ついて記述していきます。CPU性能を決定づけるものは、おおむね以下の点になります。

  • CPUの種類、世代
  • クロック数
  • コア数
  • スレッド数

CPUの種類、世代

サーバーで使用されるCPUにはIntelのXeonやAMDのOpteronなどがありますが、そのCPUがリリースされた時期などによって性能が異なっています。

たとえば、IPC(Instructions Per Clock cycle)と呼ばれるクロックあたりに実行できる命令数などがCPUの種類、世代によって異なるため、同じクロック数でも処理性能が異なる場合があります。

その他にも、CPUに内蔵されているキャッシュ容量やNUMA(Non-Uniform Memory Access)構成など、CPU性能を左右する要素は多々あります。

ただし、少々乱暴な言い方ですが、性能が2倍も3倍も異なるものではありません。

また、新しいCPUの方が性能が良くなっていることがほとんどなので、古いCPUから新しいCPUに載せ替えていくのであれば、CPUサイジングの際にあまり厳密に考える必要はないでしょう。

クロック数

CPUクロック数は、CPUサイジングにおいて最も分かりやすい指標となります。

ただし、最近のCPUはクロック数の上限が頭打ちになっていることもあり、消費電力や発熱を抑えるためにクロック数は抑え目で、プロセッサーあたりのコア数を増やす傾向にあるようです。

コア数

以前は、1つのCPUパッケージには1つのCPUコアが搭載されているのが普通でしたが、現在では、1つのCPUパッケージに複数のCPUコアが搭載されているのが当たり前となりました。

OS上でマルチプロセスにプログラムを実行する場合、あるいはプログラムが内部でマルチスレッドを利用して並列処理を行う場合、CPUコアが多い方が性能的に有利になります。

逆の言い方をすれば、同時並行で動作するプロセスの数が多くなかったり、プログラムがマルチスレッドに対応していなければ、いくらCPUコア数を増やしても遊んでいる(Idle状態)になるだけなので、性能は向上しません。

マルチコアが有効に働いているかどうかは、OS上の性能モニタリングツールを使って各CPUコアの使用状況を見れば判断できるでしょう。

また、プロセスモニターを使えば、動作しているプロセス数やスレッド数を確認できます。

スレッド数

CPUにおけるスレッド数は、Intel Xeonなどに搭載されている「Hyper Threading」のような技術を指します。

これはCPUコアの内部的な処理において発生する、何もしていない時間に別の処理を行わせるための技術(SMT:Simultaneous Multithreading)です。

見かけ上、CPUコア数が2倍になるように見えますが、実際の性能向上は良くて30%程度の向上に留まります。

どの程度の性能向上があるかは実際に動かしてみないと分かりません(場合によってはまったく性能向上しない)ので、CPUサイジングの際には「ボーナス」の性能向上分として計算に含めないでおくことも多々あります。

これらを踏まえて、実際にCPUのベンチマークテストを行い、性能の傾向を探ってみましょう。
先に結果の表とグラフを出しておきますが、テストの順を追って説明していきます。

ニフティクラウドと物理サーバーを比較する(CPU編)

CPU種別/サーバータイプ Single(Score/MHz) Multi(Score/MHz) CPU詳細
E5500 0.32 0.30 E5506 2.13GHz(4core)
E5 0.35 0.34 E5 2630 2.3GHz(6core/12Thread)
e-small4 0.36 0.19 E5 2690 v2 3GHz(1vCPU,Type-e)
small4 0.47 0.44 E5 2690 v2 3GHz(1vCPU,Type-h)
medium4 0.48 0.42 E5 2690 v2 3GHz(2vCPU,Type-h)

物理サーバーのベンチマーク

まず、物理サーバーのベンチマークを行います。
OSには、Windows Server 2012 R2、ベンチマークには、CPU-Zを使用しました。

CPU-Zのベンチマークは、かなりシンプルなベンチマークとなっているので、CPUの単純な性能を測定していると考えてください。

実際のCPU処理には、CPUとしての演算処理だけでなく、メモリアクセス、ディスクやネットワークなどのI/Oなどが影響するため、データベースなどのアプリケーションを動作させて負荷の高い処理を行わせる場合には、実際の処理を行って比較する必要があります。

CPU-Zのベンチマーク結果は、CPUコアの単体性能とマルチスレッドで並列処理を行わせた場合の性能の2つをスコア化して表示してくれます。

cpuz

cpuz-bench

今回は用意できたマシンのCPUが2種類ありましたが、CPUクロック数やコア数、スレッド数が異なるので、それぞれの結果に対してCPUクロック1MHzあたりのスコアを算出して相対的な比較をしています。

用意したCPUは、Intel Xeon 5500番台の世代とXeon E5の一番最初の世代(v1)になります。
この間に、Xeon 5600番台の世代が入るので、2世代離れていることになります。

大体、10%程度クロックあたりの性能が向上しているのが分かります。
Xeon E5にはHyper Threadingが搭載されていますが、大体30%程度の性能向上があるとして計算しています。

CPU種別 Single(Score/MHz) Multi(Score/MHz) CPU詳細
E5500 0.32 0.30 E5506 2.13GHz(4core)
E5 0.35 0.34 E5 2630 2.3GHz(6core/12Thread)

Type-eとType-hを比較

次に、ニフティクラウド上にもWindows Server 2012 R2のサーバーを用意し、同じくCPU-Zでベンチマークを行います。
最初に、仮想vCPUが1つメモリが4GBのe-small4とsmall4のサーバーで比較してみます。

結果を見ると、Type-eのサーバーはCPU性能に制限がかかっており、CPUコアの単体性能も抑え目であること、さらにマルチスレッドの処理を行うと1つの仮想vCPUで複数の処理を切り替えて行っているため性能の上限に突き当たり、見かけ上の性能が低下している(スコアが低くなる)と思われる結果になりました。

一方、Type-hの方はCPU性能に特別な制限がかかっていないためか、単体性能、マルチスレッド性能に大きな差違は認められません。

また、CPUもXeon E5 v3とさらに世代が新しくなっているため、クロックあたりの性能が向上しているのが分かります。

Intel Xeon 5500番台の世代と比べると、約45%ほど性能が向上しています。

サーバータイプ Single(Score/MHz) Multi(Score/MHz) CPU詳細
e-small4 0.36 0.19 E5 2690 v2 3GHz
(1vCPU,Type-e)
small4 0.47 0.44 E5 2690 v2 3GHz
(1vCPU,Type-h)

複数vCPUの性能向上

では、サーバーに複数仮想vCPUを割り当てると性能はどう変化するでしょうか。

メモリ容量は変更せず、仮想vCPUを2つ割り当てたmedium4のサーバーでテストを行います。

すると、CPUコアの単体性能はそれほど変わりませんが、マルチスレッド処理の結果はおよそ1.9倍となりました。

CPU数を増やせば正比例で性能が向上するわけではありませんが、かなり良好な性能向上結果が得られています。

複数のプロセスが同時並行で動作したり、マルチスレッドなプログラムを動作させる上で性能が不足するような場合には、サーバーへの仮想vCPUの割当数を増やすことで性能向上を見込むことができるので、システムの負荷状況に応じてサーバーの種類を変更することも考えてみる価値はありそうです。

サーバータイプ Single(Score/MHz) Multi(Score/MHz) CPU詳細
small4 0.47 0.44 E5 2690 v2 3GHz
(1vCPU,Type-h)
medium4 0.48 0.42 E5 2690 v2 3GHz
(2vCPU,Type-h)

どのようにCPUサイジングを行うか

結果から見て分かる通り、ニフティクラウドでは新しい世代のCPUを使用しているので、古い物理サーバーから移行するのであれば単純にクロック数だけで比較してもお釣りがくる計算になります。

また、今回はCPUの全力性能を測定するベンチマークでしたが、実際のアプリケーションでは驚くほどCPUの使用率は低いものです。

統計的には20%から30%程度と言われますが、安全率を多めに見込みたいのであれば50%程度でも良いでしょう。

現在使用している物理サーバーのCPUの性能を、以下の数式で導き出します。

クロック数(MHz)×コア数×0.5=必要CPU性能(MHz)

ニフティクラウドは、3GHzのCPUを使っているので、必要CPU性能を3GHz(3000MHz)で割ることで、仮想vCPUがいくつ必要になるか割り出すことができます。

もし、必要な仮想vCPU数が、0.5以下になるようであれば、Type-eのサーバーを選択できるでしょう。

いずれにしろ、CPUのサイジングは実際にアプリケーションを動かしてみないと分からない事も多々ありますので、本格的な移行を行う前に上記のような指標をベースに仮のクラウド設計を行い、テスト的にニフティクラウド上で主要なアプリケーションを動かしてみて、性能的に問題がないかを検証するのが、失敗せずにクラウド移行を実現する近道といえるでしょう。

注:ニフティクラウドでは、CPU型番などの情報を公開していませんので、計測したゾーンやサーバーよって異なる場合があります。
注:本計測は、あくまで筆者の環境を使った計測時点での値であり、計測環境・計測時間によって異なる場合あります。参考程度に留めておいてください。

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

福澤真

福澤真

ニフティクラウドのコンパネ開発、運用をしています。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。

世良迪夫

世良迪夫

ニフティクラウドのRDBなどを担当しています