Hard to say… I am not personally familiar with Tornado but I do know
nginx with a very similar config with keepalive’s at 5/10 seconds will
do much more than that…
It’s a very odd situation. I know it sounds dumb but do you have any
errors in your ‘dmesg’ or in the nginx logs? Is it running out of
buffered memory or system sockets?
Is reuse connections on in your sysctl’s? I would double-check your
sysctl config and personally I would run KeepAlive. This would ensure
reusing connections and not opening a new connection for every request.
Everyone has their own opinion keepalive with attacks, large volumes of
traffic, etc. However, we have found it to perform much better, less
resources, and worse case - if you are having a bottleneck from
something else then it would likely be more efficient.