GoGPT Best VPN GoSearch

OnWorksファビコン

httperf - クラウド上のオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して OnWorks 無料ホスティング プロバイダーで httperf を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド httperf です。

プログラム:

NAME


httperf - HTTP パフォーマンス測定ツール

SYNOPSIS


httperf [--ヘッダーの追加 S] [--バースト長 N] [- クライアント I/N] [-- リセットで閉じる]
[-d|- デバッグ N] [-- 障害ステータス N] [-h| - 助けて] [- 豚] [--http-バージョン S] [--最大-
の構築 N] [--max-piped-calls N] [- 方法 S] [--no-host-hdr] [--呼び出し数 N] [--番号-
コネ N] [- 期間 [d|u|e]T1[,T2]][- 港 N] [--印刷返信 [ヘッダ|ボディ]] [--印刷-
要求 [ヘッダ|ボディ]] [- 割合 X] [--recv-バッファ N] [-- 失敗時の再試行] [--送信バッファ N]
[- サーバ S] [- サーバーの名前 S] [-- セッションクッキー] [--ssl] [--ssl-暗号 L] [--SSL-いいえ-
再利用] [--思考タイムアウト X] [- タイムアウト X] [--uri S] [-v|-詳細] [-V|- バージョン] [--ブログ
y|n,F] [--wsess N,N,X] [--wsesslog N,X,F] [--wset N,X]

DESCRIPTION


httperf Webサーバーのパフォーマンスを測定するツールです。 両方の HTTP プロトコルを話します。
HTTP/1.0 および HTTP/1.1 フレーバーがあり、さまざまなワークロード ジェネレーターを提供します。 その間
実行中、次の形式で要約された多数のパフォーマンス メトリックを追跡します。
テスト実行の最後に出力される統計情報。 最も基本的な操作は、
httperf 一定数の HTTP GET リクエストを生成し、応答の数を測定します。
(応答) がサーバーから返され、応答が到着した速度。

重要: 正しい結果を得るには、最大でも XNUMX つのコマンドを実行する必要があります。 httperf プロセス
クライアントマシンごとに。 また、バックグラウンド プロセスはできるだけ少なくする必要があります。
クライアントマシンとサーバーマシン。


httperf --hog --server www
このコマンドにより、 httperf ホスト www への接続を作成するには、次のリクエストを送信します。
ルートドキュメント (http://www/)、応答を受信し、接続を閉じてから、
いくつかのパフォーマンス統計を出力します。

httperf --hog --server www --num-conns 100 --ra 10 --timeout 5
上記と同様ですが、合計 100 個の接続が作成され、その接続が
10 秒あたり XNUMX 個の固定レートで作成されます。 オプション「--rate」が設定されていることに注意してください。
略称は「~ら」。

httperf --hog --server=www --wsess=10,5,2 --rate 1 --timeout 5
目的 httperf 10 セッションあたり 1 セッションの割合で合計 XNUMX セッションを生成するには
5番。 各セッションは、2 秒間隔の XNUMX つのコールで構成されます。

httperf --hog --server=www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
上記と同様ですが、次の点が異なります httperf ポート 443 で SSL 経由でサーバー www に接続します (
SSL 接続のデフォルト ポート)。

httperf --hog --server www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
--ssl-ciphers=EXP-RC4-MD5:EXP-RC2-CBC-MD5 --ssl-no-reuse --http-version=1.0
上記と同様ですが、次の点が異なります httperf 以下からのみ選択できることをサーバーに通知します。
4 つの暗号スイート (EXP-RC5-MD2 または EXP-RC5-CBC-MDXNUMX)。 さらに、 httperf 使用する
HTTP バージョン 1.0 では、リクエストごとに新しい TCP 接続が必要です。 また、SSL
セッション ID は再利用されないため、SSL 接続確立プロセス全体が
(SSL ハンドシェイクと呼ばれる) は接続ごとに発生します。

OPTIONS


の操作 httperf 多くのオプションを通じて制御できます。 ツールがサポートするのは、
短い (XNUMX 文字) オプション名と長い (任意の長さ) オプション名の両方。 短いオプションは、
先頭に XNUMX つのダッシュ (-) が付き、長いオプションには XNUMX つのダッシュ (--) が付きます。 多数
短いオプションはグループ化できます (例: ``-vV「」は「」と同等です。-v -V'')そして長い
オプションは、一意である限り省略できます。 オプションのパラメータは次のとおりです。
長いオプション名に等号とパラメータを続けて指定します。
値 (例: --バースト=10) または、オプション名と値を空白で区切ります (例:
- バースト 10).

--add-header=S
文字列を含めるように指定します S 追加のリクエストヘッダーとして。 それはする必要があります
終了の復帰/改行シーケンスを明示的に指定します。 これは可能です
これはエスケープ シーケンス「\n」を使用して行われます。 これにより、以下を含めることが可能になります
複数のリクエストヘッダー。 たとえば、「--add-header "Referer: foo\nAuth:
Secret\n"" は XNUMX つのリクエスト ヘッダー (``Referer'' と ``Auth'') をそれぞれに追加します。
リクエスト。 サポートされているその他のエスケープ シーケンスは、「\r」 (キャリッジ リターン)、「\a」です。
(改行)、「\\」(バックスラッシュ)、および「\N」。N は文字を表すコードです。
挿入されます (XNUMX 進数)。

--バースト長=N
バーストの長さを指定します。 各バーストは次のもので構成されます N サーバーへの呼び出し。 の
このパラメーターの正確な意味は、ワークロード ジェネレーターによって異なります。 定期用
リクエスト指向のワークロード。オプションの説明を参照してください。 --wsess.

--no-host-hdr
HTTP を発行するときに「Host:」ヘッダーを含めないことを指定します。
リクエストで詳細に指定された通りになります。

--呼び出し数.
セッション指向のワークロードについては、オプションの説明を参照してください。 --wsess.

--client =I/N
マシンが httperf クライアント上で実行されています I の合計のうち N
クライアント。 I 0 ~ の範囲内である必要があります N-1. ワークロードジェネレーターの一部
(例えば、 --wset) クライアント ID をバイアス値として使用して、すべてがそうでないことを確認します。
クライアントは完全に同一のワークロードを生成します。 というテストを行うとき、
複数のクライアント マシンが関係するため、通常はこれを指定することをお勧めします。
オプションを選択します。

-- リセットで閉じる
を要求します。 httperf TCP 接続を終了する代わりに RESET を送信して閉じます。
通常の TCP 接続シャットダウン ハンドシェイクを通じて。 このオプションをオンにすると、
データの破損、TCP 制御ブロックのスタック、または間違ったものなどの悪影響があります。
結果。 このため、このオプションは絶対に使用しない限り使用しないでください。
必要な場合でも、その意味が完全に理解されない限り、使用すべきではありません。
理解した。

-d =N

--debug =N
デバッグレベルをに設定します N。 の大きい値 N より多くの出力が得られます。

--障害ステータス=N
HTTP 応答ステータス コードが次であることを指定します。 N 失敗として扱うべきだ
(つまり、リクエストがタイムアウトしたかのように扱われます)。 たとえば、
``--failure-status=504」の HTTP ステータスが「504 Gateway Time-out」である応答
失敗とみなされます。 警告: このオプションは現在サポートされています
セッション ワークロードのみ ( --wsess   --wsesslog オプション)。

-h

- 助けて 利用可能なオプションとそのパラメータの概要を出力します。

- 豚 このオプションは、必要な数の TCP ポートを使用することを要求します。 これがなければ
オプション、 httperf 通常、一時ポート(からの範囲)の使用に制限されます。
1024 ~ 5000)。 この限られたポート範囲はすぐにボトルネックになる可能性があるため、
一般に、本格的なテストにはこのオプションを指定することをお勧めします。 また、これ
NT サーバーを測定する場合は、TCP を回避するため、このオプションを指定する必要があります。
NT マシンと UNIX マシン間の非互換性。

