Achieving 100k connections per second with Elixir
Furthermore, they proposed a Linux kernel patch that introduced the socket option, that makes it possible to open many listener sockets on the same port, causing the sockets to be load-balanced when accepting new connections. By analyzing the initial test results, proposing a theory, and confirming it by measuring against modified software, we were able to find two bottlenecks on the way to getting to 100k connections per second with Elixir and Ranch. The combination of multiple connection supervisors in Ranch and multiple listener sockets in the Linux kernel is necessary to achieve full utilization of the 36-core machine under the target workload.
Source: stressgrid.com