vvidic / gb

Go HTTP server benchmarking tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gb

Go HTTP server benchmarking tool

By default gb starts 20 goroutines, each opening a single connection to the target server and sends requests in a loop for 15 seconds. After the test is finished results from all goroutines are merged and reported.

Example usage:

$ gb -histogram https://some.web.site/path
Running 20 parallel clients for 15s...
Stopping clients and collecting results...

Duration: 15.00s
Requests: 14700
Rate: 979.86 req/s
Size: 59.43 MB (4.14 kB/req)
Throughput: 3.96 MB/s
Bandwidth: 33.23 Mbps

Status[200]: 14700

Time[ 13 ms]:    2       |
Time[ 14 ms]:   58       |*
Time[ 15 ms]:  314       |*****
Time[ 16 ms]:  765       |**************
Time[ 17 ms]: 1301 (10%) |************************
Time[ 18 ms]: 2162 (25%) |****************************************
Time[ 19 ms]: 2835 (50%) |*****************************************************
Time[ 20 ms]: 2526       |***********************************************
Time[ 21 ms]: 1747 (75%) |********************************
Time[ 22 ms]: 1075       |********************
Time[ 23 ms]:  710 (90%) |*************
Time[ 24 ms]:  434       |********
Time[ 25 ms]:  267 (95%) |****
Time[ 26 ms]:  171       |***
Time[ 27 ms]:   91       |*
Time[ 28 ms]:   65       |*
Time[ 29 ms]:   40 (99%) |
Time[ 30 ms]:   31       |
Time[ 31 ms]:   25       |
Time[ 32 ms]:    8       |
Time[ 33 ms]:   10       |
Time[ 34 ms]:    7       |
Time[ 35 ms]:    4       |
Time[ 36 ms]:    4       |
Time[ 37 ms]:    6       |
Time[ 38 ms]:    3       |
Time[ 39 ms]:    3       |
Time[ 40 ms]:    3       |
Time[ 41 ms]:    1       |
Time[ 42 ms]:    3       |
Time[ 43 ms]:    2       |
Time[ 44 ms]:    3       |
Time[ 45 ms]:    1       |
Time[ 46 ms]:    1       |
Time[ 47 ms]:    1       |
Time[ 55 ms]:    1       |
Time[ 94 ms]:    2       |
Time[ 95 ms]:    4       |
Time[ 99 ms]:    1       |
Time[100 ms]:    5       |
Time[102 ms]:    2       |
Time[103 ms]:    1       |
Time[104 ms]:    2       |
Time[105 ms]:    2       |
Time[106 ms]:    1       |

Available command line options:

$ gb -help
Usage: gb [options] <url>

Options:
  -compression
        use HTTP compression (default true)
  -cpuprofile string
        write cpu profile to file
  -duration duration
        test duration (default 15s)
  -gcpercent int
        garbage collection target percentage (default 1000)
  -histogram
        display response time histogram
  -memprofile string
        write memory profile to file
  -parallel int
        number of parallel client connections (default 20)
  -rampup duration
        startup interval for client connections
  -rate int
        limit the rate of requests per second
  -redirects
        follow HTTP redirects (default true)
  -timeout duration
        request timeout (default 10s)

About

Go HTTP server benchmarking tool

License:GNU General Public License v3.0


Languages

Language:Go 100.0%