--http-バージョン=S
に送信されるリクエストに含める必要があるバージョン文字列を指定します。
サーバ。 デフォルトでは、バージョン文字列「1.1」が使用されます。 このオプションは次のように設定できます。
「1.0」: HTTP/1.0 リクエストの生成を強制します。 このオプションを任意に設定する
「1.0」または「1.1」以外の値を指定すると、未定義の動作が発生する可能性があります。

--最大接続数=N
最大でも次のことを指定します N 接続はセッションごとに開かれます。 このオプションは
オプションと組み合わせると意味がある --wsess   --wsesslog のみ。

--max-piped-calls=N
最大でも次のことを指定します N パイプライン呼び出しは接続ごとに発行されます。 これ
オプションはオプションと組み合わせて意味を持ちます --wsess   --wsesslog のみ。

--method =S
HTTP リクエストを発行するときに使用するメソッドを指定します。 これなら
オプションが指定されていない場合は、GET メソッドが使用されます。 方法 S 任意の値にすることができます
文字列ですが、通常は GET、HEAD、PUT、POST などのいずれかです。

--num-calls=N
このオプションは、リクエスト指向のワークロードに対してのみ意味があります。 それは、
各接続を閉じる前に、各接続で発行する呼び出しの合計数。 もしも N is
1 より大きい場合、サーバーは永続的な接続をサポートする必要があります。 デフォルト値
このオプションの値は 1 です。 --バースト長 に設定されています B、 そうして N コールが発行される
一気に B それぞれパイプライン化された呼び出し。 したがって、そのようなバーストの総数は次のようになります。
N / B (接続ごと)。

--num-conns=N
このオプションは、リクエスト指向のワークロードに対してのみ意味があります。 それは、
作成する接続の総数。 各接続で、呼び出しは次のように発行されます。
オプションで指定 --呼び出し数   --バースト長。 テストはすぐに停止します N
接続が完了したか失敗しました。 接続があると見なされます
接続上のいずれかのアクティビティがそれ以上先に進めなかった場合は失敗します。
タイムアウトオプションで指定された時間を超えた場合 - タイムアウト   --思考タイムアウトを選択します。
このオプションのデフォルト値は 1 です。

--期間=[D]T1[,T2]
接続またはセッションを作成する間隔を指定します。
接続はデフォルトで作成され、オプションの場合はセッションが作成されます --wsess or --wsesslog 持っています
指定されている。 この接続/セッションの「到着間隔」は、次のようにすることもできます。
によって指定された - 割合 オプションですが、より柔軟に利用できます。
- 期間。 当学校区の D パラメータは到着間隔の時間分布を指定します。 もしも
省略するか、「」に設定します。d''、決定的な (つまり、固定された) 期間が指定どおりに使用されます。
パラメータによる T1 秒単位で。 もしも D に設定されていますe''、指数関数 (つまり、
ポアソン) 分布は、平均到着間隔が次の値になるように使用されます。 T1。 最後に、 D
に設定されていますu''、区間 [T1,T2) は、
到着間の時間。 すべての場合において、ピリオドが 0 の場合、接続またはセッションが発生します。
順次生成されます (新しい接続/セッションは、
前のものが完了しました)。 このオプションのデフォルト値は 0 です。
たとえば、指定する --rate=5 指定するのと同じです --period=d0.2 or
--period=0.2。 指定することで --period=u1,3、到着間隔はランダムになります。
1 ~ 3 秒の間隔から選択します。 具体的な順番は、
(擬似) ランダムな到着間隔は XNUMX から同じです httperf として別の人に走ります
の値が続く限り、 - 期間   - クライアント オプションは同じです。

