Nostr relay benchmaker

```sh

cargo install nostr-bench nostr-bench --help

Usage: nostr-bench

Commands:

connect Benchmark create websocket connections

echo Benchmark send websocket message, the server should send back the message

event Benchmark publish nostr event

req Benchmark request nostr event

help Print this message or the help of the given subcommand(s)

```

```sh

nostr-bench connect --help

Usage: nostr-bench connect [OPTIONS]

Arguments:

Nostr relay host url

Options:

-c, --count Max count of clients [default: 100]

-r, --rate Start open connection rate every second [default: 50]

-k, --keepalive Close connection after second, ignore when set to 0 [default: 0]

-t, --threads Set the amount of threads, default 0 will use all system available cores [default: 0]

-i, --interface Network interface address list

--json Display stats information as json, time format as milli seconds

-h, --help Print help

```

Get more connections

Since the system limits a network interface to connect up to 64k, you can set --interface to bind more interface to increase the number of connections

sh nostr-bench connect 'ws://127.0.0.1:8080' --interface 192.168.0.2 --interface 192.168.0.3

Increase resource usage limits

Linux

sh ulimit -n 1000000 sudo sysctl -w net.ipv4.ip_local_port_range="1025 65534"

Mac OS

```sh

ulimit -n 1000000

sysctl net.inet.ip.portrange

sudo sysctl -w net.inet.ip.portrange.first=1025 sudo sysctl -w net.inet.ip.portrange.last=65534

```