Siege は、オープンソースの回帰テストおよびベンチマーク ユーティリティです。ユーザーが定義した数のシミュレート ユーザーを使用して単一の URL をストレス テストすることも、多数の URL をメモリに読み込んで同時にストレス テストを行うこともできます。このプログラムは、記録されたヒットの合計数、転送されたバイト数、応答時間、同時実行性、および戻りステータスを報告します。 Siege は、HTTP/1.0 および 1.1 プロトコル、GET および POST ディレクティブ、Cookie、トランザクション ログ、および基本認証をサポートしています。その機能はユーザーごとに構成可能です。
ほとんどの機能は、プログラムの呼び出しの複雑さを最小限に抑えるためのデフォルト値も含まれるコマンド ライン オプションで構成できます。 Siege を使用すると、n 人のユーザーがいる Web サーバーに t 回ストレスをかけることができます。n と t はユーザーが定義します。テストの継続時間と各単一トランザクションの継続時間が記録されます。トランザクションの数、経過時間、転送バイト数、応答時間、トランザクション レート、同時実行数、およびサーバーが OK (ステータス コード 200) と応答した回数が報告されます。
Siege は、Armstrong World Industries のウェブマスターとしての地位にある Jeffrey Fulmer によって設計および実装されました。これはリンカーン・スタインの Torture.pl を部分的にモデルにして作られており、データレポートはほぼ同じです。しかし、torrent.pl では、多くの URL を同時に強調することはできません。その必要性から包囲が生まれました...
HTTP サーバーがプログラムによって攻撃されている場合、そのサーバーは「包囲下にある」と言われます。
Siege は、Web 開発者と Web システム管理者の両方を対象に書かれています。これにより、これらの個人が強制的にプログラムやシステムをテストできるようになります。 Web プロフェッショナルとして、あなたは製品の完全性に対して責任を負いますが、誰が製品にアクセスするかを制御することはできません。トラフィックの急増はいつでも発生する可能性があります。準備ができているかどうかはどうやってわかりますか?
Siege を使用すると、これらのプログラムを強制状態に置くことができ、スタンドによってどのような負荷がかかるかをより深く理解できるようになります。サイトの現在のピークが 250 である場合、サイトが 400 の同時トランザクションの重量に耐えられることがわかれば、よく眠れるようになります。
トランザクションは、サーバーがクライアントのためにソケットを開き、リクエストを処理し、ネットワーク経由でデータを提供し、完了時にソケットを閉じることによって特徴付けられます。人間のインターネット ユーザーは、戻ってくるデータを消化するのに時間がかかることに注意することが重要です。 Siege ユーザーはそうではありません。実際に、400 人の同時包囲ユーザーは、実際のインターネット セッションでは少なくともその 5 倍に相当することがわかりました。これが、Siege で遅延 ( --lay=NUM ) を設定できる理由です。設定すると、各 Siege ユーザーは 1 から NUM までのランダムな秒数だけスリープします。サーバー ログを通じて、ページに費やされた平均時間を取得できるはずです。インターネット アクティビティをシミュレートするときは、その数値を遅延に使用することをお勧めします。
siege の最新バージョンは匿名 FTP 経由で入手できます: http://download.joedog.org/siege/siege-latest.tar.gz
ソース リポジトリは GitHub にあります: git clone https://github.com/JoeDog/siege.git
ここでブラウザで表示できます: https://github.com/JoeDog/siege
アップデートとお知らせは JoeDog 経由で配信されます: http://www.joedog.org/
Siege は GNU autoconf を使用して構築されました。 GNU ソフトウェアに精通している場合は、siege を簡単にインストールできるはずです。詳細については、ファイル INSTALL を参照してください。
HTTPS サポートを有効にするには、openssl と openssl-devel の両方をシステムにインストールする必要があります。
gzip 転送エンコーディングを有効にするには、zlib と zlib-devel の両方がシステムにインストールされている必要があります。
すべての前提条件はコンパイル時にインストールする必要があります。 siege がコンパイルされた後にライブラリを追加する場合は、./configure、make、make install を再度実行する必要があります。
Siege の前提条件は依存関係ではありません。これらのライブラリが存在しない場合でも、アプリケーションはコンパイルして機能します。これらの機能は単に含まれていません。
ドキュメントは man ページ siege(1) Laingsiege(1) で入手できます。このディストリビューションには HTML マニュアルが含まれています:manual.html
包囲に関する完全なドキュメントは、www.joedog.org でご覧いただけます。
完全なライセンス情報については、COPYING ファイルを参照してください。
著作権 (C) 2000-2023 by Jeffrey Fulmer [email protected]
著作権表示とこの許可通知が保存され、受信者に再配布の許可が与えられる限り、受信したこの文書のそのままのコピーをあらゆる媒体で作成または配布することが誰にでも許可されます。
上記の条件の下で、このドキュメントの修正版またはその一部を配布する許可が与えられます。ただし、最終変更者を示す目立つ通知を掲載する必要があります。
また、著作権者は、特別な例外として、各ソース ファイルに記載されている一定の条件の下で、このプログラムの一部のコードを OpenSSL ライブラリとリンクし、両者を含むリンクされた組み合わせを配布することを許可します。
OpenSSL 以外で使用されるすべてのコードについては、あらゆる点で GNU 一般公衆利用許諾書に従う必要があります。この例外を含むファイルを変更する場合、この例外をファイルのバージョンに拡張することができますが、そうする義務はありません。
そうしたくない場合は、この例外ステートメントをバージョンから削除してください。プログラム内のすべてのソース ファイルからこの例外ステートメントを削除する場合は、ここでも削除します。