21 回読む 2016-04-13 12:43 | システム カテゴリ: パフォーマンスの最適化 |
テスト環境の概要
このテストは次の環境に基づいています:
-
ApacheBench(v2.3)
-
Mac OS X 10.10.5
-
2.7 GHz Intel Core i5
-
メモリ 8GB
内容概要
この記事は主に ab テストの特定のパラメータを収集します。 ab テストの基本的な使い方を例文と例で紹介します。
ApacheBench (以下、ab) について
公式の説明は次のとおりです。 ab は、Apache Hypertext Transfer Protocol ( HTTP) サーバー Simple これは、同時にサーバーを要求する複数のユーザーの動作をシミュレートするマルチスレッドを作成できるストレス テスト ツールです。これにより、ターゲット サーバーでのストレス テストをシミュレートするという目的を達成できます。 https://github.com Web サイトは次のとおりです:
ab パラメーターの詳細な説明
ab テストのパラメーターを説明するには、上の図に問い合わせてください:
サーバー ソフトウェア
テストされた Web サーバー ソフトウェアの名前。http 応答データからのヘッダー情報。
サーバー ホスト名
ヘッダーから取得される、要求された URL 内のホスト部分の名前。 http リクエスト データの情報。
サーバー ポート
テストされた Web サーバー ソフトウェアのリスニング ポート。
SSL/TLS プロトコル
間のネゴシエーション ヘッダー情報。クライアントとサーバー。この情報は SSL プロトコルが使用されている場合にのみ出力されます。たとえば、ここでテストした Github Web サイトは https プロトコルを使用しており、この情報は
Document で出力されます。 Path
リクエスト URL のルート絶対パス。場所は / です。
Document Length
最初の応答データのテキスト長 (バイト単位)。 >
同時実行レベル
コマンド内の同時ユーザーの数。 -c に続くパラメーターとして表示されます。
テストにかかった時間
合計所要時間すべてのリクエスト。合計リクエストは、最初のソケットが作成されてから受け入れられるまでのパラメーターとして -n の後に表示されます。
リクエストの完了
。
コマンドの -n の後のパラメーターと一致するリクエストの合計数。
失敗したリクエスト
失敗したリクエストの数は、サーバーへの接続における例外を指します。データの送信、データの受信など、および応答なしでタイムアウトした場合、受信した http 応答データのヘッダー情報に 2xx 以外のステータス コードが含まれている場合、テスト結果には非 2xx 応答と呼ばれる別の統計項目が表示されます。これはリクエストの数をカウントするために使用されます。これらのリクエストは失敗したリクエストとはみなされません。
送信された本文の合計
リクエストの場合、POST タイプのリクエスト本文のみがここに表示されます。
転送された HTML
各 http 応答データのヘッダーを含む、すべてのリクエストの応答データの合計の長さ メッセージと本文データの長さ (
転送された HTML
すべてのリクエストの応答データ内の本文データの合計、つまり、応答データ内のヘッダー情報を除く長さ.
1 秒あたりのリクエスト
これは、サーバーが 1 秒あたりに受け入れることができるリクエストの数、つまりスループット レートに相当します。完全なリクエスト / 所要時間の式で計算できます。テストの場合、上図に示すように、結果は 10 / 10.497 ≈ 0.95 として計算されます。これ以降の計算結果は、値がどのように変化するかをテストするための平均値であることを意味します。リクエストの数が増加すると、プログラム分析が特別に作成されました。 クリックしてコードを表示し、質問を表示します。
リクエストごとの時間
最初の TPR は、ユーザーの平均リクエスト待機時間を表します。テストにかかった時間 / (リクエストの完了 / 同時実行レベル) の式で計算されます。たとえば、上の図の結果を 10.497 / 10 / 2 ≈ 2099.4 として計算します (
あたりの時間)。 request
2 番目の TPR は、サーバーが各同時リクエストを処理するのにかかる平均時間を表します。 上図の結果を計算すると、リクエストごとの時間 / 同時実行レベルが計算されます。 1049.7 (これはおおよその値です)。
転送速度
からのリクエストです。 サーバーによって取得されるデータ長は、たとえば、「総転送量 / テストにかかった時間」という式で計算できます。 , 上の図では、結果は 273337(byte) / 10.497 ≈ 26039.5351 / 1024(kb) ≈ 25.43kb/s として計算されます。ここからも確認できます。
接続のおおよその帯域幅要件。 Times(ms)
ここでは、Connect、Processing、Waiting、および Total について説明します。 Connect は、ネットワーク遅延とリモート サーバーとの接続を確立するコストを表します。 time、Processing は、ここで、待機時間は、送信された最初のバイトと最初の応答バイトが受信されるまでにかかる時間をおおよそ推測できます。合計は、接続の確立から最初のバイトの応答を受信するまでの合計時間を表します。もちろん、上の図の結果に基づいて単純に加算することはできません。なぜなら、この数字は平均値を表しているからです。
一定時間内に処理されたリクエストの割合 (ms)
これは、リクエストの処理時間の分布が上記のリクエストあたりの時間に対応していることを示しています。処理時間は 1535 ミリ秒未満です。接続時間によると、最長処理時間は 6394 ミリ秒、最短処理時間は 1306 ミリ秒です。
gnuplot ツールを使用して、アイコン
に従って直感的に分析します。 -g パラメーターを gnuplot と組み合わせて使用すると、アイコンから分析できます。分析結果をより直感的に確認できます。次の図は、簡単な ab テスト後に gnuplot によって生成された図です。
基本的な使用例
以下では、いくつかの基本的な使用シナリオを紹介します。詳細については、参照リンクをクリックして、ab パラメーターの公式 Web サイトの概要を参照してください。
Simulate GET request-n1000
ab -n1000 http:// www.example.com/
Simulate POST request- n1000
ここでは、現在のフォルダーに p.json ファイルを準備する必要があります。ファイルの内容は、json 形式のキーと値のペアです。 : ab -n1000 -p p.json -T application/json http://www .example.com/
同時実行性のシミュレーション -n1000 -c20 (c
同時実行数はリクエストの総数を超えることはできません: ab -n1000 -c20 http://www.example .com/
戻りヘッダー情報を表示します -n1000 -v 3 (-v はオプション 2、 3, 4)
ab -n1000 -v 2 http://www.example.com /
アイコン表示結果 -n1000 -g g.tsv
gnuplot が分析チャートを生成するために必要なデータ ファイル: ab -n1000 -g g.tsv http://www.example. com/
参考リンク
主な参考リンクは次のとおりです。 Apache httpd(v2.4) 各種パラメータの意味 接続時間 gnuplot について