我问的原因是这个帖子
http://amix.dk/blog/post/19577
表示Node.js 0.2.2的阈值似乎为500/s,Netty的性能优于Node.js的10倍。Ryan Dahl在评论中表示,这可能是因为一个随后被修复的错误。然而,我在帖子的其余部分或其他地方找不到任何关于问题已经解决的确认,如果是这样的话,也找不到更新的基准。我们现在比上面提到的版本领先了很多版本,我想知道是否有任何正式或其他与Comet请求/秒有关的基准测试。
如果没有基准,最好从总体上了解阿米尔提出的问题是否仍然悬而未决。500彗星/秒是一个中等规模的聊天/游戏网站可以达到的阈值。
node.js
与0.2.2
相比已经走过了漫长的道路。链接帖子中讨论的架构似乎也存在实现问题,因为评论表明他们没有考虑使用带有负载均衡器的多节点进程。
这显然是高性能应用程序的必要条件——事实上,node.js
官方关于部分的最后一段写道:
但是,多处理器并发又如何呢?将程序扩展到多核计算机难道不需要线程吗?您可以通过child_process.fork()启动新进程,其他进程将并行调度。对于跨多个进程的负载平衡传入连接,请使用集群模块。
现在,考虑到一个单节点0.2.2
进程使用了Netty%10的资源(正如OP链接的帖子中所提到的),那么他们本可以在同一硬件上运行10个节点进程,这就引出了一个问题:如果Netty比node快10倍,但使用了10倍的资源,那么他们的性能实际上不一样吗?同时,节点的性能在>=0.6.0
版本中得到了显著提高,尤其是在运行Windows的机器上,现在本机支持该操作系统。请参阅0.6.0
发行说明中的Windows基准测试:
http基准测试是在10GE上对600个客户端进行的网络由三台负载生成机器提供服务。
v0.4.12 (windows) v0.6.0 (windows)
http_simple.js /bytes/1024 3858 r/s 5823 r/s
io.js read 12.41 mB/s 26.51 mB/s
io.js write 12.61 mB/s 33.58 mB/s
startup.js 152.81 ms 52.04 ms
与此同时,尽管似乎没有人想谈论他们到底在做什么,但似乎一些流量最高的技术玩家正在转向node.js
,以获得超高容量的系统。Google
、Yahoo
、Mozilla
、LinkedIn
和初创公司i.TV
都在昨天发表在venturebeat.com上的文章Node at scale中进行了介绍。
虽然我找不到彗星/秒的确切基准,但很明显,在适当的系统架构下,它远高于500。