blog

新しいSkillGet: Yahoo Cloud Services Benchmarksでクラウドアプリケーションのパフォーマンスを測定する

同じクラウドまたは異なるクラウド環境で実行される異なるタイプのデータベース・アプリケーションのパフォーマンスを比較することは、特に困難な作業になります。この記事では、Yahoo Cloud Servi...

Jan 22, 2014 · 4 min. read
シェア
クラウド・コンピューティング・ベンダーのコスト比較は簡単ですが、アプリケーションのパフォーマンス比較はそれほど単純ではありません。同じクラウドまたは異なるクラウド間で実行される異なるタイプのデータベースアプリケーションのパフォーマンスを比較することは、特に困難です。Yahoo Cloud Service Benchmarkは、さまざまなクラウドコンピューティング・データベースのパフォーマンスと、実際の負荷がかかった状態での保存データのパフォーマンスを理解するのに役立つように設計されたテストフレームワークです。このテストフレームワークのソースコードはGitHubからダウンロードできます。
Yahoo Cloud Services Benchmarking Toolには2つの重要なコンポーネントが含まれています。ワークロード・ジェネレータと、ジェネレータによって生成されたワークロードのセット、そしてCassandra、DynamoDB、Hbase、MongoDB、Redis、OracleのNoSQLデータベースなど、多数のNoSQLデータベース用のインターフェイスです。もちろん、リレーショナル・データベース用のJDBCインターフェースも付属しています。
YCSB のようなデータベーステストベンチマークは、アプリケーションアーキテクチャの決定に直面した場合に特に有用です。たとえば、既存のデータベース・アプリケーションがパフォーマンス要件を満たさなくなった場合、ハードウェア・リソースの拡張または基礎となるデータベースの変更を検討する必要があります。ハードウェアを追加することで、ほぼ直線的な性能向上を達成できるのであれば、ハードウェアのスケーリングは適切な選択でしょう。しかし、ハードウェアのスケーリングが常に直線的なパフォーマンスの向上に役立つとは限りません。なぜなら、管理者が追加のハードウェアリソースをフルに活用できないアプリケーションには、他のパフォーマンスボトルネックが存在するからです。
データベースを変更する場合、特にリレーショナル・データベースをNoSQLデータベースに置き換える場合は、多くの選択肢から選ぶことができます。最初はパフォーマンスの向上が明らかでないかもしれませんが、NoSQLデータベースの特定のタイプは、それ自体を物語っています。例えば、ソーシャルネットワークの分析にはグラフデータベースが適しています。複雑なクエリ・アプリケーションをサポートする必要がない場合は、MongoDBのようなドキュメント・ストアよりも、CassandraやAmazon DynamoDBのようなキー・バリュー・データベースの方が適しているかもしれません。ベンチマークは、テストデータを通じて、どのデータベースがニーズに最も適しているかを決定するのに役立ちます。
YCSBを実行するための****ステップは、テストしたいデータベースのタイプと、そのデータベース上で実行したいワークロードを決定することです。データベースを作成したら、対象のワークロードに関連するプランを作成する必要があります。プランの実装の詳細は、データベースの種類によって異なります。たとえば、MySQLではデータ・テーブルを作成し、Cassandraではカラム・ファミリーとキー・バリュー・スペースを作成できます。
テストベンチマークはデータベースのパフォーマンスを比較するための優れたツールですが、ワークロードは実際の運用負荷と一致する必要があり、データベースを選択する際には、テスト結果以外にも考慮すべき設計上の考慮事項があります。YCSB が提供するコア・ワークロードを実行することも、独自のワークロードを作成することもできます。コア作業負荷は、読み取り/書き込み操作の特性が異なる6つの作業負荷セットで構成されています。ワークロードの中には、更新とアップグレードに重点を置いたものもあれば、読み取り操作のパフォーマンスをテストするものもあります。独自のワークロードを作成する場合は、既存のYCSBクラスを拡張してデータを生成し、読み取り/書き込み操作を実行するJavaアプリケーションを開発する必要があります。
ワークロードはパラメータ・スイッチを使用して設定するため、異なるスレッド数や時間あたりの実行回数でワークロードをテストできます。データを作成するインポートフェーズと、特定のワークロードの下でオペレーションを実行し、一連のパフォーマンス統計を出力する実行フェーズの2つのフェーズに分かれています。実行時間と単位時間あたりの実行に加えて、平均、****、最小、95パーセンタイル・レイテンシ、99パーセンタイル・レイテンシなど、多くのレイテンシ測定があります。
既製のアプリケーションを使用している場合、パフォーマンスモニタリングツールからデータを収集し、アプリケーショ ンでどのように読み取り、書き込み、更新操作が実行されるかを判断することが可能かもしれません。リレーショナルデータベースを使用している場合、最も頻繁に実行され、最も長い時間実行されるクエリに特に注意す る必要があります。
カスタムワークロードで使用するのに適した候補があります。
新しいアプリケーションを開発する場合、そのアプリケーションを本番稼動させる前に、一連のテストベンチマークを実行し、本番稼動時のさまざまな負荷に対して評価する必要があります。これは、異なる条件下で異なるデータベースの性能を評価するための貴重な情報を提供します。設計要件の一部として発生するピーク時の作業負荷だけでなく、常に中程度の作業負荷の下で何が起こるかを確認したい場合、両方のシナリオについてテストすることができます。理想的には、選択したデータベースが想定されるすべての条件下で優れた性能を発揮することです。
また、使用頻度に基づいてデータベースを選択する必要があります。あるデータベースが、想定されるほとんどの作業負荷では良好な性能を発揮できても、設計範囲外の作業負荷やたまに発生する作業負荷では性能が低下する場合は、そのデータベースを選択することをお勧めします。
Read next

クラウドはITの最終進化形 ストレージ技術がカギを握る

クラウドにとってデータは非常に重要であるため、ストレージはIPネットワークに基づく新しいコア・アーキテクチャに進化する必要があります。新しい技術を手にした革新的な企業が、今後のクラウド進化の鍵を握るでしょう。

Jan 21, 2014 · 2 min read