• Stars
    star
    27
  • Rank 905,827 (Top 18 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Application for HTTP benchmarking via different rules and configs

Go Benchmark App

Build Status License codecov Coverage Status Go Report Card GoDoc

The efficiency and speed of application - our goal and the basic idea.

Go Benchmark App

Application for HTTP-benchmarking via different rules and configurations.

Configurations provided via TOML-config.

Our main aims - compare different web-applications that we want to compare with same benchmarks tools, same parameters, repeated and distributed in time. Get average results and compare it with other applications.

This will allow us to analyze and compare the performance bottlenecks, and to take appropriate measures. The efficiency and speed of application - our goal and the basic idea.

Benchmarks tools

ab, wrk, siege

It should be installed.

How to configure

All config at config/main.toml

# Title for describing benchmarks
title = "CMS benchmarks"
# Benchmarks version
version = "0.1"
# Delay via try in seconds
delay = 20
# How much we should try
try = 10

# ab benchmarks parametres
[ab]
concurency = 5000
keepalive = false
requests = 10000

# wrk benchmarks parametres
[wrk]
connections = 5000
duration = 10
threads = 1000

# siege benchmarks parametres
[siege]
concurrent = 100
time = 30

# Applications parametres - list
[[app]]
title = "Application Banchamrs Title"
path = "fool/path/to/app"
url = "http://localhost:5000/test"

How to use

  • Installed Go 1.6+

  • Check is benchmarks tools installed:

    $ whereis ab

    $ whereis wrk

    $ whereis siege

  • Configure config/main.toml in current dirrectory as mentioned before.

  • Install application: $ go install github.com/mrlsd/go-benchmark-app

  • Command-line help: $ go-benchmark-app -h

Go Benchmark Applications v1.0.0
Options:
  -c FILE
    	load configuration from FILE (default "config/main.toml")
  -v	verbose output
  • To change config file - run: $ go-benchmark-app -c path/to/cfg.toml
  • Verbose output: $ go-benchmark-app -v

Tips & Tricks

  • When your benchmarks test failed with socket error (more resources unawailable), try increase delay options at config file (for example 60 sec) or/and change system limits to opened files, TCP/IP configuration and other system limitations.
  • For flexibility running test applications you can create recipe for that. For example set at config file:
[[app]]
title = "My App"
path = "apps/myapp.sh"
url = "http://localhost:5000/test"

and apps/myapp.sh file:

#!/bin/sh
prepare -to -run
/full/path/to/app -v param -d param -etc

in that way you can run docker, nginx or another useful commands.

For one application we use one URL, because it's simplify results analyze, interpretation, comparison.

License: MIT License

More Repositories

1

riscv-fs

F# RISC-V Instruction Set formal specification
F#
279
star
2

iron-cms

CMS based on Iron Framework for Rust lang
Rust
46
star
3

semantic-analyzer-rs

Semantic analyzer library for compilers written in Rust for semantic analysis of programming languages AST
Rust
34
star
4

nickel-cms

The research project on the development of CMS based on Nickel framework
Rust
14
star
5

amq

Message queue distributed framework based on Actix
Rust
12
star
6

iLang

iLang - a functional programming language and compiler
Rust
9
star
7

riscv-cpu

RISC-V five stage pipline CPU
SystemVerilog
5
star
8

fpga

Research & Development FPGA projects for different boards
GLSL
4
star
9

echo-cms

CMS based on Echo golang framework
HTML
4
star
10

reqrep-events

Golang sample app for REQ/REP message queue events based on go-mangos
Go
3
star
11

rcp

Fast copy files based on Rust lang
Rust
3
star
12

rocket-rs

Rust Rocket app
Rust
3
star
13

useful-rust

Rust useful tools & tutorials based on https://doc.rust-lang.org/book/ Chapters and Rust By Examples
Rust
2
star
14

llvm-api-swift

Swift LLVM API is a library and utils set fully compatible with LLVM-C API. The library can be used to create compilers backend based on LLVM
Swift
2
star
15

llvm-sample

Rust
2
star
16

DAG-chain

DAG chain platform
F#
2
star
17

llvm-ir-tutor

LLVM IR Tutorial
LLVM
2
star
18

riscv-gcc-source-tests

C
2
star
19

avr-timers

AVR timers solutions
Assembly
2
star
20

reqrep-rs

Rust
2
star
21

simple-employees-task

Go
1
star
22

hsb

Haskell
1
star
23

gpg-test

1
star
24

auth-kit

Golang Authentication Kit
Go
1
star
25

status-check

Status Check system based on Yii Framework
PHP
1
star
26

mrLSD

Let's change the world... My favorite languages: Rust, F#, Go, Haskell
1
star
27

tokenomics

JavaScript
1
star
28

nodemcu-v3

NodeMCU v3 devboard projects
1
star
29

go-tutorial

Go Tutorials
Go
1
star
30

toy-codegen

Toy Codegen as example for `semantic-analyzer-rs` library.
Rust
1
star
31

mips-one-stage-cpu

MIPS 32 one stage CPU with limited ISA
Verilog
1
star
32

HaskellTutorials

Haskell
1
star
33

swift-async-toy

Toy async queue implemented on Swift
Swift
1
star
34

hashmap-copy

Rustlang concurent copy and change hashmap
Rust
1
star
35

dandelion

Semantic parser
F#
1
star
36

arduino

Arduino projects based on Atmel chips
C++
1
star
37

julia-dockerhub

DockerHub files for https://hub.docker.com/r/mrlsd/julia/
Makefile
1
star
38

exonum-blockchain

Exomun framework Blockchaind samples
1
star
39

yogaGo

Yoga CMS based on Golang
HTML
1
star
40

simple-http-files

Go
1
star
41

linux-util

Most useful utils for Linux
Shell
1
star
42

pyredmine

Python redmine console grid renderer for specific user and sorted by priority
Python
1
star
43

cabal-dependency-resolver

Haskell Cabal packages dependency resolver
Python
1
star
44

agda-emacs

Agda & Emacs integrations and samples code
Agda
1
star
45

idris-docker

Idris language docker image builder
Makefile
1
star
46

yasvm

Yet another simple Virtual Machine
Rust
1
star
47

rust-patterns

Rust design putterns templates
Rust
1
star
48

useful-haskell

Useful Haskell and algorithms
Haskell
1
star
49

git-fetch-history

Filter git commits and change their data
Go
1
star
50

book-formatter

Format text book to html formatted with page separation
Rust
1
star