We currently have the option to run tornado multiprocess: cfg['webserver']['numcpus']. Note that this is broken, since the ioloop needs to be started after the httpserver when cpus > 1.
We are also hijacking the ioloop for messaging, so this creates interference and problems.
Solutions:
Disable multiprocess webserver. This is easy, and probably what we should do for now.
Start the server on a separate ioloop than messaging. Now we have to do thread coordination to communicate with messaging, which makes everything painful and slower. This gives us possibly higher IOPS at the cost of latency, cpu, and code complexity.
We currently have the option to run tornado multiprocess:
cfg['webserver']['numcpus']
. Note that this is broken, since the ioloop needs to be started after the httpserver when cpus > 1.We are also hijacking the ioloop for messaging, so this creates interference and problems.
Solutions: