Bear with me on this one guys. I'm trying to wrap my head around the concepts and avoid mistakes.
I understand that running multiple separate processes on the same port - in combination with reuse_port - has superseded fork_processes.
Let's say I enable keepalive connections between my Nginx reverse proxy and each upstream Tornado server.
My vague concern at this point, is that as Nginx maintains its pool of open connections, this creates a kind of implicit binding between Nginx and Tornado processes, leading to a suboptimal distribution of requests.
A situation where, perhaps, a certain pattern of light requests causes Nginx to hold open connections to a subset of Tornado processes. Then a burst of heavy requests are distributed to that subset, leaving CPUs underutilized.
Before I possibly waste a ton of time researching this issue, can anyone tell me whether my concern is justified?
If it is, can the problem be mitigated by reverting to fork_processes? I don't see why it would, but asking to make doubly sure.
Finally, is this justification for disabling keepalive connections between Nginx and Tornado, or is the trade-off considered worthwhile?