本文へジャンプします。

TOP
クラウド トップ>クラウドナビ>基礎知識>ベンチマークを活用して、クラウドの性能を確認しよう

基礎知識

ベンチマークを活用して、クラウドの性能を確認しよう

2020年12月8日


ベンチマークを活用して、クラウドの性能を確認しよう

コンピューターの世界において、ハードウエアやソフトウエアの性能を計測し、数値化することを「ベンチマーク」と呼んでいます。身近な所では、PCのCPUの性能を比較するような用途にもベンチマークは利用されています。近年のCPUは非常に複雑化しているため、単純にコア数や動作クロック周波数を見ただけでは、正しく性能を比較することができません。そこで、実際にプログラムを動かしてみた時のパフォーマンスを計測し、その結果(ベンチマーク結果、ベンチマークスコアとも)を比較することが重要となるのです。

クラウドでシステムを設計する際にも、ベンチマークの結果は非常に重要な指標となります。もちろん、システムへの負荷を気にする必要がないほど小規模なシステムであれば、そこまで神経質になる必要はありません。しかし、高い負荷のかかる大規模なシステムであれば、システムの許容量を見積もる材料として、採用する製品のベンチマーク結果を確認しておくことが重要です。

高負荷の処理が必要なシステムとは

システムは、多くのユーザーを抱える大規模なシステムになればなるほど、負荷も高くなる傾向にあります。具体的には、大企業の基幹システム、アクセス数の多いECサイト、プレイヤー数の多いソーシャルゲームなどが該当します。

利用するユーザーの規模が大きければ、万が一のパフォーマンス低下時やシステムダウン時の影響も広範囲におよび、ビジネスへの影響もそれに従って大きくなってしまいます。システムへの負荷が許容量を越えてダウンしてしまったというような事態を招かないためにも、システムに必要な要件をきちんと見積もり、それを満たせるだけのスペックを用意する必要があるでしょう。

なお、一口に高負荷の処理が必要なシステムと言っても、具体的にどのような負荷がかかるかは、システムの用途によって異なります。

例えば、セール時のECサイトやイベント時のソーシャルゲームなどは、短時間に大量のリクエストがデータベースサーバーに対して発生するでしょう。また、企業が話題の新製品を発表する時などは、情報解禁の瞬間からWebサーバーに対して、大量の同時アクセスと高いネットワークトラフィックが発生します。それ以外にも、システムの内部的な動作によって高負荷が発生することも考えられます。定期的に実行されるデータの集計処理やバックアップ処理によって、高負荷のアラートが発生してしまうのも運用でよくあるケースの1つです。

「鎖は一番弱い輪から切れる」の例え通り、システムは最も弱い部分からダウンしてしまいます。 そのためにもシステムの急所となる部分を見極めることが大切です。

指標となる3つの性能とは

システムの性能の指標となる要素は、大きく「CPU」「ディスク」「ネットワーク」の3つです。構築するシステムの特性と要件にあわせて、必要とされる要素を洗い出し、要求されている性能を満たせるか確認しましょう。

CPU性能は、データを演算する能力です。フロントエンドのアプリケーションなど、リクエストを元に何らかの処理を行うアプリケーションは、すべてCPUを利用します。その中でも、最近流行のAI(人工知能)などは、CPU性能が特に重要となるアプリケーションの1つです。

ディスク性能は、データを高速に保存したり、読み出したりする能力です。頻繁にデータが更新されるデータベースなどでは、ディスク性能が重要となります。ディスクは、CPUやメモリに比べると非常に低速なため、特に大量のデータの書き込みを行う処理では、ディスク性能がボトルネック(システム全体の足を引っぱる箇所)となりやすいため、注意が必要です。

ネットワーク性能は、データを高速に転送する能力です。動画の配信や大規模なデータを別リージョンにバックアップするなど、サイズの大きなデータを転送する必要があるのであれば、ネットワーク性能も十分考慮する必要があるでしょう。

スペックだけで判断せず、実際に検証を

クラウド事業者によっては、提供するサーバーのコア数や動作クロック周波数、ディスクのIOPSといった性能指標を公開しているケースがあります。しかし、カタログ上の数値がシステムの要求する要件を満たしたからといって、実際に構築したシステム上で、アプリケーションが想定通りのパフォーマンスを発揮するとは限りません。システムをクラウド上に構築する、あるいはクラウドへ移行するといった際には、一般的なベンチマークツールを利用して、候補となるクラウド環境と現環境それぞれを測定し、比較することが大切です。しかし、システムの用途によって、かかる負荷の特性は異なるため、CPUの演算性能やディスクのIOPSといった汎用的なスコアリングの比較だけでは、十分とは言えません。

データベースを例にとると、リアルタイム制のソーシャルゲームではマスターデータベースへの更新が大量に発生し、ここの排他ロックやディスク書き込みがボトルネックとなる可能性があります。これを解決するには、マスターデータベースのCPUやディスクをより高性能なものにする(スケールアップ)必要があります。対してECサイトであれば、データベースへのリクエストの大多数は商品の検索クエリとなるため、負荷が大きくなってもリードレプリカの台数を増やす(スケールアウト)だけで解決してしまうことも珍しくありません。同様にフロントエンドのアプリケーションでも、計算処理が重く、CPUのシングルスレッド性能が重要なシステムと、大量の並列アクセスを処理するシステムでは、負荷のかかり方や、その解決方法も異なってきます。

そこで、実際にシステムが利用されるシナリオに沿って負荷を再現する検証環境を用意し、レスポンスやバックアップといった実処理にかかる時間などを検証することをお勧めします。とはいえ、本番想定のシステムに本番と同じだけの負荷を発生させるのは、手間も時間もかかってしまうでしょう。システムの規模や予算を考慮した上で、どこまで厳密な試験を行うか、あるいはどこで折り合いをつけるのかを判断することも大切です。

ニフクラでは、実際にベンチマーク測定ツールにて取得した、ニフクラおよび国内外クラウドサービスのベンチマーク結果を公開しています。また、ニフクラで提供中のサーバータイプ(Type-c、Type-e、Type-h)についても、各ベンチマーク測定ツールにて取得した結果を公開しています。利用するサーバータイプを選定する際の参考にしてください。

カタログスペックではわからない、「高性能なニフクラ」のご利用をぜひご検討ください。

  • このエントリーをはてなブックマークに追加