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