KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

負荷試験について


 

こんにちは!最近アナログ系のボードゲームにハマっています。中薗と申します_(:3」∠)_
友達と集まったときなんかに、ルールがシンプルですぐに出来るゲームがあるとなかなか楽しいですよ。

さて今回は、サービスの可用性を担保する上で必要不可欠である
「負荷試験」についてお話したいと思います。

負荷試験とは、そのシステムが実際の業務に耐えうる性能を持っているかを検証するため、
システムに対して擬似的に大量アクセスを発生させ、反応を測定する試験です。

普段は何の異常もなく稼動しているシステムでも、不意に多量のアクセスが集中したり
負荷の高い処理がたくさん要求されると、システムが停滞してしまったり、
異常な動作を引き起こしてしまうことがあります。

負荷テストが行われることによって、アクセスがどれだけ増えると
レスポンスが低下したりシステムがダウンしたりするのかを確認することが出来るのです。

負荷試験を行うためには、その用途のために作られた「負荷試験ツール」を導入する必要があります。有名な負荷試験ツールには、以下のようなものがあります。

 

1. Apache JMeter
http://jmeter.apache.org/

JMeter

JMeterはJakartaプロジェクトが開発している無償の負荷テストツールです。
GUIインターフェースを使ってかなり細かく負荷テストのシナリオを設定することが出来ます。
WebアプリケーションおよびWebサーバの性能測定に広く利用されていますが、
それ以外にもデータベースサーバ、LDAPサーバ、メールサーバなど
かなり幅広い用途での負荷試験を行うことが出来ます。
使用者が多いため、各種Webサイトや書籍などが充実しているのも利点です。

2. Apache Bench (ab)
http://httpd.apache.org/docs/2.2/programs/ab.html

Apache Bench

Apache Bench (ab)は、Apacheに標準で付属している負荷試験ツールです。
同時接続数とリクエスト数とURLを指定すれば、性能が測定できます。
特別な設定作業などをしなくても、Apacheがインストールされていれば
WebアプリケーションおよびWebサーバの性能測定を行うことが出来るのが大きな利点です。

3. Gatling
http://gatling-tool.org/

Gatling

Gatlingは、近年登場してきた比較的新しい負荷試験ツールです。
シナリオをScalaによる内部DSLで記述します。
シナリオを実行した結果のレポートが非常に見やすく、
レスポンスタイムの最小・最大・平均だけでなく、標準偏差・P値まで出し
グラフによる可視化も行ってくれるため、
これまでの負荷試験ツールでよくあった「試験結果の可視化がすげー面倒くさい!」
という問題から解放してくれます。
もちろんこの他にもたくさんの負荷試験ツールがあり、それぞれのツールの
利点・欠点も違っているので、用途に応じて各ツールを使い分けていくと良いかと思います。

それではまた次回!!

 

【関連記事】
サーバの冗長化について①
サーバの冗長化について②
ロードバランサについて