Giter VIP home page Giter VIP logo

rench's Introduction

RENCH

A benchmark utility for end points. Written in rust... rust + bench = rench

CircleCI Travis Crates.io Crates.io Crates.io

Installation

Installation requires either git or cargo.

From Source

Clone or fork the repo and run the following:

cargo install -f

From crates

cargo install -f rench

This should install and download from the latest release version.

Usage

The gist of a http benchmarker is to run a series of queries against an endpoint and collect the facts from it. These facts then are summarized for the user to examine. To really maximize an end point, we use a simple threading model to make many requests at the same time. This allows us to generate a large number of requests and try to fully saturate the http end point.

You can change the number of threads and the number of requests to suit your needs. You can even specify multiple URLs and it will round-robin the requests between them.

$ ./target/release/rench -c 4 --engine=hyper -n 10000 http://0.0.0.0:6767
Beginning requests
1000 requests
2000 requests
3000 requests
4000 requests
5000 requests
6000 requests
7000 requests
8000 requests
9000 requests
10000 requests
Finished!

Took 4.813263821 seconds
2077.5923306697964 requests / second

Summary
  Average:   1.88827 ms (std: 0.763338 ms)
  Median:    1.012478 ms
  Longest:   1005.942426 ms
  Shortest:  0.403114 ms
  Requests:  10000
  Data:      234.38 KB

Status codes:
  200: 10000

Latency Percentiles (2% of requests per bar):
                                                 ▌ 7.399224
                                                 ▌
                                                 ▌
                                                ▌▌
                                               ▖▌▌
                                              ▖▌▌▌
                                             ▖▌▌▌▌
                                        ▖▖▖▌▌▌▌▌▌▌
         ▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▖▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌ 0


Latency Histogram (each bar is 2% of max latency)
▌                                                  9862
▌
▌
▌
▌
▌
▌
▌
▌
▌▖                                                 0

Options

$ rench --help
Git Release Names
Kevin Choubacha <[email protected]>

USAGE:
    rench [FLAGS] [OPTIONS] <URL>...

FLAGS:
    -h, --help       Prints help information
    -i, --head       The issue head requests instead of get
    -V, --version    Prints version information

OPTIONS:
        --chart-size <chart-size>    The size of the chart to render [possible values: none, n, small, s, medium, m,
                                     large, l]
    -c <concurrency>                 The number of concurrent requests to make
    -e, --engine <engine>            The engine to use [default: hyper]  [possible values: hyper, reqwest]
        --header <header>...         Headers to inject in the request. Example '--header user-agent:rust-rench'
    -n <requests>                    The number of requests in total to make

ARGS:
    <URL>...    Each url specified will be round robined.

rench's People

Contributors

choubacha avatar ecsumed avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.