2017-06-17 112 views
3

閱讀了關於縮放節點應用程序的一些文章後,我還沒有決定何時應該使用節點內置集羣或僅添加更多的dynos。節點集羣與Dynos縮放

讓我告訴你,我已經閱讀StackOverflow上以下主題:

How to properly scale nodejs app on heroku using clusters

Running Node.js App with cluster module is meaningless in Heroku?

據我的理解是,如果我使用節點羣集的功能我將結束可用總內存除以分叉進程的數量。

另一方面,如果我增加一個動態測試儀,我會增加可用內存的兩倍。

那麼,使用節點集羣有什麼意義?

回答

3

這不是一個真正的任何一種情況。您可以在多個dynos上使用多個節點羣集實例。然而,內存並不是你想要看的東西,因爲這將是一個共享資源。由於每個節點進程一次只能使用一個CPU內核,因此CPU /內核使用情況與節點內的羣集更相關。

這真的要取決於你正在使用哪些dynos。

你見過官方heroku文檔上的these suggestions嗎?

+2

是的,那些瘋狂的文檔....在Heroku的情況下,寫得很好,強制讀取使用他們的東西的人,imo – Paul

+0

@dvlsg,好吧,正是在閱讀那個文檔後,我認爲不應該看CPU,但在由測功機持有的RAM上。但是,例如,如果我使用免費帳戶,即具有512 MB內存的dyno,則使用羣集沒有意義,對吧? – utxeee

+0

不,在大多數情況下,您仍然需要查看CPU /內核。但是如果你使用免費的dynos(或嗜好或標準-1x),你的結論仍然是正確的。您只需要使用節點應用程序的一個實例,因爲只有一個核心可供您使用。 [默認表](https://devcenter.heroku.com/articles/node-concurrency#tuning-the-concurrency-level)以及羣集工作者的數量是您想要在這裏查看的內容。 – dvlsg