--port =N
このオプションはポート番号を指定します N Web サーバーがリッスンしているのは
HTTP リクエスト。 デフォルトでは、 httperf ポート番号 80 を使用します。

--印刷返信[=[ヘッダ|ボディ]]
応答ヘッダー、本文、および概要の印刷を要求します。 出力は
標準出力に送られます。 返信ヘッダー行には「RH」という接頭辞が付けられ、返信本文は
行には「RB」という接頭辞が付き、応答サイズの要約には「RS」という接頭辞が付きます。 の
プレフィックスの後には、コールを一意に識別するシリアル番号が続きます。
返信行は、返信の始まりを示すコロン (「:」) 文字です。
実際の返信ライン。 応答ヘッダーのみを出力するには、引数を渡します ヘッダ これに
オプション。 返信本文のみを出力するには、引数を渡します ボディ このオプションに。

--印刷要求[=[ヘッダ|ボディ]]
要求ヘッダー、本文 (存在する場合)、および要求の出力を要求します。
まとめ。 出力は標準出力に送られます。 リクエストヘッダー行は、
先頭に「SH」が付き、リクエスト本文の行には「SB」が付き、リクエストの概要
先頭に「SS」が付きます。 プレフィックスの後には、通話のシリアル番号と
実際の応答行の先頭を示すコロン (「:」) 文字。 印刷する
リクエストヘッダーのみ、引数を渡す ヘッダ このオプションに。 のみを印刷するには、
リクエストボディ、引数を渡す ボディ このオプションに。

--rate =X
接続またはセッションが作成される固定レートを指定します。 接続
デフォルトで作成されます。オプションの場合はセッションが作成されます --wsess or --wsesslog されています
指定。 どちらの場合も、レートが 0 の場合、接続またはセッションは次のようになります。
順次生成されます (新しいセッション/接続は、
前のものが完了しました)。 このオプションのデフォルト値は 0 です。

--recv-buffer=N
HTTPの受信に使用されるソケット受信バッファの最大サイズを指定します。
と答える。 デフォルトでは、制限は 16KB です。 値が小さいほど記憶に役立つ可能性があります。
制約のあるクライアントと通信する場合は、より大きな値が必要になる場合があります。
高帯域幅、高遅延の接続を介したサーバー。

-- 失敗時の再試行
このオプションはセッション ワークロードに対してのみ意味があります (「 --wsess  
--wsesslog オプション)。 指定した場合、失敗応答を返す呼び出し (
によって定義されます -- 障害ステータス オプション) を引き起こす代わりに、ただちに再試行されます。
セッションが失敗します。

--send-buffer=N
HTTP リクエストの送信に使用されるソケット送信バッファの最大サイズを指定します。
デフォルトでは、制限は 4KB です。 値を小さくすると、メモリに制約のあるクライアントに役立つ可能性があります。
一方、サーバーに対して大きなリクエストを生成する場合は、より大きな値が必要になる場合があります。
高帯域幅、高遅延の接続を介して接続されます。

--server =S
サーバーの IP ホスト名を指定します。 デフォルトでは、ホスト名「localhost」は
使用済み。 このオプションは、通常は推奨されないため、常に指定する必要があります。
クライアントとサーバーを同じマシン上で実行します。

--サーバー名=S
すべてのサーバーの「Host:」ヘッダーに表示される (デフォルトの) サーバー名を指定します。
から送信されたリクエスト httperf。 このオプションを使用しない場合、ホスト名 (または IP アドレス)
オプションで指定 - サーバ 代わりに使用されます。

-- セッションクッキー
このオプションをオンにすると、Cookie 管理がセッションごとに有効になります。
これが意味するのは、セッションによって生成されたリクエストに対する応答があった場合、 X
Cookie が含まれている場合、その後のすべてのリクエストはセッションによって送信されます X これが含まれます
クッキーも。 現在、Cookie マネージャーは、 httperf XNUMX つの Cookie のみをサポートします
セッションごとに。 XNUMX 番目の Cookie を受信すると、新しい Cookie がその Cookie を上書きします。
既存のものを削除し、「--debug 1」がオンの場合は警告メッセージが出力されます。

--ssl 間のすべての通信を指定します。 httperf そしてサーバーは
Secure Sockets Layer (SSL) プロトコル。 このオプションは次の場合にのみ使用できます。 httperf ました
SSL サポートを有効にしてコンパイルされています。

--ssl-ciphers=L
このオプションは、SSL が使用されている場合にのみ意味を持ちます (「 --ssl オプション)。 このオプション
リストを指定します L 暗号スイートの httperf 安全な交渉に使用できる
サーバーとの接続。 リストに複数の暗号スイートが含まれている場合、
暗号はコロンで区切る必要があります。 サーバーがいずれのメッセージも受け入れない場合、
リストされている暗号スイートを使用すると、接続の確立は失敗し、 httperf 終了します
すぐに。 このオプションが指定されていない場合、 --ssl オプションが存在する場合
httperf 基盤となる SSL によって提供されるすべての SSLv3 暗号スイートを使用します。
としょうかん。

