HTTP - Benchmark (Download - Get / Upload - Put request)
About
Web Server benchmarking.
See also: Web - Page Load Time (Speed|Performance)
Software
Throughput
Http request
Wrk
wrk -c50 -d2m --latency -H 'Accept-Encoding: gzip, deflate, br' http://testmachine.com:8080/large
Running 2m test @ http://testmachine.com:8080/large
2 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 412.75ms 123.88ms 1.20s 84.45%
Req/Sec 60.65 15.89 101.00 65.26%
Latency Distribution
50% 387.97ms
75% 421.85ms
90% 511.70ms
99% 858.45ms
14545 requests in 2.00m, 738.39MB read
Requests/sec: 121.18
Transfer/sec: 6.15MB
Plow
https://github.com/six-ddc/plow
plow http://127.0.0.1:8080/hello -c 20
Benchmarking http://127.0.0.1:8080/hello using 20 connection(s).
@ Real-time charts is listening on http://[::]:18888
Summary:
Elapsed 8.6s
Count 969657
2xx 776392
4xx 193265
RPS 112741.713
Reads 10.192MB/s
Writes 6.774MB/s
Statistics Min Mean StdDev Max
Latency 32µs 176µs 37µs 1.839ms
RPS 108558.4 112818.12 2456.63 115949.98
Latency Percentile:
P50 P75 P90 P95 P99 P99.9 P99.99
173µs 198µs 222µs 238µs 274µs 352µs 498µs
Latency Histogram:
141µs 273028 ■■■■■■■■■■■■■■■■■■■■■■■■
177µs 458955 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
209µs 204717 ■■■■■■■■■■■■■■■■■■
235µs 26146 ■■
269µs 6029 ■
320µs 721
403µs 58
524µs 3
Apache Bench (ab)
Apache Bench 1) is a command line program bundled with Apache HTTP Server.
Example: 100 HTTP GET requests, processing up to 10 requests concurrently
ab -n 100 -c 10 "http://en.wikipedia.org/wiki/Main_Page"
It handles HTTP 'get' requests very well, and can be made to handle HTTP 'post' requests with a little effort. Written in 'C', it performs very well, and offers good (if basic) performance reporting.
Jmeter
HttpUnit
It is a library (and therefore of more interest to developers) that can be used to perform HTTP tests/benchmarks. It is intended to be used instead of a web browser (therefore no GUI) in conjunction with JUnit .
HP Load Runner
performance testing product