gobench

command module
v0.0.0-...-e66bd7a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

README

Gobench

This is minimal fork of upstream to be able to run for http proxy

socks5 proxy code is private in upstream and thus doesn't work in this fork

Scrutinizer BuildGo Report CardLicense

Gobench is a simple web benchmark written in golang. It use goroutine to simulate concurrent HTTP requests.

Feature

  • Supports GET, POST, HEAD, OPTION, TRACE
  • Support both HTTP/HTTPS and SOCKS5 proxy
  • Support HTTP/1.1 and HTTP/2
  • High concurrency

Installation

go get github.com/itsjwala/gobench
# adding $GOPATH/bin into your $PATH may be needed
export PATH=$GOPATH/bin:$PATH

Usage

gobench [option]... URL:

  -data string
    	Post data, json format supports only.
  -duration int
    	Run gobench for <sec> seconds. (default 60)
  -get
    	Use GET(default) request method.
  -head
    	Use HEAD request method.
  -http2
    	Use HTTP2 protocol.
  -interval int
    	Interval between each request of every client <millisecond>.
  -option
    	Use OPTIONS request method.
  -post
    	Use POST request method.
  -proxy string
    	Use http/https proxy server for request <host:port>.
  -reload
    	Send reload request - Pragma: no-cache.
  -socks5 string
    	Use socks5 proxy server for request <host:port>.
  -thread int
    	Run <n> threads at once. (default 1)
  -timeout int
    	Request timeout <millisecond>.
  -trace
    	Use TRACE request method.
  -version
    	Display program version.

Example

# GET
gobench -thread=50 -duration=120 http://127.0.0.1:8082/hello
# POST
gobench -thread=50 -duration=120 -post -data='{"data": "hello,world"}' http://127.0.0.1:8082/echo

Performance

Environment
Hardware Parameters
CPU Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (4 x 6 = 24 cores)
MEM 64GB
Echo-Server-Test
GET
> gobench -thread=50  http://172.31.0.193:8082/hello
gobench - simple web benchmark - version  1.00
Copyright (c) zhvala 2017-2018, Apache 2.0 Open Source Software.

Bench start:
URL:  http://172.31.0.193:8082/hello
HTTP method:  GET
HTTP version: HTTP/1.1
Thread num:  50
Duration:  1m0s
Request interval: none
Request timeout: none

Bench finish.
Total requests:  4982972
Success requests:  4982972
Failed requests:  0
Requests per second:  83049
Average response time:  385.216µs
Total send:  228.1 MiB
Total recv:  613.0 MiB
Send per second:  3.8 MiB
Recv per second:  10.2 MiB
POST
> gobench -thread=50 -post -data='{"data": "hello,world"}' http://172.31.0.193:8082/echo
gobench - simple web benchmark - version  1.00
Copyright (c) zhvala 2017-2018, Apache 2.0 Open Source Software.

Bench start:
URL:  http://172.31.0.193:8082/echo
HTTP method:  POST
HTTP version: HTTP/1.1
Thread num:  50
Duration:  1m0s
Request interval: none
Request timeout: none

Bench finish.
Total requests:  3909748
Success requests:  3909748
Failed requests:  0
Requests per second:  65162
Average response time:  535.24µs
Total send:  264.7 MiB
Total recv:  522.0 MiB
Send per second:  4.4 MiB
Recv per second:  8.7 MiB

Author

zhvala(zhvala@foxmail.com)

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL