ほとんどすべての設定をコマンドライン引数で行えるという点で、Siegeはhttperfに似ている。しかし、Siegeではマルチスレッド処理によって要求を送信するほか、低レベルのオプションがhttperfよりも少なく、URLのリストを対象としたテストを実施できる。また、各オプションに分かりやすい名前がついているので、httperfより使いやすい。
デフォルトのパラメータ設定でSiegeを実行するには、単純に次のようにする。
siege localhost
ただしこれでは、リストにした複数のURLを対象として、実環境のユーザーが引き起こすような不確定性の高い状況でのテストが可能なSiegeの特長を生かしきれない。Siegeの作者は、URLの収集用にSproxyという支援ツールを提供している。このツールは、インストール後に次の形で実行する。
sproxy -v -o urls.txt
すると、実行したターミナルの画面に、収集されたすべてのURLが表示されるとともに、それらのURLがurls.txtというファイルに書き込まれる。
ブラウザの設定でHTTPプロキシを「localhost:9001」にした上で、サイトの閲覧を開始しよう。すると、Siegeで用いるURLの情報がSproxyによって記録される。
テスト用のURLが集まったら、次のようにして、テストの実行に移る。
siege -v --internet --file=urls.txt
「--internet」引数を指定すると、Siegeはurls.txt内のURLを(多くのインターネット利用者と同じように)ランダムに使用する。
Tsungは、URLが列挙されたファイルを用いるところはSiegeに似ているが、ユーザーエージェントのランダムな切り替え、疑似的なセッションの生成、動的なデータのフィードバックなど、より高度な機能を備えている。また、Erlangのグリーンスレッド(Green Threads)の利用により、パフォーマンス的にも優れている。
しかし、Tsungの利用は面倒だ。Siegeやcurl-loader、httperfと違い、コマンドラインからは実行できない。「~/.tsung/tsung.xml」というシナリオファイルを手作業で、あるいはレコーディングモードを使って作成する必要がある。このモードはSiegeのSproxyに似ており、次の手順で実行する。
一番難しいのは、手順2の設定ファイルの作成だ。Tsungの高度な機能を利用するには、どうしても設定ファイルの書式の理解が必要になる。
なお、TsungではPostgreSQLやJabberのサーバに負荷をかけることもできる。
ここで紹介したツールにはそれぞれ長所と短所がある。すべてに共通しているのは、詳しいドキュメントがあり、容易にインストールできて、動作が安定していることだ。
各自の環境に合ったツールを見つけるには、次の順で試すとよいだろう。まずはシンプルなSiegeを使ってみて、そのパフォーマンスと機能に満足できるか確かめる。それでだめなら、もう少し機能が豊富で高速なhttperfを試してみる。もっと複雑なシナリオ設定が必要であれば、最高の機能とパフォーマンスを備えたcurl-loaderやTsungに換えてみる。ただ、特にTsungの方は慣れるのに時間が掛かるだろう。
同じ用途のアプリケーションはほかにも数多くあるが、GUIベースのものはApache JMeterしかない。JMeterは機能面でも充実しており、コンテンツの前処理や後処理といった独自の機能も見られる。GUIアプリケーションがよければ、こちらを試すとよい。
Leslie P. Polzerは、動的Webサイトの開発を専門としてフリーランスで活動。
プログラミングの最新動向を知りたければ「Programing Bible」にお進みください。あなたの仕事を楽にするツールを多く紹介しています。
Copyright © 2010 OSDN Corporation, All Rights Reserved.