Giter VIP home page Giter VIP logo

alex's Introduction

Alex

Alex is one benchmark web UI using golang based on vegeta library & boom. Vegeta provides stabilized qps benchmark library. Boom provided stabilized concurrency benchmark ability.

中文文档

Alex Architecture

Alex Architecture

Alex Functionalities

  1. Saves benchmark parameters for repeated usage
  2. Saves benchmark reports for future review or sharing
  3. Provides simple but direct graphics & text benchmark report
  4. Multiple benchmarks can be running concurrently
  5. Multiple Host:ports can be tested as a cluster in a single benchmark with load balance supporting
  6. Data hotspot can be avoided by providing randomized parameters
  7. Provides gradually pressure with step settings
  8. Provides simple machine status realtime displaying while benchmark is running

Alex Limitations

  1. Alex is running in a single process, you should deploy multiple nodes if you need a distrubted environment.you should arrange multiple persons to operate benchmark in the same time.
  2. Vegeta will not stop immediately while pressure is overload.Please design your pressure steps carefully & watch your machine status carefully.
  3. Qps & Concurrency should not be too large.I once tested vegeta benchmark with helloword web program splitting out 1.5k bytes per request, 60000 qps reaches the limit for the network limitations of Gigabit Ethernet.
  4. Gzip decompression should be avoided when doing a massive pressure benchmark.Decompression costs too much cpu to make the report quite inaccurate.You can deploy multiple nodes instead.
  5. Report is only for suggestion, you should bravely ask yourself why.
  6. Http protocol only.Https is not provided.Encrypting and decrypting will cost too much cpu, report will not be accurate.
  7. With all of those limitations, Alex works quite well.

Installing

install mongodb
install golang  # 1.4+ is required

go get github.com/go-martini/martini
go get github.com/tsenart/vegeta
go get gopkg.in/mgo.v2
go get github.com/shirou/gopsutil
# godep restore

git clone https://github.com/shellquery/alex.git
cd alex
go build
./alex
./alex -c config.json

open browser
http://localhost:8000/

Configuration

{
    "BindAddr": "localhost:8000",
    "MongoUrl": "mongodb://localhost:27017/alex",
    "Teams": [
        "python",
        "java",
        "php",
        "go"
    ]
}

References

  1. wonderful vegeta https://github.com/tsenart/vegeta
  2. straight-forward boom https://github.com/rakyll/boom

Screenshots

Benchmark List Randomize Host:ports Randomize Parameters Step Settings Benchmark Reports

Notice

Keep it simple, I will not add more but complex functionalities to Alex. If there's any bugs or suggestions, please tell me, I will fix it ASAP.

<img src="screenshot/weixin.png" width="320" title="QR"/ >

alex's People

Contributors

pyloque avatar

Watchers

 avatar  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.