• Stars
    star
    27
  • Rank 875,054 (Top 18 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 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#
276
star
2

iron-cms

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

semantic-analyzer-rs

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

nickel-cms

The research project on the development of CMS based on Nickel framework
Rust
13
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

rocket-rs

Rust Rocket app
Rust
3
star
12

rcp

Fast copy files based on Rust lang
Rust
3
star
13

llvm-sample

Rust
2
star
14

DAG-chain

DAG chain platform
F#
2
star
15

llvm-ir-tutor

LLVM IR Tutorial
LLVM
2
star
16

avr-timers

AVR timers solutions
Assembly
2
star
17

reqrep-rs

Rust
2
star
18

useful-rust

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

riscv-gcc-source-tests

C
2
star
20

simple-employees-task

Go
1
star
21

hsb

Haskell
1
star
22

mrLSD

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

gpg-test

1
star
24

auth-kit

Golang Authentication Kit
Go
1
star
25

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 compiler backend based on LLVM
Swift
1
star
26

status-check

Status Check system based on Yii Framework
PHP
1
star
27

linux-util

Most useful utils for Linux
Shell
1
star
28

agda-emacs

Agda & Emacs integrations and samples code
Agda
1
star
29

git-fetch-history

Filter git commits and change their data
Go
1
star
30

rust-patterns

Rust design putterns templates
Rust
1
star
31

tokenomics

JavaScript
1
star
32

pyredmine

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

book-formatter

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

arduino

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

useful-haskell

Useful Haskell and algorithms
Haskell
1
star
36

go-tutorial

Go Tutorials
Go
1
star
37

mips-one-stage-cpu

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

HaskellTutorials

Haskell
1
star
39

idris-docker

Idris language docker image builder
Makefile
1
star
40

hashmap-copy

Rustlang concurent copy and change hashmap
Rust
1
star
41

cabal-dependency-resolver

Haskell Cabal packages dependency resolver
Python
1
star
42

julia-dockerhub

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

swift-async-toy

Toy async queue implemented on Swift
Swift
1
star
44

nodemcu-v3

NodeMCU v3 devboard projects
1
star
45

yasvm

Yet another simple Virtual Machine
Rust
1
star
46

yogaGo

Yoga CMS based on Golang
HTML
1
star
47

simple-http-files

Go
1
star
48

exonum-blockchain

Exomun framework Blockchaind samples
1
star
49

dandelion

Semantic parser
F#
1
star