2013-09-26 74 views

回答

4

Sidekiq限於Ruby能夠做到的任何事情。如果您在MRI Ruby中運行Sidekiq,則每個Sidekiq進程僅限於一個內核。您可以通過運行多個MRI流程來利用所有核心。

如果您在JRuby中運行Sidekiq,則該進程可以利用所有內核。

所有Sidekiq進程都可以處理任何隊列,而不管它們在哪個機器上運行。

+0

因此,在一臺具有MRI Ruby的4核心機器上,我們應該有4個進程並根據需要縮放回併發?每個流程是否都知道要搶佔不同的核心? –

+1

更準確地說,一次使用一個核心就可以運行Ruby代碼。它不是與一個核心「捆綁」的;相反,操作系統會在各種核心上安排時間。雖然Ruby一次只能在一個內核上解釋(感謝全局解釋器鎖定),但IO仍可能發生在後臺線程上。 – davogones

+1

即使您有4個內核,如果您的工作負載是IO密集型而非CPU密集型,您也可能能夠啓動更多的Sidekiq進程。 – davogones

相關問題