2017-07-06 27 views
0

我們要在改造一個CMS爲基礎的網站的,我們希望服務至少10+萬獨立用戶/月的電視頻道,約400多萬個請求/月,平均帶寬40兆兆字節的工作/月這是他們的舊網站的CloudFlare統計數據,他們期待更多。我們正在計劃將後端作爲rest API來構建,作爲前端響應和另一個響應cms管理員面板的應用程序API,我們之間爭論不休。 Ruby和節點,還有一些人說節點更快,在資源消耗方面會更便宜,Ruby對節點有效嗎?Ruby雲實例是否可以處理節點實例可以處理的相同數量的流量?任何建議值得轉向節點嗎?Ruby雲實例可以處理節點實例將執行的相同數量的流量嗎?

回答

1

一般來說,CMS應用程序大量使用緩存,我的意思是非常重要,就像99.999%的請求必須緩存並由Apache/Nginx或專用緩存服務器提供服務。因此,您的Web框架的性能無關緊要。

沒有緩存負載適度硬件級可以創建爲節點和Rails的相當多的麻煩。對於這種類型的負載(400M/mo = 150 rps平均+ 10-100x峯值)將需要相當多的體面的專用服務器。節點的速度應該快大約2-5倍,具體取決於您的請求的SQL有多重。

+0

所以一般來說紅寶石至少需要兩倍的服務器或雲實例節點需要的數量,如果它們都被調整嗎? –

+0

當然,它可能會超過一倍。 –

0

之所以節點可以處理這樣的高吞吐量是由於它的高度並行化的性質和事實JS JIT是令人難以置信的優化,可以做某些事情的性能提升是紅寶石不能加,希望有更多的表現呢?只要允許它運行更多的線程。 可以使用像彪馬的網絡服務器做同樣的配置它與多個線程運行,但最終它仍然基於Ruby的。

你可以做的是使用更小的框架,如使用西納特拉的前端和葡萄的後端,更小更輕的手段因此不太負荷。 也可能是apache的靜態資產分配或完全卸載到靜態資產服務器。最重要的是,如果你能夠使用低級語言編寫性能關鍵組件,例如C,C++,Rust等等。

最後,你可以嘗試特定的ruby優化,我不知道關閉我的頭頂,但我相信他們存在,雖然你會從他們得到多少,我不能說。

紅寶石本身不會真的是相當快的自身直到至少紅寶石3.0,我不知道什麼時候是出來。