Apache Bench ストレステストツールの実装原理と使用状況分析

Apache Bench ストレステストツールの実装原理と使用状況分析

1: スループット(1秒あたりのリクエスト数)

サーバーの同時処理能力を定量的に表したもので、reqs/s で測定されます。これは、一定数の同時ユーザーのもとで単位時間あたりに処理されるリクエストの数を指します。一定数の同時ユーザーのもとで単位時間あたりに処理できるリクエストの最大数を最大スループットと呼びます。

注意: スループットは同時ユーザー数に基づきます。この文は 2 つの意味を表します: 1. スループット レートは同時ユーザー数に関係します。2. スループット レートは、通常、同時ユーザー数によって異なります。

計算式: リクエストの総数 / これらのリクエストの処理に費やされた時間、つまり、

1秒あたりのリクエスト数 = 完了したリクエスト数 / テストにかかった時間

2: 同時接続数

同時接続数とは、特定の瞬間にサーバーが受け入れるリクエストの数、つまり簡単に言えばセッションの数を指します。

3: 同時ユーザー数(同時実行レベル)

この概念を同時接続数と区別することが重要です。ユーザーは同時に複数のセッションまたは接続を持つ場合があります。 HTTP/1.1 では、IE7 は 2 つの同時接続をサポートし、IE8 は 6 つの同時接続をサポートし、FireFox3 は 4 つの同時接続をサポートするため、同時ユーザー数はこの基数で割る必要があります。

4: ユーザーリクエストの平均待ち時間(リクエストあたりの時間)

計算式:すべてのリクエストの処理に要した時間 / (リクエストの総数 / 同時ユーザー数)、つまり

リクエストあたりの時間 = テストにかかる時間 / (完了したリクエスト数 / 同時実行レベル)

5: サーバーの平均リクエスト待機時間 (リクエストあたりの時間: すべての同時リクエスト全体)

計算式:すべてのリクエストの処理にかかった時間/リクエストの総数、つまり

/ テストにかかる時間リクエストを完了する

ご覧のとおり、これはスループット レートの逆数です。

同時に、平均ユーザーリクエスト待機時間 / 同時ユーザー数、つまり、

リクエストあたりの時間 / 同時実行レベル

公式サイトダウンロードアドレス: https://www.apachelounge.com/download/

ダウンロード後、解凍し、cmd を使用して現在のプロジェクト解凍ディレクトリに入ります。

次に、シェル コマンド実行インターフェイスに入ります (bin ディレクトリに入ります)。

テストコマンド:

./ab -n 100 -c 10 http://localhost:8085/linewell/test1/pass/testApacheBench.do

-n はリクエストの数を示し、-c は最大で複数のリクエストを同時に送信できることを示します。

私の Java テストでは、-c が 1 に設定されている場合、Java バックエンド コントローラーは 1 秒間遅延し、1 つずつ処理するため、基本的に 100 回の処理時間が必要になります。 -c が 10 の場合、一度に 10 個が処理されます。

出力:

これは ApacheBench バージョン 2.3 です <$Revision: 1843412 $>
著作権 1996 Adam Twiss、Zeus Technology Ltd、http://www.zeustech.net/
Apache Software Foundation にライセンス供与されています (http://www.apache.org/)

ローカルホストのベンチマーク(しばらくお待ちください).....完了


サーバーソフトウェア:
サーバーホスト名: localhost
サーバーポート: 8085

ドキュメントパス: /linewell/test1/pass/testApacheBench.do
文書の長さ: 0 バイト

同時実行レベル: 10
テストにかかった時間: 0.077秒
リクエストを完了: 100
失敗したリクエスト: 0
2xx以外の応答: 100
転送合計: 9200 バイト
転送された HTML: 0 バイト
1秒あたりのリクエスト数: 1299.09 [#/秒] (平均)
リクエストあたりの時間: 7.698 [ms] (平均)
リクエストあたりの時間: 0.770 [ms] (平均、すべての同時リクエスト全体)
転送速度: 116.72 [Kbytes/sec] 受信

接続時間 (ミリ秒)
    最小 平均[+/- 標準偏差] 中央値 最大値
接続: 0 0 0.3 0 1
処理: 1 5 3.4 5 27
待機中: 1 4 3.1 4 26
合計: 2 5 3.4 5 27

一定時間内に処理されたリクエストの割合(ミリ秒)
 50% 5
 66% 6
 75% 7
 80% 7
 90% 9
 95% 11
 98% 11
 99% 27
 100% 27 (最長リクエスト)

出力結果分析:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Apache Bench で Web ストレス テストを実装する方法
  • Apache ab同時負荷ストレステストの実装方法
  • Apache abツールを使用してApacheサーバーで簡単なストレステストを実行します。
  • Apache ストレステストと Web パフォーマンス最適化に関する一般的な知識のまとめ
  • Apache ab ツールページストレステストの戻り結果の解釈
  • Apache ストレステストツールのインストールと使用

<<:  Vueコンポーネント通信方法事例まとめ

>>:  Docker初心者が初めてよく使うコマンドを試してみる練習記録

推薦する

Vue ElementUI で Excel ファイルを手動でサーバーにアップロードする方法の詳細な説明

目次概要プロパティ設定処理ロジック概要具体的な需要シナリオは次のとおりです。 Excel ファイルを...

デザイン参考 WordPressウェブサイト構築成功事例

これら 16 のサイトはそれぞれ注意深く読む価値があり、どのサイトでも推奨されている Web サイト...

MySQL 内部結合の使用例 (必読)

文法規則 列名を選択 テーブル名1から INNER JOIN テーブル名2 ON テーブル名1.列名...

スタイルを書く際の背景色宣言の重要性

タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...

記事では、js を使用して弾幕効果を実現する方法を説明します

目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...

シンプルで簡単なJavaScript開発のためのSvelte実装原理の詳細な説明

目次デモ1フラグメントの作成スヴェルトコンポーネント状態を変更できるデモSvelte は長い間存在し...

HTML フォーム タグの使用方法を学ぶチュートリアル

HTML のフォームを使用して、ユーザーからさまざまな種類の入力情報を収集できます。フォームは、実際...

NodeJSプロセスがどのように終了するかについて詳しく説明します

目次序文積極的な撤退例外、拒否、および発行されたエラー信号まとめ序文NodeJS プロセスが終了する...

JS の配列トラバーサルについて、一般的なループをいくつ知っていますか?

序文基本的なデータ構造として、配列とオブジェクトはさまざまなプログラミング言語で重要な役割を果たしま...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

JavaScriptクロージャの原理と機能の詳細な説明

目次導入クロージャの使用カレー作りパブリック変数の実装キャッシュカプセル化(属性のプライベート化)閉...

MySQL 文字セットの表示と変更のチュートリアル

1. 文字セットを確認する1. MYSQLデータベースサーバーとデータベースの文字セットを確認する方...

Vue でカスタムパスのエイリアスを設定する方法

Vue でカスタム パス エイリアスを設定する方法日常の開発では、モジュールやコンポーネントをインポ...

テーブルの動的な色の変更を実現するJavaScript

この記事では、テーブルの動的な色の変更を実現するためのJavaScriptの具体的なコードを参考まで...