2013-04-03 40 views
0

流星是否利用多核心處理器?是否有需要設置的配置選項?流星是否利用多核心繫統?

+0

它可能更多是一個節點的東西和纖維的東西,但它看起來不像多核心將是一個優點http://bjouhier.wordpress.com/2012/03/11/fibers-and-threads-in -node-js-what-for /獲取更多信息 – Akshat

回答

2

簡短的回答是否定的,Meteor沒有利用多核處理器。

原因很簡單:Meteor基於node.js,根據定義,node.js不會自動擴展到多個CPU或CPU內核。

您可能想知道是否有可能以某種方式「強制」它利用多個核心。那麼,我認爲答案是'可能,但不容易'。最近,node.js包含了集羣模塊http://nodejs.org/docs/latest/api/cluster.html,它允許您啓動最終返回的子進程。對你來說這可能是一個很好的用例,比如說你正在大規模地進行圖像處理或類似的東西。但我不知道任何流星本地的方式來實現這一點。

如果您從擴展的角度看待此問題,可以嘗試通過使用* nix上的Taskset設置核心關聯來啓動每個核心的節點進程,然後在每個核心上產生一個流星實例。那可能工作,但我的直覺是你的硬件更可能扼殺在I/O而不是CPU。此外,目前兩個流星服務器不可能相互通話。

當流星進入V1時,您可能會有更多的運氣 - 關於服務器到服務器通信的路線圖,請參閱Trello note:https://trello.com/c/RKEYpJ4P/46-multitier-server-architecture-support-very-large-numbers-of-simultaneous-clients

最後,請記住,Meteor仍在開發中,Galaxy可能(我在這裏推測)支持多核處理。 Galaxy是MDG團隊目前正在開發的流星平臺。你可以閱讀更多關於這個項目上http://www.meteor.com/blog/2012/07/25/meteors-new-112-million-development-budget

我希望這可以幫助。

+0

小改正,多個Meteor服務器可以使用meteor-cluster智能包(運行在redit上)互相交談,或者它是後繼的,智能收集(使用mongo OPLOG)。 所以是的,如果你在每個核心上有一個不同的mongo進程,在它前面有一個負載均衡器,並且有一個這樣的智能軟件包,你可以很容易地擴展......雖然除非你的應用程序是瘋狂的資源密集型,毫無疑問,單個應用需要超過1個內核。 http://www.meteorpedia.com/read/Scaling_your_Meteor_App – gadicc

+0

對不起,我收回我的「不會需要超過1核心」的評論......當然最終是真正想要適當擴展的大應用。並根據上述,你可以。還可以考慮使用PaaS提供商,這使得這一切變得更加容易(只要您安裝了上述智能軟件包之一併且PaaS提供商使用會話相關性設置了其負載均衡器),他們將爲您處理所有這些事情。 – gadicc

+0

編輯:自從我發佈了大量關於在Galaxy發佈之前對流星進行縮放的工作(目前傳聞將於2014年第一季度發佈)。我特別推薦這篇來自Arunoda的文章:http://meteorhacks.com/how-to-scale-meteor.html –

2

現在,你可以通過Cluster獲得流星的多個核心。 這就是你要做的。

首先添加羣集包:

meteor add meteorhacks:kadira 

然後暴露該ENV。運行您的應用程序時可變:

export CLUSTER_WORKERS_COUNT=auto 

欲瞭解更多信息,請關注此article