JMeterでクラウドサービスの負荷試験を実施してみました
キーワード:AmazonWebServices , cloudn , TechBlog , クラウドサーバー
サーバーがどの程度の耐久性があるのか知るためには、負荷試験を実施する必要があります。今回、ウェブアプリの負荷測定ツールとして有名なJMeterを利用してクラウドの負荷を測定してみました。負荷試験を行う環境は、オブジェクト指向スクリプト言語であるRubyでクローラーを作成し、そのクローラーがサーバーのデータを短周期で取得するようにします。実際のサイトを使うと、そのサイトに負荷をかけますので、迷惑をかけないように、テストサーバーを構築しました。クラウドのサーバーは様々な企業がサービスを提供していますが、お試しで行うためワンコイン(500円)でスタートできるNTTコミュニケーションズが提供するCloudnを試してみました。果たしてcloudnは耐久性が高いのでしょうか。
目次
1. JMeterとは
2. テストサーバー構築
3. クラウドの負荷測定
4. まとめ
1.JMeterとは
Jmeterはウェブアプリの負荷を測定するツールです。Jmeterを使うために、Jmeterをインストール先(http://jmeter.apache.org/download_jmeter.cgi)からダウンロードし圧縮ファイルを解凍すれば完了です。なおJmeterはJavaの実行環境が必要なためJDKもインストールする必要があります。私は、JDKはインストール済みのため不要です。
ApacheJMeter.jarをダブルクリックすればJMeterが起動されます(図1)。テスト計画を選択した後に、追加でスレッドグループを選び設定します。次にスレッドグループからHTTPリクエストを追加します(図2)。これでJmeterの準備は完了です。
2.テストサーバー構築
負荷試験を行うために、オブジェクト指向スクリプト言語であるRubyでクローラーを作成し、テストサーバーのデータを短周期で取得するようにします。実際のサイトを使うと、そのサイトに負荷をかけますので、迷惑をかけないように、テストサーバーを構築することにしました。
テストサーバーの構築方法は、Cloudnのカレントディレクトリに文字情報のみ表示するサイトを作るという方法です。ブラウザでIPアドレスを入力すれば、サイトが表示されます。このサイトをクローラーが再帰ダウンロードするという内容です。
3.クラウドの負荷測定
準備は整いましたので、JMeterを使い実際にサーバーの負荷を測定してみました。図2のJMeter画面で実行メニューから開始を選択し負荷測定を開始しました。JMeter画面に実行中表示が出ました。リクエストがあると実行時間などが表示されています。予定時間を経過し終了です。
Rubyによるクローラーが定期的に巡回しているため、かなりの負荷をかけていることが予想されました。しかし、最初のアクセスは数百ミリ秒かかっていますが、その後は数ミリ秒で終わっています。リクエスト実行中にコマンドで仮想サーバーの負荷を表示させましたが、スカスカの状態でした(図3)。
4.まとめ
以上がJMeterでクラウドサービスの負荷試験を実施した内容です。まず今回はJmeterのインストールと設定を行いました。次にRubyでクローラーを作成し、サーバーのデータを短周期で取得するようにしました。実際のサイトを使うと、そのサイトに負荷をかけますので、迷惑をかけないように、テストサーバーを構築しました。これは非常に簡単にできました。準備は整いましたので、負荷試験を行いました。当初は、クローラーが短周期で巡回しているのでかなりの負荷をかけているはずと想定していましたが、JMeterで測定すると極めて軽い負荷でした。したがって、cloudnは耐久性があると評価できます。