OpenStackとAPIパフォーマンス測定

OpenStackのパフォーマンスを測定を考えると様々な側面での測定があります。ゲストOSのCPU、NW、ストレージのパフォーマンスを測定する場合や、MariaDB / Rabbit MQ / Mongo DBがどの程度の処理を行えるかを測定する場合もあります。あるいはOVSのスイッチング性能や、L3性能の測定もあります。今回はOpenStackがどの程度APIコールを処理出来るかを測定したいと思います。OpenStack側で最大APIコール数のLimitを設けている場合もあるので測定時は注意ください。

APIコールの測定

OpenStackはRESTのAPIを提供していますので、APIコール数を測定したい場合はJMeterで計測する事や、Pythonでスクリプトを組んで測定する事も出来ます。今回はMirantisがメインに開発しているOpenStack用の計測ソフトウェアであるRallyを使ってみたいと思います。

Rallyのセットアップ

Rallyのセットアップを行ないます。詳細は以下を参考にしていただけたらと思います。Rally自体はGUIを持ちませんが、結果の出力はHTMLで可能です。

http://rally.readthedocs.org/en/latest/tutorial.html

Rallyのインストール

以下のコマンドでインストール出来ます。

# git clone https://git.openstack.org/stackforge/rally
# ./rally/install_rally.sh

RallyからOpenstackへの接続

以下のコマンドで設定されている環境変数から自動的に設定情報を取ってくる方法です。Packstackで生成されるkeystonerc_adminを使う事を想定してますがdevstackでopenrcを使っても構いません。

# source keystonerc_admin
# rally deployment create --fromenv --name=cloud01

以下のコマンドで接続の状態を確認出来ます。

# rally deployment check

ベンチマークの開始

rally/samples/tasks/scenarios 内にサンプルのベンチマークファイルがあります。jsonやyamlの形式でベンチマークシナリオは定義可能です。以下はNWの作成と削除を繰り返すサンプルを選んでいます。仮想マシン作成のサンプルも有りますが事前の設定が必用なので今回は簡単に実行出来るNWの設定を選んでいます。

# rally task start rally/samples/tasks/scenarios/neutron/create_and_delete_networks.json

結果の取り出し

測定結果の表示で、取り出し方法が出力されます。以下は最後に実行したベンチマーク結果を取り出すコマンドです。

# rally task report --out=report1.html --open

まとめ

Rallyは簡単にセットアップ出来てすぐに使い始められます。また今回は取り上げませんでしたが、復数のOpenStackに接続したり、復数のシナリオのタスクを実行したりと様々な状況に対応できます。またSLAを事前に設定しておいてSLA要件を満たしているかチェックさせる事も可能です。Rallyは純粋な性能測定以外にも、OpenStackパッケージをビルドしてCIツールでのチェックの一部としてや、動作中のクラウドがSLA要件を満たしてるか定期的に確認する場合にも使えそうです。

広告
OpenStackとAPIパフォーマンス測定

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中