我喜歡node.js的事件觸發的模式,但是隻需要你到目前爲止 - 當你有一個函數(比如HTTP連接請求處理程序),做了許多繁重的工作在CPU上,它仍然是‘堵’直到它的函數返回。這是可以預料的。但是如果我想平衡這一點,那麼使用操作系統安排流程的能力,給定請求需要更長時間才能處理,但整體響應時間會更短?分叉更多的工人可以讓我平衡CPU繁重的工作嗎?
我的生產代碼使用節點的非常簡單的集羣模塊到餐桌多名工人等於核心系統的CPU擁有的數量。分叉比這更糟 - 每個核心可能有兩三名工人?我知道這裏會有內存開銷,但內存不是我的限制。我所做的閱讀提到你想避免「超額訂閱」,但是在現代系統中肯定會有兩到三個進程在處理器上爭奪時間,所以你不會發瘋。
非常好的答案。應該被接受。 – Drasill
謝謝@Drasill;我會順便注意到,更新的Linux內核版本似乎更加準備好在處理器之間遷移任務,從而使'taskset'調用的重要性不如以往。我會很高興地離開這個,因爲所有那些較舊的Linux安裝需要十年才能遷移或更新版本。 – sarnold