HTTP圧力測定ツールWrkの紹介と使用

2192 ワード

紹介する
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