Siegeベンチマークツールを使用したWebサーバーの負荷テスト


ストレスがかかっているときにWebサーバーがどれだけのトラフィックを処理できるかを知ることは、Webサイトまたはアプリケーションの将来の成長を計画するために不可欠です。 包囲というツールを使用すると、サーバーで負荷テストを実行して、さまざまな状況でシステムのパフォーマンスを確認できます。

包囲を使用して、転送されたデータ量、応答時間、トランザクションレート、スループット、同時実行性、およびサーバーが応答を返した回数を評価できます。このツールは、回帰インターネットシミュレーション総当たりの3つのモードで動作します。

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

あるいは、ソースから 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 ファイルが生成されます。

ファイルの内容はこのようになります。私はログファイル時間ディレクティブのコメントを外しています。

# 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 example.com

可用性が 100%のままで、接続に失敗していなければ、システムは問題なく動作していました。応答時間にも注意を払う必要があります。

ファイルから読み取るように包囲を設定することで、複数のURLをテストできます。次のように /usr/local/etc/urls.txt にURLを記述できます。

ファイルからのURLをテストするよう siege に指示するには、次のように -f オプションを使用します。

# siege -f /usr/local/etc/urls.txt

設定ファイルに記述されているものとは異なる設定を試す場合は、コマンドラインオプションを使用することもできます。

  • -C – specify your own configuration file.
  • -q – suppresses siege’s output.
  • -g – GET, pull down HTTP headers and display the transaction. Useful for debugging.
  • -c – the number of concurrent users, default is 10.
  • -r – how many times to run the test.
  • -t – how much time to run the test. You can specify S, M, or H ex: –time=10S for 10 seconds.
  • -d – random delay before each request.
  • -b – no delays between requests.
  • -i – user simulation. Uses to hit random URLs.
  • -f – test URLs from specified file.
  • -l – log file.
  • -H – Add a header to request.
  • -A – specify a user agent.
  • -T – Sets Content-Type in request.
  • --no-parser – NO PARSER, turn off the HTML page parser.
  • --no-follow – do not follow HTTP redirects.

Siege は、高負荷時にシステムの信頼性を測定するための強力なツールです。 Web開発者は、サイトが強要されているときにコードをテストするために使用することができます。評価中はテスト対象のサーバーにアクセスできなくなる可能性があるため、テストは常に慎重に実行してください。