Hi.

On Mar 16, 2016 10:06 PM, "Willy Tarreau" <
>
> Here I don't know. TLS handshakes are one large part of what made me think
> that we must go multi-threaded instead of multi-process over the long
term,
> just because I want to be able to pin some tasks to some CPUs. Ie when TLS
> says "handshake needed", we want to be able to migrate the task to another
> CPU to avoid the huge latency imposed to all other processing (eg: 7ms in
> your case).
>

While that would help a single server, how about when dealing with multi
servers + anycast: Has there been any thoughts about sharing ssl/tls
session cache between servers? Like how apache can use memcache to store
its cache or how cloudfare used/patched openresty to do the same recently.

> But note that people who have to deal with heavy SSL traffic actually
> deal with this in haproxy by using to levels of processing, one for
> HTTP and one for TLS. It means that only TLS traffic can be hurt by
> handshakes :
>
>    listen secure
>         bind :443 ssl crt foo.pem process 2-32
>         mode tcp
>         server clear 127.0.0.1:80
>
>    frontend clear
>         bind :80 process 1
>         mode http
>         use_backend my_wonderful_server_farm
>
>    ...
>
> And before linux kernel reintroduced support for SO_REUSEPORT (in
> 3.9), it was common to have the single process load-balance incoming
> TCP connections to all other TLS processes. It then makes it possible
> to chose the LB algo you want, including source hash so that a same
> attacker can only affect one process for example.
>
> Willy
>
>

Reply via email to