<div dir="ltr"><div dir="ltr"><div>During my time at Heroku, we managed to make the Erlang TLS implementation (as a server) perform on par with Amazon's ELB stack -- it was something like 1-2ms (out of like 13-15ms) slower on the median case, but several seconds (if not minutes!) faster in the worst case, per connection, overall much more stable. We needed to patch a few things, but since around OTP-20, all of these have made it to upstream in OTP.<br></div><div><br></div><div>The type of configuration used is described in a gist at <a href="https://gist.github.com/ferd/af9abf6b3600d2d7f08dba58fdfb514a">https://gist.github.com/ferd/af9abf6b3600d2d7f08dba58fdfb514a</a> -- the format changed in OTP-21, but the most important parts are all there.</div><div><br></div><div>In short, it relies mostly on: <br></div><div>- good configuration of cache (mostly disabling a bunch of them when you don't need disk cache)</div><div>- good configuration of preferred cipher suites and ECCs (picking more complex ones than required slows things down -- i.e. picking a secp512 ECC instead of secp256 one iirc almost doubled the handshake time compared to AWS until we replicated their configurations)</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 5, 2018 at 9:19 AM, Frank Muller <span dir="ltr"><<a href="mailto:frank.muller.erl@gmail.com" target="_blank">frank.muller.erl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Hi guys</div><div dir="auto"><br></div><div dir="auto">Would like to hear from your experience(s) on using Erlang with TLS/SSL. The default Erlang stack doesn't perform well, Google says.</div><div dir="auto"><br></div><div dir="auto">Does anyone use Erlang in production behind:</div><div dir="auto"><br></div><div dir="auto">. Hitch: <a href="https://hitch-tls.org/" target="_blank">https://hitch-tls.org/</a><div dir="auto">. Envoy: <a href="https://www.envoyproxy.io/" target="_blank">https://www.envoyproxy.io/</a><br></div></div><div dir="auto">. HAProxy: <a href="http://www.haproxy.org/" target="_blank">http://www.haproxy.org/</a></div><div dir="auto">. ???</div><div dir="auto"><br></div><div dir="auto">Or directly using:</div><div dir="auto">. gen_ssl: how to make it scale?</div><div dir="auto">. fast_tls: <a href="https://github.com/processone/fast_tls" target="_blank">https://github.com/processone/<wbr>fast_tls</a></div><div dir="auto">. ???</div><div dir="auto"><br></div><div dir="auto"><div dir="auto">Some of the solutions above are fast, some scale well ... but all with downsides (ex. Hitch adds  200kiB overhead per connection).</div><div dir="auto"><br></div></div><div dir="auto">We’re planning to go live with a fairly large number of secure connections: 45k - 75k. The sessions should be short (few seconds). Transferred data should range between 50KiB to 1miB max.</div><div dir="auto"><br></div><div dir="auto">Insights and/or feedbacks are very welcome. </div><span class="HOEnZb"><font color="#888888"><div dir="auto"><br></div><div dir="auto">/Frank</div>
</font></span><br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>