压力测试工具Benchmark
程序员文章站
2022-05-01 08:45:40
...
(1)WEB服务
ab(Apache Bench)
使用:
结果:
Weighttp
使用:
结果:
wrk
使用:
结果:
httperf
使用:
结果:
[b](2)数据库
SysBench
使用:
结果:
pgbench
使用:
结果:
mysqlslap
使用:
结果:
参考:
http://gwan.com/en_apachebench_httperf.html
http://d.hatena.ne.jp/sh2/20120723
http://www.aikaiyuan.com/7569.html
http://en.wikipedia.org/wiki/Transaction_Processing_Performance_Council
ab(Apache Bench)
使用:
引用
$ ab -n 100000 -c 100 -t 1 -k http://127.0.0.1:8080/
结果:
引用
Concurrency Level: 100
Time taken for tests: 1.000 seconds
Complete requests: 11996
Failed requests: 0
Write errors: 0
Keep-Alive requests: 11923
Total transferred: 10184239 bytes
HTML transferred: 7341552 bytes
Requests per second: 11996.00 [#/sec] (mean)
Time per request: 8.336 [ms] (mean)
Time per request: 0.083 [ms] (mean, across all concurrent requests)
Transfer rate: 9945.55 [Kbytes/sec] received
Time taken for tests: 1.000 seconds
Complete requests: 11996
Failed requests: 0
Write errors: 0
Keep-Alive requests: 11923
Total transferred: 10184239 bytes
HTML transferred: 7341552 bytes
Requests per second: 11996.00 [#/sec] (mean)
Time per request: 8.336 [ms] (mean)
Time per request: 0.083 [ms] (mean, across all concurrent requests)
Transfer rate: 9945.55 [Kbytes/sec] received
Weighttp
使用:
引用
$ weighttp -n 10000 -c 1000 -t 4 -k http://127.0.0.1:8080/
结果:
引用
finished in 1 sec, 707 millisec and 611 microsec, 5856 req/s, 1847 kbyte/s
requests: 10000 total, 10000 started, 10000 done, 10000 succeeded, 0 failed, 0 errored
status codes: 10000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 3230000 bytes total, 1720000 bytes http, 1510000 bytes data
requests: 10000 total, 10000 started, 10000 done, 10000 succeeded, 0 failed, 0 errored
status codes: 10000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 3230000 bytes total, 1720000 bytes http, 1510000 bytes data
wrk
使用:
引用
$ wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
结果:
引用
Running 30s test @ http://127.0.0.1:8080/index.html
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 635.91us 0.89ms 12.92ms 93.69%
Req/Sec 56.20k 8.07k 62.00k 86.54%
22464657 requests in 30.00s, 17.76GB read
Requests/sec: 748868.53
Transfer/sec: 606.33MB
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 635.91us 0.89ms 12.92ms 93.69%
Req/Sec 56.20k 8.07k 62.00k 86.54%
22464657 requests in 30.00s, 17.76GB read
Requests/sec: 748868.53
Transfer/sec: 606.33MB
httperf
使用:
引用
$ httperf --server=127.0.0.1 --port=8080 --rate=100 --num-conns=100 --num-calls=100000 --timeout=5 --hog --uri=/
结果:
引用
Maximum connect burst length: 1
Total: connections 10 requests 10 replies 10 test-duration 9.286 s
Connection rate: 1.1 conn/s (928.6 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 284.2 avg 303.2 max 376.2 median 284.5 stddev 38.4
Connection time [ms]: connect 91.8
Connection length [replies/conn]: 1.000
Request rate: 1.1 req/s (928.6 ms/req)
Request size : 68.0
Reply rate [replies/s]: min 1.0 avg 1.0 max 1.0 stddev 0.0 (1 samples)
Reply time [ms]: response 99.1 transfer 112.3
Reply size [B]: header 241.0 content 29147.0 footer 0.0 (total 29388.0)
Reply status: 1xx=0 2xx=10 3xx=0 4xx=0 5xx=0
CPU time [s]: user 1.99 system 7.27 (user 21.5% system 78.3% total 99.7%)
Net I/O: 31.0 KB/s (0.3*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
Total: connections 10 requests 10 replies 10 test-duration 9.286 s
Connection rate: 1.1 conn/s (928.6 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 284.2 avg 303.2 max 376.2 median 284.5 stddev 38.4
Connection time [ms]: connect 91.8
Connection length [replies/conn]: 1.000
Request rate: 1.1 req/s (928.6 ms/req)
Request size : 68.0
Reply rate [replies/s]: min 1.0 avg 1.0 max 1.0 stddev 0.0 (1 samples)
Reply time [ms]: response 99.1 transfer 112.3
Reply size [B]: header 241.0 content 29147.0 footer 0.0 (total 29388.0)
Reply status: 1xx=0 2xx=10 3xx=0 4xx=0 5xx=0
CPU time [s]: user 1.99 system 7.27 (user 21.5% system 78.3% total 99.7%)
Net I/O: 31.0 KB/s (0.3*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
[b](2)数据库
SysBench
使用:
引用
$ sysbench --test=oltp --db-driver=mysql --mysql-password=sbtest prepare
$ sysbench --test=oltp --db-driver=mysql --mysql-password=sbtest run
$ sysbench --test=oltp --db-driver=mysql --mysql-password=sbtest run
结果:
引用
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 10000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 140000
write: 50000
other: 20000
total: 210000
transactions: 10000 (25.72 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 190000 (488.63 per sec.)
other operations: 20000 (51.43 per sec.)
Test execution summary:
total time: 388.8436s
total number of events: 10000
total time taken by event execution: 388.7773
per-request statistics:
min: 28.61ms
avg: 38.88ms
max: 178.72ms
approx. 95 percentile: 44.83ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 388.7773/0.00
Running the test with following options:
Number of threads: 1
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 10000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 140000
write: 50000
other: 20000
total: 210000
transactions: 10000 (25.72 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 190000 (488.63 per sec.)
other operations: 20000 (51.43 per sec.)
Test execution summary:
total time: 388.8436s
total number of events: 10000
total time taken by event execution: 388.7773
per-request statistics:
min: 28.61ms
avg: 38.88ms
max: 178.72ms
approx. 95 percentile: 44.83ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 388.7773/0.00
pgbench
使用:
引用
$ pgbench -i testdb
$ pgbench -c 10 -t 1000 testdb
$ pgbench -c 10 -t 1000 testdb
结果:
引用
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 10
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 657.505424 (including connections establishing)
tps = 659.935326 (excluding connections establishing)
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 10
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 657.505424 (including connections establishing)
tps = 659.935326 (excluding connections establishing)
mysqlslap
使用:
引用
mysqlslap -a -c 500 -i 10 -uroot -p123456
结果:
引用
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 9.451 seconds
Minimum number of seconds to run all queries: 9.288 seconds
Maximum number of seconds to run all queries: 9.704 seconds
Number of clients running queries: 50
Average number of queries per client: 2000
Running for engine innodb
Average number of seconds to run all queries: 9.451 seconds
Minimum number of seconds to run all queries: 9.288 seconds
Maximum number of seconds to run all queries: 9.704 seconds
Number of clients running queries: 50
Average number of queries per client: 2000
参考:
http://gwan.com/en_apachebench_httperf.html
http://d.hatena.ne.jp/sh2/20120723
http://www.aikaiyuan.com/7569.html
http://en.wikipedia.org/wiki/Transaction_Processing_Performance_Council
上一篇: Web API分页
下一篇: Cordova 3.x 入门 - 目录