Show how many concurrent connections can be handled by http-kit
Java Clojure Racket Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
results
src
ConcurrencyBench.java
README.md
project.clj
run_server
run_test

README.md

scale clojure web application

Test how Clojure web application scales concurrent HTTP connections with http-kit

600K concurrent HTTP connections with 3G heap.

More info: 600k concurrent HTTP connections on PC, with Clojure & http-kit

If a more powerful hardware is at hand and you want to get a larger number:

Tuning TCP/IP buffer sizes

# edit run_server. give it more RAM, http-kit will use ~2k  per connection
java -server -Xms3072m -Xmx3072m  \
    -cp `lein classpath` clojure.main \
    -m main $@
// edit ConcurrencyBench.java.
final static int PER_IP = 20000;  // 63K is the upper bound
final static InetSocketAddress ADDRS[] = new InetSocketAddress[30];
// 600k concurrent connections
final static int CONCURENCY = PER_IP * ADDRS.length;