Ruby云实例可以处理节点实例将执行的相同数量的流量吗?

问题描述:

我们要在改造一个CMS为基础的网站的,我们希望服务至少10+万独立用户/月的电视频道,约400多万个请求/月,平均带宽40兆兆字节的工作/月这是他们的旧网站的CloudFlare统计数据,他们期待更多。我们正在计划将后端作为rest API来构建,作为前端响应和另一个响应cms管理员面板的应用程序API,我们之间争论不休。 Ruby和节点,还有一些人说节点更快,在资源消耗方面会更便宜,Ruby对节点有效吗?Ruby云实例是否可以处理节点实例可以处理的相同数量的流量?任何建议值得转向节点吗?Ruby云实例可以处理节点实例将执行的相同数量的流量吗?

一般来说,CMS应用程序大量使用缓存,我的意思是非常重要,就像99.999%的请求必须缓存并由Apache/Nginx或专用缓存服务器提供服务。因此,您的Web框架的性能无关紧要。

没有缓存负载适度硬件级可以创建为节点和Rails的相当多的麻烦。对于这种类型的负载(400M/mo = 150 rps平均+ 10-100x峰值)将需要相当多的体面的专用服务器。节点的速度应该快大约2-5倍,具体取决于您的请求的SQL有多重。

+0

所以一般来说红宝石至少需要两倍的服务器或云实例节点需要的数量,如果它们都被调整吗? –

+0

当然,它可能会超过一倍。 –

之所以节点可以处理这样的高吞吐量是由于它的高度并行化的性质和事实JS JIT是令人难以置信的优化,可以做某些事情的性能提升是红宝石不能加,希望有更多的表现呢?只要允许它运行更多的线程。 可以使用像彪马的网络服务器做同样的配置它与多个线程运行,但最终它仍然基于Ruby的。

你可以做的是使用更小的框架,如使用西纳特拉的前端和葡萄的后端,更小更轻的手段因此不太负荷。 也可能是apache的静态资产分配或完全卸载到静态资产服务器。最重要的是,如果你能够使用低级语言编写性能关键组件,例如C,C++,Rust等等。

最后,你可以尝试特定的ruby优化,我不知道关闭我的头顶,但我相信他们存在,虽然你会从他们得到多少,我不能说。

红宝石本身不会真的是相当快的自身直到至少红宝石3.0,我不知道什么时候是出来。