--ssl-no-reuse
このオプションは、SSL とセッションが使用されている場合にのみ意味があります (「 --ssl, --wsess,
--wsesslog)。 SSL接続が確立されると、クライアントはセッションを受信します。
サーバーからの識別子 (セッション ID)。 後続の SSL 接続では、クライアント
通常、繰り返しのコストを避けるために、このセッション ID を再利用します。
(低速) 新しい SSL セッションを確立し、別のセッション ID を取得するための SSL ハンドシェイク
(クライアントがセッション ID を再利用しようとしても、サーバーは強制的にセッション ID を使用する可能性があります。
クライアントがセッションを再ネゴシエートします)。 デフォルトでは httperf セッション ID を再利用します
セッション内のすべての接続。 もし --ssl-no-reuse オプションが有効な場合、
httperf セッション ID は再利用されず、SSL ハンドシェイク全体が
セッション内の新しい接続ごとに実行されます。

--think-タイムアウト=X
サーバーが応答の送信を開始するまでに必要な最大時間を指定します。
与えられたリクエストに対して。 このタイムアウト値は通常のタイムアウト値に追加されることに注意してください。
値 (オプションを参照) - タイムアウト)。 静的な Web コンテンツにアクセスする場合、通常は
このオプションを指定するために必要です。 ただし、長時間実行されるテストを実行する場合は、
CGI スクリプトでは、より大きな応答を可能にするためにこのオプションを使用する必要がある場合があります。
回。 このオプションのデフォルト値は XNUMX 秒です。これは、サーバーが
通常のタイムアウト値以内に応答できる必要があります。

--timeout =X
時間を指定します X それ httperf サーバーを待つつもりです
反応。 タイムアウトは秒単位で指定され、小数を指定できます。
(例えば、 - タイムアウト 3.5)。 このタイムアウト値は、TCP を確立するときに使用されます。
接続、リクエストの送信時、応答の待機時、およびメッセージの受信時
返事。 これらのアクティビティのいずれか中にリクエストが先に進めなかった場合
割り当てられた時間内に、 httperf リクエストが終了したものとみなし、リクエストを閉じます。
関連する接続またはセッションが増加し、 クライアントティモ エラー数。 の
応答を待機するときに使用される実際のタイムアウト値は、このタイムアウト値とタイムアウト値の合計です。
思考タイムアウト (オプションを参照) --思考タイムアウト)。 デフォルトでは、タイムアウト値は次のとおりです。
無限。

--uri=S
そのURIを指定します S サーバー上でアクセスする必要があります。 一部のワークロードについては
ジェネレーター (例: --wset)、このオプションは、URI のプレフィックスを指定します。
アクセスしました。

-v

-詳細
置く httperf 詳細モードにします。 このモードでは、次のような追加出力が行われます。
個々の応答率サンプルと接続存続期間ヒストグラムが出力されます。

-V

- バージョン
のバージョンを印刷します httperf.

--wlog=B,F
このオプションを使用すると、特定の URI アクセス シーケンスを生成できます。 これは
たとえば、サーバー ログ ファイルに記録されたアクセスを再生するのに役立ちます。
F ASCII NUL で区切られた URI リストを含むファイルの名前です。
アクセスする必要があります。 If パラメータ B に設定されていますy”、 httperf 包み込むでしょう
リストの最後に到達したときにファイルの先頭に移動します (つまり、URI のリスト
繰り返しアクセスされます)。 と B 「」に設定しますn''、テストは遅くとも終了します
URI リストの最後に到達したとき。

--wsess=N1,N2,X
個別のリクエストではなく、セッションの生成と測定をリクエストします。
セッションは、ユーザーが考える間隔で区切られた一連のバーストで構成されます。
時間。 各バーストは固定数で構成されます L サーバーへの呼び出しの数 (L is
オプションで指定 --バースト長)。 バースト内の呼び出しは次のように発行されます。
最初に、単一の呼び出しが発行されます。 この最初の通話への応答が完了すると、
完全に受信されると、バースト内の残りのすべての呼び出しが同時に発行されます。 の
同時呼び出しは、既存の永続的な呼び出しに対するパイプライン呼び出しとして発行されます。
接続、または別の接続上の個別の呼び出しとして。 持続的かどうか
使用される接続は、サーバーが最初の呼び出しに応答するかどうかによって異なります。
「Connection: close」ヘッダー行を含む応答。 そのような行があれば、
現在、別個の接続が使用されます。

このオプションでは次のパラメータを指定します。 N1 セッションの合計数です
引き起こす、 N2 はセッションあたりの呼び出し数であり、 X ユーザーの思考時間です
(秒単位) 連続するコール バーストを区切ります。 たとえば、オプション
``--wsess=100,50,10 --バーストレン 5'' の場合、セッションは 100 個になり、合計 50 個になります。
それぞれを呼び出します。 各バーストの長さは 5 コールであるため、合計 10 コール バーストになります。
セッションごとに生成されます。 コールバースト間のユーザーの思考時間は次のようになります。
10秒。 ユーザーの思考時間に注意してください X 受信間の時間を表します。
前のコールバーストの最後の応答と最初のリクエストの送信
次のバースト。

