HTTP圧力測定ツールWrkの紹介と使用
2192 ワード
紹介する
wrkは簡単なHTTP圧力測定ツールで、Githubに信託管理しています。https://github.com/wg/wrk. wrkの優れた特性の一つは、少ないスレッドで大きな同時量を押し出すことができるということです。その理由は、オペレーティングシステムによって特定された高性能io機構を使用しています。例えば、select、epoll、kqueueなど.redisを多重化したae非同期イベント駆動フレームワークです。正確に言えば、aeイベント駆動フレームワークはredisが発明したものではありません。Tclのインタプリタジッmについては、このコンパクトで効率的なフレームワークは、redisに採用されているので、より多くの人々に知られています。
インストール
パラメータの説明:
応答時間の分布を見たいなら、
wrkは簡単なHTTP圧力測定ツールで、Githubに信託管理しています。https://github.com/wg/wrk. wrkの優れた特性の一つは、少ないスレッドで大きな同時量を押し出すことができるということです。その理由は、オペレーティングシステムによって特定された高性能io機構を使用しています。例えば、select、epoll、kqueueなど.redisを多重化したae非同期イベント駆動フレームワークです。正確に言えば、aeイベント駆動フレームワークはredisが発明したものではありません。Tclのインタプリタジッmについては、このコンパクトで効率的なフレームワークは、redisに採用されているので、より多くの人々に知られています。
インストール
git clone https://github.com/wg/wrk.git
cd wrk
make
使用 wrk -t12 -c100 -d30s http://www.baidu.com
戻り値:Running 30s test @ http://www.baidu.com
12 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 300.59ms 210.80ms 1.99s 87.17%
Req/Sec 28.25 15.33 121.00 68.12%
10036 requests in 30.10s, 149.22MB read
Socket errors: connect 0, read 29, write 0, timeout 24
Requests/sec: 333.47
Transfer/sec: 4.96MB
パラメータの説明:パラメータの説明:
12 threads and 100 connections
:全部で12スレッド、100個の接続(1スレッドではなく1つの接続)latency
及びReq/Sec
:単一スレッドの統計データを表し、latency
は遅延時間を表し、Req/Sec
は単一スレッドが毎秒完了する要求数を表し、彼らは平均値、標準偏差、最大値、正負の標準偏差比率を有する。一般的に私たちは平均と最大値に注目しています。標準偏差が大きすぎると、サンプル自体の離散度が比較的高いことが分かります。システム性能が大きく変動する可能性があります。10036 requests in 30.10s, 149.22MB read
は30秒以内に全部で10036
の要求があります。全部で149.22MB
のデータを読みます。Socket errors: connect 0, read 29, write 0, timeout 24
は全部で29個の読み間違いがあり、24個のタイムアウトがあります。Requests/sec Transfer/sec
すべてのスレッドは平均して一秒当たり333.47の要求を完了し、一秒あたり4.96 MBのデータ量を読み出す。応答時間の分布を見たいなら、
--latency
を追加することができる。wrk -t12 -c100 -d30s --latency http://www.baidu.com
Running 30s test @ http://www.baidu.com
12 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 401.52ms 270.05ms 1.98s 91.39%
Req/Sec 21.04 10.87 60.00 56.44%
Latency Distribution
50% 307.72ms
75% 317.86ms
90% 616.33ms
99% 1.66s
7487 requests in 30.10s, 111.42MB read
Socket errors: connect 0, read 4, write 0, timeout 55
Requests/sec: 248.70
Transfer/sec: 3.70MB