これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド シージです。
プログラム:
NAME
包囲 - HTTP/HTTPS ストレス テスター
はじめに
Siege は、マルチスレッドの http 負荷テストおよびベンチマーク ユーティリティです。 それは次のように設計されました
Web 開発者は、強制された状況下でコードのパフォーマンスを測定できます。 それにより、次のことが可能になります
構成可能な同時シミュレート ユーザー数で Web サーバーにアクセスします。 そのユーザーたち
ウェブサーバーを「包囲下」に置きます。 パフォーマンス測定には経過時間、合計データが含まれます
転送、サーバーの応答時間、トランザクション レート、スループット、同時実行性
OK が返された回数。 これらの対策は定量化され、次の機関で報告されます。
各実行の終わり。 それらの意味と重要性については以下で説明します。 シージには
基本的に XNUMX つの動作モード: 回帰 (砲撃によって呼び出された場合)、インターネット
シミュレーションとブルートフォース。
呼び出し
包囲を呼び出すための形式は次のとおりです: siege [オプション]
包囲 [オプション] [URL]
siege -g [URL]
Siege は次のコマンド ライン オプションをサポートしています。
-V, - バージョン
VERSION、バージョン番号を出力します
-h, - 助けて
HELP、すべてのコマンド ラインの概要を含むヘルプ セクションを出力します。
オプション。
-C, --config
CONFIGURATION は、現在の構成を $HOME/.siegerc ファイルに出力します。 編集
このファイルは、包囲攻撃の実行ごとにフラグ値を設定するためのもので、実行時間を容易にする機能です
呼び出し。 SIEGERC環境で代替リソースファイルを設定した場合
変数: エクスポート SIEGERC=/home/jeff/haha
-v, -詳細
VERBOSE は、HTTP 戻りステータスと GET リクエストを画面に出力します。
構成ファイルから一連の URL を読み取る場合に便利です。 この旗は
テストの進行状況を確認できます。
-q, - 静かな
QUIET は冗長をオフにし、ほとんどの出力を抑制します。 このオプションは主に追加されました
-g/--get を使用したスクリプト作成用。 サイレント モードで完全な包囲を実行しても、
冒頭の紹介と最終的な統計を取得します。
-g, - 得る
HTTPヘッダーを取得し、トランザクションを表示します。 トランザクションが完了した場合、Siege は 1 から終了します。
少なくとも 200 つの HTTP 0 応答が含まれていない場合は、XNUMX で終了します。
$HOME/.siegerc で gmethod=HEAD を設定することで、トランザクションをヘッダーのみに追加します
-c NUM, --concurrent=NUM
CONCURRENT では、シミュレートされるユーザーの同時数を num に設定できます。 の
シミュレートされるユーザーの数は、実行されているコンピューター上のリソースに制限されます。
包囲。
-i, - インターネット
INTERNET、から読み取った URL をランダムにヒットすることでユーザー シミュレーションを生成します。
urls.txt ファイル。 このオプションは、urls.txt ファイルでのみ実行可能です。
-d NUM, --遅延=NUM
遅延、各包囲シミュレートされたユーザーは、0 秒から XNUMX 秒までのランダムな間隔でスリープします。
そしてNUM。
-b, - 基準
BENCHMARK は、スループットのベンチマークのために遅延なしでテストを実行します。 デフォルトではそれぞれ
シミュレートされたユーザーは、少なくとも XNUMX 秒の遅延をもって呼び出されます。 このオプションは削除します
その遅れ。 負荷テスト中にこのオプションを使用することはお勧めできません。
-r NUM, --reps=NUM, --reps=XNUMX 回
REPS を使用すると、包囲攻撃を NUM 回繰り返すことができます。 --reps=once の場合、包囲します
urls.txt ファイルを実行し、ファイル内の各 URL を XNUMX 回だけヒットします。 の
リストは各シミュレート ユーザー間で分割されます。 したがって、 --reps=once -c10 を実行すると、
30 個の URL が含まれるファイルの場合、各ユーザーは XNUMX 回実行することになります。 注: -t/--時間
-r/--reps よりも優先されます。 このオプションを使用する場合は、time = x であることを確認してください。
$HOME/.siegerc ファイル内でコメント化されています。
-t NUM分, --time=NUMm
TIME では、選択した期間テストを実行できます。 フォーマットは
「NUMm」。NUM は時間単位で、「m」修飾子は S、M、または H のいずれかです。
秒、分、時間。 XNUMX 時間包囲を実行するには、次のいずれかを選択できます。
次の組み合わせ: -t3600S、-t60M、-t1H。 修飾子は大文字と小文字を区別しません
機密性は高くなりますが、番号とそれ自体の間にスペースは必要ありません。
-l [ファイル], --log[=ファイル]
トランザクション統計をファイルに記録します。 引数はオプションです。 FILE が指定されていない場合、
次に、siege はトランザクションを /var/log/siege.log に記録します。 包囲がインストールされている場合
/ usr / localの場合、デフォルトの siege.log は /usr/local/var/siege.log になります。 このオプション
siege がテストを正常に完了したときに報告される最終統計をログに記録します。 あなた
$HOME/.siegerc を編集して、siege.log ファイルの場所を変更できます。
-m MESSAGE, --mark=メッセージ
MARK、ログ ファイルを区切り文字でマークします。 このオプションを使用すると、分離することができます
ヘッダー情報を含むログ ファイル エントリ。 これは特に次の場合に便利です。
XNUMX つの異なるサーバーをテストしています。 -m オプションと -m オプションを両方使用する必要はありません。
-l オプション。 -m は -l を想定するため、トランザクションをマークしてログに記録します。 メッセージの場合
スペースが含まれている場合は、必ず引用符で囲んでください。
-H ヘッダ, --header=ヘッダー
HEADER、このオプションを使用すると、追加のヘッダー情報を追加できます。
-R ジーゲルク, --rc=ジーゲルク
RC は、実行用の sigerc ファイルを設定します。 このオプションは環境をオーバーライドします
変数 SIEGERC とデフォルトのリソース ファイル $HOME/.siegerc
-f FILE, --file=ファイル
ファイル、デフォルトの URL ファイルは /etc/siege/urls.txt です。 別の URL ファイルを選択するには、
このオプション、つまり siege -f myurls.txt を使用します。
-A "ユーザー エージェント", --user-agent="ユーザー エージェント"
AGENT の場合、このオプションを使用してリクエストにユーザー エージェントを設定します。
URL FORMAT
Siege は次の URL 形式を理解します。
(括弧はディレクティブがオプションであることを示します)
[プロトコル://] host.domain.xxx [:ポート] [/パス/ファイル]
host.domain.xxx/file POST フィールド=値&フィールド2=値2
または、行入力演算子「<」文字を使用してファイルの内容を POST することもできます。
ホスト/ファイル POST
上記の最初の例は暗黙的な GET であり、次の XNUMX つは明らかに POST です。 合格できます
Web ブラウザで行うのと同じように、GET を使用してパラメータを取得します。
www.haha.com/form.jsp?first=homer&last=simpson
URL をコマンドライン引数として呼び出す場合は、おそらく引用符で囲む必要があります。
現在、http と https の XNUMX つのプロトコルをサポートしています。 プロトコルが指定されていない場合は、
その場合、Siege は http を想定します。 URL の最小要件はサーバー名です。 それでおしまい。 それで
shemp という名前のサーバーと同じドメイン内にいて、shemp がホスト ファイル内にある場合、またはそれが
が DNS にある場合、「siege shemp」が強調表示されます http://shemp.yourdomain.net/index.html
(「index.html」がサーバー指定のインデックスであると仮定します)。 同じページを強調表示するには、次を使用します。
https プロトコルの場合、URL の最小要件は https://shemp です。 そのURL
仕様は https://shemp.yourdomain.net/index.html を包囲します
URL FILE
複数の URL にヒットするには、それらを XNUMX つのファイルに配置します。 デフォルトの URL ファイルは次のとおりです。
/etc/siege/urls.txt。 [-f オプションを使用してそのファイルを変更できます。上記を参照してください。]
ファイルには URL が XNUMX 行に XNUMX つずつリストされます。
# すべてのコメントをハッシュの後ろに置きます
http://homer.whoohoo.com/index.html
http://homer.whoohoo.com/howto.jsp
http://go.whoohoo.com/cgi-bin/q.cgi?スコープ=a
http://go.whoohoo.com/cgi-bin/q.cgi POST スコープ=a
http://homer.whoohoo.com/my.jsp POST a=1&b=2
# ファイルの内容を POST...
www.haha.com/aha.jsp 投稿
www.haha.com/parser.jsp POST <./my.txt
コマンドラインで URL を指定せずに呼び出すと、siege はファイル内の URL を検索します。 通常は、
すべてをメモリに読み取り、順番に実行します。 インターネットを指定した場合
モード [-i] に設定すると、ヒットする URL がランダムに選択されます。
URL ファイルで変数を設定および参照できます。 事前に設定する必要があります。
それらを参照しています。 変数を定義するための構文は、単一の変数を含む NAME = VALUE です。
単一行での代入。 ファイル内で複数の変数を定義する場合は、
各割り当ては XNUMX 行で記述されます。 変数の値を使用するには、変数を参照する必要があります
$() または ${} 内、つまり $(NAME)。 存在しない変数を参照した場合は包囲されます
空の文字列 "" として評価されます。
# 変数代入を使用した例
# urls.txt ファイル内。
ホスト = homer.whoohoo.com
http://${HOST}/index.html
http://${HOST}/howto.jsp
パフォーマンスとは 統計
パフォーマンスの測定には、テストの経過時間、転送されたデータ量 (
ヘッダーを含む)、サーバーの応答時間、トランザクション レート、
スループット、同時実行性、OK を返した回数。 これらの対策は、
各実行の終了時に定量化され、報告されます。 レポート形式は以下をモデルにしています。
リンカーン・スタインの Torture.pl スクリプト:
** シージ 2.60
** 戦闘のために 100 人の同時ユーザーを準備しています。
サーバーは現在包囲されています...完了
トランザクション: 339 ヒット
可用性: 93.39 %
経過時間: 67.47 秒
転送されたデータ: 4273708 バイト
応答時間: 8.25秒
トランザクション速度: 5.02 トランス/秒
スループット: 63342.34 バイト/秒
同時実行数: 41.47
成功したトランザクション: 337
失敗したトランザクション: 26
最長トランザクション: 17.77 秒
最短トランザクション: 0.37 秒
取引
サーバーのヒット数。 この例では、25 人のシミュレートされたユーザー [ -c25 ] がそれぞれヒットします。
サーバーに 10 回 [ -r10 ]、合計 250 トランザクション。 可能です
スケジュールされたヒット数を超えるトランザクションの数。 包囲
トランザクションにヒットしたすべてのサーバーをカウントします。これはリダイレクトと認証を意味します
チャレンジは XNUMX 回のヒットではなく XNUMX 回のヒットとしてカウントされます。 この点に関して、包囲は HTTP に従っています。
仕様に準拠しており、ブラウザの動作を模倣します。
利用状況
これは、サーバーによって正常に処理されたソケット接続の割合です。 それ
ソケット障害 (タイムアウトを含む) の結果をすべての合計で割った値です。
接続試行。 この数値には、400 および 500 レベルのサーバー エラーは含まれません。
これらは、以下で説明する「失敗したトランザクション」に記録されます。
経過 時間
包囲テスト全体の期間。 これはユーザーの時間から測定されます
最後のシミュレートされたユーザーがトランザクションを完了するまで、包囲を呼び出します。 示されている
上記では、テストが完了するまでに 14.67 秒かかりました。
Rescale データ 転送
すべての包囲シミュレート ユーザーに転送されたデータの合計。 ヘッダーも含まれます
情報も内容も。 ヘッダー情報が含まれているため、番号
siege によって報告される数は、サーバーによって報告される数よりも大きくなります。 で
インターネット モード。設定ファイル内のランダムな URL にヒットします。この数値は次のとおりです。
実行ごとに異なることが予想されます。
世界の動き 時間
シミュレートされた各ユーザーのリクエストに応答するのにかかった平均時間。
トランザクション 率
サーバーが XNUMX 秒あたりに処理できたトランザクションの平均数。
一言で言えば、トランザクションを経過時間で割ったものです。
スループット
サーバーからすべてのサーバーに毎秒転送される平均バイト数。
シミュレートされたユーザー。
並行性
平均同時接続数、サーバーが増えるにつれて増加する数
パフォーマンスが低下します。
Successful: 取引
サーバーが戻りコードで応答した回数 < 400。
Failed: 取引
サーバーがリターン コード >= 400 で応答した回数と次の合計
ソケットのタイムアウトを含む、失敗したすべてのソケット トランザクション。
最長 トランザクション
すべてのトランザクションのうち、単一のトランザクションにかかった最大の時間
取引。
最短 トランザクション
単一のトランザクションにかかった時間の中で最も短い時間
取引。
onworks.net サービスを使用してオンラインでシージを使用する