セッションを伴うテストは、要求された数に到達するとすぐに終了します N1 セッション数
失敗したか完了しました。 セッションは失敗したと見なされます。
セッション内の操作に、オプションで指定されたタイムアウトよりも長い時間がかかります
- タイムアウト   --思考タイムアウト。 さらに、サーバーが次の場合にもセッションは失敗します。
オプションで指定されたステータスコードと一致するステータスコードを含む応答を返します - 失敗-
status.

--wsesslog=N,X,F
これは、次のようなセッション ワークロード ジェネレーターを指定します。 --wsess (それを読んでください
最初に説明します)。 と --wsesslog ただし、ユーザーセッションの多くの側面では、
URI の数と順序、リクエスト方法、思考時間、バーストを含む
長さパラメータは入力ファイルで指定できます F. 他の XNUMX つのパラメータは次のとおりです。
から保持 --wsess、 すなわち N, 開始するセッションの数、および X,  
バースト間のユーザーの思考時間 (これは、
入力ファイル F バーストごとにユーザーの思考時間を指定することもできます。 小さな
入力ファイルの例では、設定可能なパラメータを最も簡単に表示できます。

# コメント行は先頭が「#」で始まります
# キャラクター。 空白区切りのみの行
# セッション (複数の空白行は生成されません)
#「null」セッション)。 他のすべての行は、
# uri-sequence (1 行に XNUMX つの URI)。 最初の場合
# 行の文字は空白です (スペースなど)
# またはタブ)、uri は の一部であるとみなされます。
# 前のバーストの後に送信されるバースト
# 非バースト URI。

# セッション 1 の定義 (これはコメントです)
/foo.html think=2.0
/pict1.gif
/pict2.gif
/foo2.html メソッド=POST content='投稿データ'
/pict3.gif
/pict4.gif

# セッション 2 の定義
/foo3.html method=POST content="複数行\nデータ"
/foo4.html メソッド=HEAD

上記の説明では 2 つのセッションを指定しています。 最初のセッションは次のように始まります。
/foo.html のリクエスト。 /foo.html 応答が返されると、2 回のバーストが返されます。
リクエストが続きます (/pict1.gif および /pict2.gif)。 それらの応答の最後のとき
を受信すると、次のリクエストの前に XNUMX 秒のユーザー思考時間が挿入されます。
/foo2.htmlが発行されます。 このリクエストは POST として送信されます。 投稿できるデータは、
一重引用符または二重引用符の間に含まれます。 投稿されたデータ内に改行が表示される可能性があります
「\n」または「\」として”。 /foo2.html 応答の後にバーストが続きます
/pict3.gif と /pict4.gif のリクエスト。これでこのセッションは終了します。 二番目
セッションは、最初のセッションの指定に従って、しばらくしてから開始されます。 - 割合 or
- 期間 オプション。

2 番目のセッションは、デフォルトのユーザー思考時間によって区切られた XNUMX つのリクエストで構成されます。
によって指定されるように、 X のパラメータ --wsesslog オプション。 の場合 N のパラメータ
--wsesslog 入力ファイルで定義されたセッション数よりも大きいです F、 そうして
定義されたセッションは、次の期間まで繰り返し使用されます。 N セッションが作成されました (つまり、
定義されたセッションはラウンドロビン方式で使用されます)。

使用は避けるべきです --wsesslog 他のものと組み合わせて httperf そのオプション
セッションの動作とワークロード URI も制御します。 -- バースト長、 --wsess、
--wlog、   --wset。

--wset=N,X
このオプションを使用すると、指定された速度で URI のリストをウォークスルーできます。 パラメータ
N 生成する必要がある個別の URI の数を指定します。 X 指定する
新しい URI がアクセスされる速度。 の割合 0.25 同じことを意味します
URI は、次の URI に進む前に XNUMX 回連続してアクセスされます。 これ
アクセス パターンのタイプは、相対的な負荷を引き起こすワークロードを生成するのに役立ちます。
サーバーのディスク I/O サブシステム内の予測可能なトラフィック量 (仮定すると、 N
アクセスされたファイルはサーバーのバッファ キャッシュを超えるほど大きいです)。 の
生成される URI の形式は次のとおりです。 接頭辞/path.html、ここで 接頭辞 URI プレフィックスです
オプションで指定 --wset   path は次のように生成されます。 i-番目のファイル
ワーキングセット、書き留めます i XNUMX 進数で、数値の前にゼロをたくさん付けます。
必要に応じて、同じ桁数の文字列を取得します。 N-1. 次にスラッシュを挿入します
各桁の間にある文字。 たとえば、ワーキング セットの 103 番目のファイル
1024 個のファイルで構成される場合、パスは「」になります。0 / 1 / 0 / 3”。 したがって、URI が
プレフィックスは /wset1024の場合、アクセスされる URI は次のようになります。 /wset1024/0/1/0/3.html.
言い換えれば、サーバー上のファイルは 10 進ツリーとして編成される必要があります。

出力


このセクションでは、各テスト実行の終了時に出力される統計について説明します。 基本的な
以下に示す情報は、選択したワークロード ジェネレーターとは関係なく出力されます。

合計: 接続数 30000 リクエスト数 29997 応答数 29997 テスト期間 299.992 秒

接続 割合: 100.0 接続/秒 (10.0 ミリ秒/接続、同時接続数 14 以下)
接続 時間 [MS]: 最小 1.4 平均 3.0 最大 163.4 中央値 1.5 標準偏差 7.3
接続 時間 [MS]: 0.6に接続
接続 長さ [返信/コン]: 1.000

リクエスト 割合: 100.0 リクエスト/秒 (10.0 ミリ秒/リクエスト)
リクエスト サイズ [B]: 75.0

返信 [返信/秒]: 最小 98.8 平均 100.0 最大 101.2 標準偏差 0.3 (60 サンプル)
返信 時間 [MS]: レスポンス 2.4 転送 0.0
返信 サイズ [B]: ヘッダー 242.0 コンテンツ 1010.0 フッター 0.0 (合計 1252.0)
返信 ステータス: 1xx=0 2xx=29997 3xx=0 4xx=0 5xx=0

CPU 時間 [s]: ユーザー 94.31 システム 205.26 (ユーザー 31.4% システム 68.4% 合計 99.9%)
ネット I / O: 129.6 KB/秒 (1.1*10^6 bps)

エラー: 合計 3 クライアント-timo 0 ソケット-timo 0 conn拒否 3 connreset 0
エラー: fd-unavail 0 addrunavail 0 ftab-full 0 その他 0

統計には XNUMX つのグループがあります: 全体的な結果 (「合計」)、接続関連
結果 (「接続」)、HTTP リクエストの発行に関する結果 (「リクエスト」)、
サーバーから受信した応答 (「応答」) に関連する結果、その他
CPU (「CPU」) とネットワーク (「Net I/O」) の使用率に関する結果、そして最後に
特に、発生したエラーの概要 (「エラー」)。

合計セクション
このセクションでは、によって開始された TCP 接続の数を要約します。 httperf、どのように
送信したリクエストの数、受信した応答の数、およびテストの合計
期間はでした。 上記の出力例では、30,000 の接続が作成されました。
29,997 件のリクエストが送信され、29,997 件の返信が受信されました。 期間
テストはほぼ正確に 5 分 (300 秒) でした。

接続セクション
このセクションでは、ツールによって生成された TCP 接続に関連する情報を説明します。
具体的には、「接続率」の行は、新しい接続が
100.0 秒あたり XNUMX 接続の速度で開始されます。 このレートは、
接続ごとに 10.0 ミリ秒の期間。 この行の最後の数字は、
常に最大 14 個の接続が開いているということです。

「接続時間」というラベルの付いた最初の行は、成功した場合の生涯統計を示します。
接続。 接続の有効期間は、TCP 接続が確立されるまでの時間です。
接続が開始された時刻と接続が閉じられた時刻。 接続が考慮されています
正常に完了した呼び出しが少なくとも XNUMX つある場合は成功。 例では
出力の行は、最小 (「min」) 接続存続期間が 1.4 であったことを示しています。
ミリ秒、平均 (「平均」) 存続期間は 3.0 ミリ秒、最大値は XNUMX ミリ秒でした。
(「最大」) は 163.4 ミリ秒、寿命の中央値 (「中央値」) は 1.5 ミリ秒でした。
ミリ秒、寿命の標準偏差は 7.3 でした。
ミリ秒。 寿命の中央値は、次のヒストグラムに基づいて計算されます。
ミリ秒の分解能と最大有効期間は 100 秒です。 したがって、中央値は次のようになります。
少なくとも半分が成功した場合、XNUMX ミリ秒以内の精度
接続の有効期間は 100 秒以内です。

このセクションの次の統計は、TCP の確立にかかった平均時間です。
繋がり。 成功した TCP 接続の確立のみがカウントされます。 の中に
たとえば、「接続時間」というラベルの付いた XNUMX 行目は、平均して、
接続の確立には 0.6 ミリ秒かかりました。

このセクションの最後の行には「接続の長さ」というラベルが付いています。
少なくとも XNUMX つを受信した各接続で受信した応答の平均数
応答 (つまり、最初の応答を返す前に失敗した接続は、
カウントされます)。 永続的な接続により、この数値は 1.0 より大きくなる可能性があります。

リクエストセクション
「リクエストレート」というラベルの行は、HTTP リクエストが発行されたレートを示します。
およびこのレートが対応する期間。 上の例では、リクエストは
レートは 100.0 秒あたり 10.0 リクエストで、これは XNUMX ミリ秒/秒に相当します。
リクエスト。 永続的な接続が使用されない限り、結果は次のようになります。
セクションは、接続セクションの結果と非常に類似または同一です。
ただし、永続的な接続が使用される場合、複数の呼び出しを XNUMX つのサーバー上で実行できます。
単一接続の場合、結果は異なります。

「リクエスト サイズ」というラベルの行は、HTTP リクエストの平均サイズを示します。
バイト。 上の例では、平均リクエスト サイズは 75 バイトでした。

返信セクション
単純な測定の場合、多くの場合、このセクションが最も興味深いセクションになります。
「返信率」というラベルが付いていると、返信率に関するさまざまな統計が表示されます。 例では
上記では、最小 (「分」) 返信率は 98.8 秒あたり XNUMX 回の返信で、平均は XNUMX 回/秒でした。
(「平均」) は 100 秒あたり 101.2 件の返信、最大 (「最大」) レートは XNUMX でした。
0.3 秒あたりの返信数。 標準偏差は XNUMX 秒あたり XNUMX 応答でした。 人数、個数、総数
括弧内は、60 件の返信率サンプルが取得されたことを示します。 で
現在、 httperf XNUMX 秒ごとにレート サンプルを収集します。 を取得するには、
意味のある標準偏差があるため、十分な長さのテストを実行することをお勧めします。
少なくとも XNUMX 個のサンプルが得られます。 これは、少なくとも次のテスト期間に相当します。
150秒。

「Reply Time」というラベルの行には、応答に要した時間の情報が表示されます。
サーバーが応答するまでの時間と、応答を受信するまでにかかった時間。 この例では、
リクエストの最初のバイトを送信してから送信するまでに平均 2.4 ミリ秒かかりました。
応答の最初のバイトを受信します。 を「転送」する、つまり読む時間です。
応答が短すぎて測定できないため、ゼロとして表示されます。 典型的なのは、
応答全体が単一の TCP セグメントに収まります。

「応答サイズ」というラベルが付いた次の行には、応答サイズの平均サイズに関する統計が含まれています。
応答 --- すべての数値は報告されるバイト単位です。 具体的には、この行には次のものがリストされています。
応答ヘッダー、コンテンツ、およびフッターの平均長 (HTTP/1.1 ではフッターを使用して
「チャンク化された」転送エンコーディングを実現します)。 便宜上、平均合計
応答のバイト数も括弧内に示されます。 この例では、
ヘッダーの平均長 (「ヘッダー」) は 242 バイトで、コンテンツの平均長は XNUMX バイトでした。
(「コンテンツ」) は 1010 バイトで、フッターはありませんでした (「フッター」の長さは
ゼロ)。 応答の合計長は平均 1252 バイトです。

このセクションの最後の行は、受信した主なステータス コードのヒストグラムです。
サーバーからの応答。 メジャーステータスコードは「百」の位です。
完全な HTTP ステータス コード。 この例では、29,997 件の返信すべてにメジャー ステータスがありました。
コードは 2 です。ステータス コードはすべて「200 OK」だったと推測できますが、
ヒストグラム内の情報が詳細ではないため、ステータスを区別できません
同じメジャーコードを持つコード。

その他のセクション
このセクションは、クライアント マシンの CPU 使用率の概要から始まります。
この例では、「CPU time」というラベルの行は、94.31 秒が費やされたことを示しています。
ユーザー モード (「user」) での実行、システムでの実行に 205.26 秒かかりました
モード (「システム」)、これは 31.4% のユーザー モード実行と 68.4% に相当します。
システムの実行。 合計使用率は 99.9% でした。これは次の点を考慮すると予想通りです。
httperf CPUを大量に消費します。 合計 CPU 使用率が 100% を大幅に下回ると、
テストを妨げる競合プロセスがあったことを示しています。

「Net I/O」というラベルの行は、平均ネットワーク スループットをキロバイト単位で示します。
秒 (キロバイトは 1024 バイト) およびメガビット/秒 (メガビットは XNUMX バイト)
は 10^6 ビットです)。 この例では、平均ネットワーク使用量は約 129.6 キロバイトです
毎秒維持されました。 括弧内の数字は、これが以下に対応することを示します。
毎秒約 1.1 メガビット。 このネットワーク帯域幅は、
TCP 接続で送受信されたバイト数。 つまり、そうなります
発生した可能性のあるネットワーク ヘッダーや TCP 再送信は考慮されていません。

