Siege ベンチマーク ツールを使用した Web サーバーの負荷テスト
負荷がかかっているときに Web サーバーが処理できるトラフィックの量を知ることは、Web サイトまたはアプリケーションの将来の成長を計画するために不可欠です。 siege と呼ばれるツールを使用すると、サーバーで負荷テストを実行し、さまざまな状況下でシステムがどのように動作するかを確認できます。
シージを使用すると、転送されたデータ量、応答時間、トランザクション レート、スループット、同時実行性、サーバーが応答を返した回数を評価できます。このツールには、回帰、インターネット シミュレーション、 そしてブルート フォースという 3 つのモードがあり、動作できます。
重要: Siege は、自分が所有するサーバー、または明示的にテスト権限を持っているサーバーに対してのみ実行してください。一部の国では、未承認の Web サイトでの包囲を使用すると犯罪とみなされる場合があります。
Linux への Siege HTTP 負荷テスト ユーティリティのインストール
Siege はマルチプラットフォームであり、次のコマンドを使用してUbuntu/Debian およびCentOS/RHEL ディストリビューションにインストールできます。
Debin/Ubuntu に Siege をインストールするには、次のコマンドを実行します。
sudo apt install siege
CentOS/RHEL の場合、Siege をインストールするにはリポジトリをインストールして有効にする必要があります。
yum install epel-release
yum install siege
あるいは、 ソースから包囲網を構築することもできます。そのためにはビルド必須パッケージと開発パッケージをインストールする必要があります。
sudo apt install build-essential #Ubuntu/Debian
yum groupinstall 'Development Tools' #CentOS/RHEL
次に、wget コマンドを使用してSiegeをダウンロードし、示されているようにソースからインストールできます。
wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install
Linux での Siege HTTP 負荷テスト ユーティリティの構成
インストールが完了したら、包囲設定ファイルを調整できます。これは /etc/siege/siegerc にあります。ソースからパッケージをビルドすることにした場合は、次を実行する必要があります。
sudo siege.config
これにより、ユーザーのホーム ~/.siege/siege.conf に siege.conf ファイルが生成されます。
ファイルの内容は次のようになります。 logfile ディレクティブと time ディレクティブのコメントを解除していることに注意してください。
cat siegerc |egrep -v "^$|#"
サンプル出力
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true
現在の構成では、包囲は 1 分間で 25 人の同時ユーザーを模倣します。
これで包囲を実行する準備が整いました。
Siege ベンチマーク ユーティリティを使用して Web サイトの負荷をテストする
siege の実行は非常に簡単で、次のようにテストする Web サイトを指定するだけです。
siege example.com
可用性が100%のままで、接続の失敗がない場合、システムは正常に動作しており、問題はありません。応答時間にも注意する必要があります。
複数の Web サイトに対して包囲を実行する
ファイルから URL を読み取るようにシージを設定することで、複数の URL をテストできます。 URL は次のように /usr/local/etc/urls.txt に記述できます。
次に、siege にファイルの URL をテストするように指示するには、次のように -f
オプションを使用します。
siege -f /usr/local/etc/urls.txt
構成ファイルに記述されている設定とは異なる設定を試したい場合は、コマンド ライン オプションを使用することもできます。
-C
– 独自の構成ファイルを指定します。-q
– siege の出力を抑制します。-g
– GET、HTTP ヘッダーをプルダウンし、トランザクションを表示します。デバッグに役立ちます。-c
– 同時ユーザーの数、デフォルトは 10 です。-r
– テストを実行する回数。-t
– テストの実行時間。 S、M、または H を指定できます。例: –time=10S (10 秒)。-d
– 各リクエストの前のランダムな遅延。-b
– リクエスト間に遅延はありません。-i
– ユーザー シミュレーション。ランダムな URL をヒットするために使用します。-f
– 指定されたファイルから URL をテストします。-l
– ログ ファイル。-H
– リクエストにヘッダーを追加します。-A
– ユーザー エージェントを指定します。-T
– リクエストの Content-Type を設定します。--no-parser
– パーサーなし。HTML ページ パーサーをオフにします。--no-follow
– HTTP リダイレクトをフォローしません。
結論
Siege は、高負荷時のシステムの信頼性を測定する強力なツールです。 Web 開発者は、サイトに負荷がかかっているときにコードをテストするために使用できます。評価中にテスト対象のサーバーにアクセスできなくなる可能性があるため、常に注意してテストを実行する必要があります。