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 ```