エラーセクション
最後のセクションには、実行中に発生したエラーに関する統計が含まれています。
テスト。 この例では、「Errors」というラベルの付いた XNUMX 行は、エラーがあったことを示しています。
合計 XNUMX つのエラーがあり、XNUMX つのエラーはすべてサーバーが拒否したことが原因でした。
接続を受け入れます (「conn拒否」)。 各エラーカウンターの説明
以下:

クライアントティモ: セッション、接続、または通話が次の原因で失敗した回数。
クライアントのタイムアウト ( - タイムアウト   --思考タイムアウト)オプション。

ソケットティモ: ソケットレベルでのTCP接続が失敗した回数
タイムアウト (ETIMEDOUT)。

拒否されました: TCP 接続試行が失敗した回数。
「サーバーによって接続が拒否されました」エラー (ECONNREFUSED)。

リセット: からの RESET により TCP 接続が失敗した回数。
サーバ。 通常、クライアントがデータを送信しようとしたときに RESET が受信されます。
サーバーはすでに接続の端を閉じています。 ノーザンテリトリー
サーバーは、新しい接続を確立しようとするときにも RESET を送信します。
リッスンキューがいっぱいです。

fd-unavail: の回数 httperf プロセスでファイル記述子が不足していました。
このカウントがゼロ以外の場合、テスト結果は無意味になります。
クライアントが過負荷になりました (「タイムアウト値の選択」セクションを参照)。

