This article is quite good, especially part about bottleneck caused by single supervisor in ranch. However I have to say that title is a bit misleading because all of this has nothing to do with Elixir, it's all about Linux kernel and Erlang, cowboy and ranch are written in Erlang.<p>Having said that, I will add that I think it is good to have Elixir.
I'd love to see data on the average on-call incidents for an application written in language X (say Go) vs those written in Elixir.<p>Concretely, its it the case, for an application where Elixir/Erlang/Beam are a great choice, but also, another language would be fine, that the equivalent Elixir application results in less downtime/pages than the alternative. Anything from the perfect app to something with a ton of races/leaks.<p>Is this a fair question (maybe I'm presuming too much of BEAM/supervisor pattern, I zero experience with it)?
I can handle 120k connections per second with my custom made, highly optimized multiprocess C++ server. But the main problem is business logic. Just make 2 SQL queries to MySQL on each HTTP request and look at how it will degrade.
> What this means, performance-wise, is that measuring requests per second gets a lot more attention than connections per second. Usually, the latter can be one or two orders of magnitude lower than the former.<p>does anyone know how does 100k connections compare with other servers?
im a simple man. i see Elixir, i upvote.<p>that being said, this article was pretty informative. The bit about the proposed SO_REUSEPORT socket option was really interesting. Really fun to read about performance bottleneck detection and improvement.<p>edit: wow, downvoting for making a simple joke about liking elixir. Cool.
Id like to see memory consumption charts for this. It seems you miss this on all your posts. Not a criticism (and thank you for what you have done), its just something I (and others) would like to see, and if you are running the tests its just another metric to log :D<p>Also, any update on your previous article? <a href="https://news.ycombinator.com/item?id=19094233" rel="nofollow">https://news.ycombinator.com/item?id=19094233</a>
ejabberd [0], XMPP server is written in erlang and powers chat in some of the biggest MMORPGs [1].<p>[0]: <a href="https://github.com/processone/ejabberd" rel="nofollow">https://github.com/processone/ejabberd</a><p>[1]: <a href="https://xmpp.org/uses/gaming.html" rel="nofollow">https://xmpp.org/uses/gaming.html</a>
>Finally, the connections per second rate reaches 99k, with network latency and available CPU resources contributing to the next bottleneck.<p>Can someone educate me on what they might talking about here ?
CPU is ~45% in their final graph. I don't know what network latency means in this context though. Roundtrip for a TCP handshake ? That seems unlikely.
Even if connections per second can be a magnitude or two lower than requests per second this result is still quite off by today's alternative.<p>14 core machine comparing .net core with other top webservers:
<a href="https://www.ageofascent.com/2019/02/04/asp-net-core-saturating-10gbe-at-7-million-requests-per-second/" rel="nofollow">https://www.ageofascent.com/2019/02/04/asp-net-core-saturati...</a>