Siege は、負荷がかかった状態での Web サーバーのパフォーマンスと安定性をテストするために使用される強力なベンチマーク ツールです。複数のユーザーが同時に Web サイトにアクセスすることをシミュレートし、サーバーが大量のトラフィックを処理する方法について貴重な洞察を提供します。Siege は基本的な HTTP/HTTPS プロトコルをサポートし、GET、POST、およびその他のリクエスト メソッドを実行できます。ストレス テスト、パフォーマンス チューニング、Web アプリケーションがピーク負荷を処理できることの確認に広く使用されています。
Ubuntu 24.04、22.04、または 20.04 に Siege をインストールするには、主に 2 つのオプションがあります。コマンドライン ターミナルを使用して Ubuntu のデフォルト リポジトリからインストールするか、最新バージョンと追加機能のためにソースから直接 Siege をダウンロードしてインストールします。このガイドでは、両方のインストール方法について説明します。
Siege をインストールする前に Ubuntu を更新する
Ubuntuシステムが最新のパッケージで最新の状態であることを確認することは、効率的で安全で信頼性の高いコンピューティング環境を維持するために重要です。次のコマンドを実行すると sudo apt update
システムのパッケージ リストが更新されます。
これを実行するコマンドは次のとおりです。
sudo apt update && sudo apt upgrade
攻城兵器の設置方法を選択
オプション 1: Ubuntu のデフォルト リポジトリ経由で Siege をインストールする
Siege は、便利なベンチマーク ツールとして Ubuntu のデフォルト リポジトリに含まれています。これによりインストール プロセスが大幅に簡素化され、Ubuntu に組み込まれているパッケージ管理ツール (APT) を使用してインストールを実行できるようになります。
コマンド sudo apt install siege は、APT システムをトリガーしてリポジトリ内の Siege パッケージを検索し、依存関係を処理し、システムに Siege をインストールします。先頭の「sudo」は、システム全体のインストールに必要なルート権限でコマンドを実行できるようにするため必要です。
Siege をインストールするには、次のコマンドを入力します。
sudo apt install siege
オプション2: ソース経由でUbuntuにSiegeをインストールする
Siege をソース コードからコンパイルする方法は、最新の機能や改善点を常に把握したい方に最適です。この方法では、最新のソース コードを取得して手動でコンパイルするため、Siege の最新バージョンが確実に得られます。
最新の Siege ソースをダウンロードする
まず、最新のソース コードを入手する必要があります。Siege チームは最新バージョンへの一貫したリンクを提供しているため、このプロセスは簡素化されています。ただし、リンクが長期間にわたって有効であることを確認することは常に良い習慣です。
最新のソースコードをダウンロードするには、ターミナルを開いて次のコマンドを実行します。
wget http://download.joedog.org/siege/siege-latest.tar.gz
ソースの抽出と準備
ダウンロードが完了したら、次のステップはアーカイブの内容を抽出します。これを行うには、次のコマンドを実行します。
tar -xvf siege-latest.tar.gz
このコマンドは、Siege ソース コードをディレクトリに解凍します。次のコマンドを使用してこのディレクトリに移動します。
cd siege-*/
正確なディレクトリ名は Siege のバージョンによって異なる場合があることに注意してください。先に進む前に、正しいディレクトリにいることを確認してください。
コンパイルプロセスに入る前に、 zlibパッケージをインストールするデータの圧縮と解凍に役立ちます。
sudo apt install zlib1g-dev
Siegeバイナリのコンパイルとインストール
ここで、Siege ソース ディレクトリ内でコンパイルとインストールのプロセスを開始します。以下の一連のコマンドは、ビルド設定を構成し、ソース コードをコンパイルし、その後 Ubuntu システムに Siege をインストールします。
./configure --with-zlib
make
sudo make install
これらのコマンドは、ビルド オプションを設定し、ソース コードをコンパイルし、Debian システムに Siege をインストールします。
攻城兵器のインストールの確認
インストール後、Siege が正しくインストールされていることを確認することが重要です。さらに、インストールされているバージョンを確認することで、特定の機能やプラグインとの互換性に関する情報が得られ、将来のアップデートが必要かどうかを知ることができます。
システムにインストールされている Siege のバージョンを確認するには、次のコマンドを実行します。
siege --version
UbuntuでSiegeを設定する
Siege を正しく構成することは、Siege が最適に機能し、その機能を最大限に活用するために不可欠です。このプロセスには、ホーム ディレクトリにある Siege 構成ファイル .siegerc の変更が含まれます。
Siege 構成ファイルの場所
siegerc ファイルは、Siege の動作を制御するセンターとして機能する重要な資産です。ツールの動作を指示する無数のパラメータで構成されています。これらのパラメータには、シミュレートされたユーザーの数、リクエスト間の遅延、ログ レベルが含まれます。
まず、既存の siegerc ファイルを調べてみましょう。これは、cat コマンドを実行することで実行できます。
cat /etc/siege/siegerc
Siege 構成ファイルを構成する
特定のユースケースに合わせて Siege 構成を変更するには、テキスト エディターを使用してファイルを開く必要があります。このガイドでは、使いやすさとシンプルさから Nano を使用します。
以下のコマンドを使用すると、nano テキスト エディターで siegerc ファイルを開くことができます。
sudo nano /etc/siege/siegerc
このファイルは設定可能なオプションの宝庫ですが、ここでは最もよく使用されるいくつかのパラメータに焦点を当てます。
- verbose: 詳細な出力を表示するか (true)、表示しないか (false) を決定します。
- csv: 出力が CSV 形式であるかどうか (true) を示します。
- 同時実行: 負荷テストのシミュレートされたユーザーの数を指定します。
- time: 負荷テストの期間を決定します。
- delay: 各ユーザーのリクエスト間の時間遅延を設定します。
- internet: ウェブサイト上のランダムな URL にアクセスしてユーザーの行動をシミュレートする (true) かしないか (false)。
- ベンチマーク: Siege をベンチマーク ツールとして実行できるようにするか (true)、そうでないか (false)。
たとえば、25 人のユーザーをシミュレートし、各ユーザーが 1 秒ごとにリクエストを送信し、テストが 1 時間続くシナリオを設定する場合は、関連するパラメーターを次のように変更します。
verbose = false
csv = true
concurrent = 25
time = 1H
delay = 1S
internet = false
benchmark = false
必要な変更を行ったら、Ctrl + X を押して変更を保存して終了し、続いて Y を押して変更の保存を確認してから Enter を押します。
Ubuntu での Siege による HTTP 負荷テスト
Siege をインストールして構成したので、このツールがどのように機能するかを具体的に理解できるように、いくつかの実用的な例を見てみましょう。これらのデモンストレーションでは、DDoS 攻撃とは異なり、大量のリクエストをシミュレートして、Web サーバーをストレス テストにかけます。
これは、Web サイトが大量のトラフィックをどのように処理するかを理解するのに非常に役立ちます。ただし、必要な権限を取得し、これらのツールを責任を持って使用してください。理想的には、これらのツールは自分のサーバーでのみ使用する必要があります。
Siege を使用した BenchMark 負荷テスト Web サイト
まず、Siege を適用して、シミュレートされたユーザー (「ワーカー」とも呼ばれます) のデフォルト数である 25 を使用して Web サイトをテストします。また、ストレス テストの期間を 1 分に設定します。これは、以下のコマンドに示すように、-t 1m フラグを使用して実現されます。
siege https://www.example.com -t 1m
このコマンドを実行すると、Siege はストレス テストを開始し、25 人の同時ユーザーが 1 分間サイトにリクエストを送信することをシミュレートします。テストが終了すると、Siege は結果の詳細なレポートを表示します。
より有意義で正確な洞察を得るためにテストを実行する場合、通常は 5 ~ 15 分間が最適であることを覚えておいてください。1 分間という期間は、単にデモンストレーション目的のものでした。
ワーカーの数を増やすには、-c フラグに続けて希望する数を指定します。たとえば、100 ワーカーをシミュレートするには、-c 100 フラグを使用します。
siege https://www.example.com -c 100 -t 2m
Siege による複数の Web サイトのストレス テスト
システム管理者や複数のドメインを管理している場合は、Siege が複数の Web サイトを同時に処理できることを知れば喜ばれるでしょう。これは、Siege がストレス テストを行う Web サイトを決定するために使用できる構成ファイル /etc/siege/urls.txt を通じて実現できます。
このファイルを設定するには、 nano
:
sudo nano /etc/siege/urls.txt
次に、ストレス テストを実行する Web サイトの URL を挿入します。
https://www.example.com
https://www.example2.com
http://192.168.50.1
これらの変更を保存して終了するには、Ctrl+O、Enter、Ctrl+X の順に押します。
最後に、指定した Web サイト全体でストレス テストを開始するには、次のコマンドを実行します。
siege -f /etc/siege/urls.txt
Ubuntu の追加の Siege コマンド
Siege は、サーバーにリクエストを集中的に送信することだけではありません。多くのオプションを提供し、テスト アプローチをカスタマイズできる多目的ツールです。同時ユーザー数の制御から各リクエスト間の遅延の調整まで、Siege のコマンド オプションを使用すると、さまざまなシナリオをモデル化できます。
このセクションでは、より微妙で詳細なテストを実行できるようにする追加の Siege コマンドについて説明します。
Siege によるリクエスト間の遅延の制御
Siege を使用すると、各ユーザーのリクエスト間に遅延を導入して、より現実的なユーザーの動作をシミュレートできます。これにより、リクエストが途切れることなく継続的に送信されなくなります。
たとえば、以下のコマンドでは:
siege https://www.example.com -c 50 -d 5
Siege は、指定された Web サイトで 50 人の同時ユーザーによるストレス テストを実行し、各ユーザーのリクエスト間に 5 秒の遅延を導入するように指示されます。
Siege で HTTP メソッドとヘッダーをカスタマイズする
Siege では、ストレス テストの HTTP メソッドとヘッダーをカスタマイズできます。たとえば、カスタム ヘッダー付きの POST リクエストを送信したい場合があります。-H フラグを使用するとカスタム ヘッダーを設定でき、–method オプションを使用すると HTTP メソッドを設定できます。これらのオプションの使用方法は次のとおりです。
siege --method="POST" -H "Content-Type: application/json" https://www.example.com
上記のコマンドでは、POST メソッドを使用し、リクエストの Content-Type ヘッダーを application/json に設定しています。
Siege で結果を記録する
さらなる分析や記録保存のために、ストレステストの結果をログに記録したい場合があります。Siegeは、テスト結果をログファイルに書き込むことができます。 -l
オプション:
siege -l https://www.example.com
このコマンドは、Siege にストレス テストの結果をログに記録するように指示します。デフォルトでは、Siege はホーム ディレクトリの siege.log というファイルにログを書き込みます。
終わりに
Siege を Ubuntu システムに正常にインストールすると、Web サーバーのベンチマークとストレス テストを効果的に実行できます。Ubuntu のデフォルト リポジトリの利便性を選択するか、ソースから直接インストールする柔軟性を選択するかにかかわらず、Siege は、負荷がかかった状態で Web アプリケーションが最適に動作することを保証する信頼性の高いツールセットを提供します。Siege を定期的に更新して新しい機能や改善を活用し、Web サーバーの安定性とパフォーマンスを維持するために使用してください。