アドランナベイル: クライアントの TCP ポート番号が不足していた回数
(EADDRNOTAVAIL)。 このエラーは決して発生しないはずです。 そうであれば、結果は次のようになります。
破棄されました。

ftab-full: システムのファイル記述子テーブルがいっぱいになった回数。 また、
このエラーは決して発生しないはずです。 そうなった場合は、結果を破棄する必要があります。

その他: 他のタイプのエラーが発生した回数。 いつでもこれ
カウンタがゼロ以外の場合は、エラーの本当の原因を追跡する必要があります。 に
これを支援し、 httperf 最初の不明なエラー コード (errno) を出力します。
テスト実行中に発生するエラー。

日時 --wsess or --wsesslog 指定されている、 httperf 代わりにセッションを生成して測定します
個々の呼び出しの統計と追加の統計がテストの終了時に出力されます。 アン
出力例を以下に示します。

セッション [セッション/秒]: 最小 0.00 平均 0.59 最大 2.40 標準偏差 0.37 (240/450)
セッション: 平均 6.45 接続/セッション
セッション 一生 [s]: 123.9
セッション 失敗時間 [s]: 58.5
セッション 長さ ヒストグラム: 4 7 4 ... 3 3 240

「セッション レート」というラベルの付いた行には、セッション レートの最小、平均、最大レートが表示されます。
完了したセッション (5 秒のサンプリング間隔に基づく)。 規格も示しています
セッション完了率の偏差。 括弧内の数字はその数を示します
成功したセッション数と開始されたセッションの数。 上の例では、
最小、平均、および最大セッション完了率は、0.00、0.59、および 2.40 セッションでした。
それぞれ0.37秒あたり。 標準偏差は 240 セッション/秒、XNUMX セッションでした。
450 セッション中、正常に完了しました (210 セッションはタイムアウトなどのエラーにより失敗しました)。

