市場には無数の圧力測定ツールが存在するので、一般的に使用されているものをいくつか簡単に紹介します。
1、Apache ab
abは、Apacheに付属のストレステストツールで、非常に便利です。
インストール
1. Ab操作はapr-utilパッケージに依存する必要があります。インストールコマンドは次のとおりです。
yum install apr-util
2.ダウンロードするには、yumdownloadコマンドが必要です。このコマンドを使用しないと、次のことができます。
yum install yum-utils
3.ダウンロードおよび解凍用の新しいディレクトリを作成します。
cd /opt
mkdir abtmp
cd abtmp
yum install yum-utils.noarch
yumdownloader httpd-tools*
rpm2cpio httpd-tools*.rpm | cpio -idmv
4. ./user/bin/abをシステムビンにコピーします。
cp /opt/abtmp/usr/bin/ab /usr/bin
5.次のコマンドを使用して、インストールが成功したかどうかを確認します。
ab -V
6. ab --helpは必要なテストを実行できます
ストレステスト
圧力試験の前に、いくつかのオプションに焦点を当てる必要によるab -help
鑑賞
Options are:
-n requests 要执行的请求次数
-c concurrency 并发数量
-s timeout 响应时间
実施した:
# 总共100个并发执行1000此请求,超时时间为1s
ab -n 1000 -c 100 -s 1 http://www.baidu.com
2、wrk
wrkは、C言語で開発された、使用が簡単で強力な最新のhttpパフォーマンスベンチマークツールです。
インストール
githubからソースコードをダウンロードし、wrk githubアドレスをコンパイルしてインストール できます。
ストレステスト
wrkのコマンドオプションは多くありません。使いやすいです。
Usage: wrk <options> <url>
Options:
-c, --connections <N> 建立的连接
-d, --duration <T> 执行测试时间
-t, --threads <N> 线程数量
-s, --script <S> 使用lua脚本(非常强大的功能,有兴趣可以深入研究)
-H, --header <H> 为每一个HTTP请求添加HTTP头
--latency 在压测结束后,打印延迟统计信息
--timeout <T> 超时时间
-v, --version Print version details
Numeric arguments may include a SI unit (1k, 1M, 1G)
Time arguments may include a time unit (2s, 2m, 2h)
# 10个线程100个连接压测30s
wrk -c100 -t10 -d30s http://www.baidu.com
3、JMeter
Apache JMeterは、Javaによって記述されたGUIテストツールで、強力な機能とさまざまな結果をもたらします。
インストール
Apache JMeterにアクセスして、ダウンロードしてインストールできます。
使用する
1.計画を作成する
2.スレッドグループの確立
プランが確立すると、スレッドグループを確立できます。確立方法:プランを選択した後、[編集]> [追加]> [スレッド]> [スレッドグループ]
スレッドグループは、スレッドのいくつかのパラメータ、主にスレッド数(ユーザー)とループカウントを設定できます
3.リスナーを追加する
リスナーは主にいくつかの結果レポートを生成し、追加する方法は次のとおりです:スレッドグループを選択した後の編集>追加>リスナー
多くの結果レポートがあることがわかります。私は通常、次の結果レポートを使用します
-
結果ツリーを表示
-
集計レポート
-
グラフ結果
-
結果表を表示
結果ツリーを表示
このレポートはリクエストツリーを生成します。クリックして各リクエストの情報を表示します
集計レポート
このレポートは、リクエストの集約された統計を生成します。主なパラメーターはQPS、伝送速度などです。
グラフ結果
強力なグラフィカルレポート結果
グラフ結果のいくつかの説明
-
サンプル数:サーバーに送信されたリクエストの数を表します
-
偏差:時間に対応するサーバーで変化するデータの分布を表します
-
最新のサンプル:サーバーが最後のリクエストに応答した時刻を示します
-
スループット(スループット率):サーバーが1分あたりに処理するデータの量
-
平均:合計実行時間をサーバーに送信されたリクエスト数で割った値を示します
-
中央値(中央値):サーバー時間の半分がこの値よりも短く、残りの半分がこの値よりも長いことを意味します
グラフィカルな結果に基づくいくつかの分析
-
開始時のスループット率は比較的低く、リクエスト数が増えると、スループット率は最初に増加し、その後減少します。
-
偏差は、行われる要求の数の増加に伴う偏差、サーバーのますます不安定な場合、非常に安定した状態を維持するのにも適しています