0
我正在使用Tornado异步框架来实现REST Web服务器。在Tornado上运行异步后台任务
我需要在相同服务器的背景上运行高CPU负荷周期性任务。
这是一个低优先级定期任务。它应该始终在所有空闲内核上运行,但我不希望它影响Web服务器的性能(在HTTP请求负载过重的情况下,它应该具有较低的优先级)。
我可以使用Tornado IOLoop API吗?
我知道我可以使用tornado.ioloop.PeriodicCallback
来调用周期性的后台任务。但是,如果这项任务的计算量很大,我可能会对Web服务造成性能问题。
感谢您的答复。如果我将工作人员与Web服务器分开,这意味着我不能让工作人员在同一台服务器上运行,而不必担心是否会影响Web服务器。所以你建议在不同的隔离核心上使用另一个进程? (我现在让Tornado产生一个每核心进程) – ShaharA
我不知道你的配置是什么。内核调度程序将很好地处理进程管理(及其资源),但是当然每个进程都可能使cpu,io,mem饥饿,解决方案可能是使用cgroups(普通或像docker这样的容器)。关键信息再次是你有多少资源,以及工作者,网络服务器需要多少,而没有测试你需要水晶球;) – kwarunek