Achieving 100k connections per second with Elixir
https://stressgrid.com/blog/100k_cps_with_elixir/ [stressgrid.com]
2019-03-06 04:00
tags:
benchmark
erlang
networking
perf
programming
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: L
The Curious Case of BEAM CPU Usage
https://stressgrid.com/blog/beam_cpu_usage/ [stressgrid.com]
2019-02-13 20:22
tags:
benchmark
concurrency
erlang
perf
Turns out, busy waiting in BEAM is an optimization that ensures maximum responsiveness. In essence, when waiting for a certain event, the virtual machine first enters a CPU-intensive tight loop, where it continuously checks to see if the event in question has occurred.
In our test, we found that BEAM’s busy wait settings do have a significant impact on CPU usage. The highest impact was observed on the instance with the most available CPU capacity. At the same time, we did not observe any meaningful difference in performance between VMs with busy waiting enabled and disabled.
source: L