「Session:」というラベルが付いた次の行は、測定されたセッションの平均長さを示します。
接続。 上の例では、平均 6.45 の接続が必要でした。
セッションを完了します。

「セッション存続期間」というラベルの行は、セッションが完了するまでにかかった平均時間を示しています。
成功したセッション。 上の例では、平均 123.9 秒かかりました。

「セッションの失敗時間」というラベルの行は、セッションが失敗するまでにかかった平均時間を示しています。
失敗したセッションが失敗しました。 上の例では、58.5 回の処理に平均 XNUMX 秒かかりました。
セッションが失敗します。

最後に、「セッション長ヒストグラム」というラベルの付いた行は、セッション数のヒストグラムを示します。
各セッションで受け取った応答。 上記の例では、受信後に 4 つのセッションが終了しました。
まったく応答がありません、7 は XNUMX つの応答を受け取った後に終了しました、など (省略記号は
スペース上の理由からこのマニュアルでは省略された追加のヒストグラム数)。 ノート
このヒストグラムでは、成功したセッションと失敗したセッションが区別されないことがわかります。

選択 TIMEOUT VALUES


その機械以来、 httperf で実行されるのは、利用可能なリソースの有限セットのみです。
任意に高い HTTP 負荷を維持しないでください。 たとえば、制限要因の XNUMX つは、
常時使用できる TCP ポート番号はわずか約 60,000 です。 それ以来
ほとんどの UNIX システムでは、TCP 接続が完全に閉じられるまでに XNUMX 分かかります (
TIME_WAIT 状態)、クライアントが維持できる最大レートは、1,000 回あたり最大 XNUMX リクエストです。
秒。

実際の持続可能率はそれよりもはるかに低いことがよくあります。
TCP ポートを使用すると、マシンのファイル記述子が不足する可能性があります (XNUMX つのファイル記述子は
開いている TCP 接続ごとに使用されます)。 デフォルトでは、HP-UX 10.20 では 1,024 個のファイルを開くことができます
プロセスごとの記述子。 つまり、特別な予防措置を講じなければ、 httperf 可能性
利用可能なすべてのファイル記述子をすぐに使い果たしてしまう可能性があり、その時点で
サーバーに追加の負荷を引き起こさないようにします。 この問題を回避するには、 httperf は、大阪で
オプション - タイムアウト サーバーとのすべての通信のタイムアウトを設定します。 サーバーの場合
タイムアウトが経過する前に応答しない場合、クライアントは対応する応答を考慮します。
セッション、接続、または呼び出しが「デッド」になると、関連する TCP 接続が閉じられ、
「client-timo」エラー数が増加します。 このルールの唯一の例外は、
リクエスト全体をサーバーに送信し、 httperf サーバーが追加のデータを取得できるようにします
応答の送信を開始するまでの時間。 これは、
サーバー上で完了するまでに長い時間がかかります。 この追加時間は「サーバーの思考」と呼ばれます。
時間」をオプションで指定可能 --思考タイムアウト。 デフォルトでは、この追加の考えは
時間は XNUMX 秒であるため、サーバーは常に割り当てられた時間内に応答する必要があります。
オプションで - タイムアウト.

タイムアウトが許可される httperf サーバーが過負荷になった場合でも、高い負荷を維持できるようにします。
たとえば、タイムアウトが 2 秒で、1,000 個のファイル記述子が存在すると仮定します。
利用可能な場合、提供される負荷は 500 秒あたり最大 XNUMX リクエストになる可能性があります (実際には、
持続可能な負荷は理論値よりも若干小さいことがよくあります)。 欠点としては、
タイムアウトは、接続存続期間の分布を人為的に切り詰めます。 したがって、それは
可能な限り大きく、かつ十分に小さいタイムアウト値を選択することをお勧めします。
希望の提示レートを維持します。 XNUMX 秒程度の短いタイムアウトは許容される場合がありますが、
ただし、タイムアウトを長くする (5 ~ 10 秒) ことが望ましいです。

タイムアウトはクライアントが継続できることを保証するものではないことに留意することが重要です。
提供される特定の負荷 --- 他にも多くの潜在的なリソースのボトルネックがあります。 ために
たとえば、場合によっては、クライアント マシンが単に CPU 時間を使い果たす可能性があります。 それを確保するために
特定のテストはクライアントの能力ではなくサーバーの能力を実際に測定したものであり、それは良い結果です
テストに参加するマシンの数を変えるというアイデア。 パフォーマンスが観察された場合
クライアント マシンの数が変化しても、テスト結果は同じになる可能性があります。
有効であるために。

onworks.net サービスを使用してオンラインで httperf を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。