Skip to content
BENCH: performance tool for distributed systems
Elixir HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
lib
.formatter.exs
.gitignore
CNAME
LICENSE
README.md
index.html
mix.exs

README.md

BENCH: Performance tool for distributed systems

Feartures

  • Multi-server, Multi-IP-address, Multi-Protocol support
  • Scripting Language for tests scripts
  • Telemetry Dashboarding
  • Tiny Size

Defaults and Limits

  • IANA/BSD: 49152 — 65535 = C16383
  • Linux: 32768 — 61000 = C28232
  • Maximum per IP address: 1024 — 65535 = C64511

Setup

Run Investigated Application

As example we run CHAT application which depends on cowboy, n2o, kvs, syn, asn1. The size of CHAT is 100 LOC.

$ git clone https://github.com/o7/chat && cd chat
$ mix deps.get
$ iex -S mix

Run Bench

Bench applicatioin is using gun as WebSocket client. The size of BENCH is 100 LOC.

$ git clone https://github.com/o7/bench && cd bench
$ mix deps.get
$ iex -S mix

Check connections and liveness

$ lsof -Pn -i4 | grep "8042 " | grep ESTABLISHED | wc -l
50000
iex(2)> send :n2o_pi.pid(:caching,"Bench 50000"), {:send_msg, "AUTH maxim"}
"Send \"Bench 50000\""
{:send_msg, "AUTH maxim"}
iex(3)> "Income {:text, \"USER maxim\"}"

Credits

  • Georgi Spasov
  • Maxim Sokhatsky
You can’t perform that action at this time.