Node.js 服务器提升CPU个数和提升RAM哪个对性能的提升影响大?
发布于 9 年前 作者 JamesGu14 5622 次浏览 最后一次编辑是 8 年前 来自 问答

我有个疑惑。。Node.js是单线程的,意味着一个进程就只能有一个线程,也就意味着CPU一个核只能处理一个线程对吧?(如果说错了求指正。。)

所以说从单核CPU升级到4核CPU,意味着本来同一时刻只能处理一个用户请求变成可以同时处理4个用户同时的请求。所以性能是提升了4倍。

如果提升RAM,相当于提升了单个进程的处理速度,其实一样能大幅提升性能。

想问问大家都用什么样的server? AWS上自己配么?我建一个供企业内部使用的dashboard website,外加一些web services,我打算买这个服务: https://www.digitalocean.com/pricing/ 4GBMemory 2 CoreProcessor 60GBSSD Disk 4TBTransfer

大神们有什么见解么?

6 回复

1个CPU搭配2G内存挺好的。多了也没用 64位 node.js 一个进程能用的内存也就这么多了。 虽然可以传参数调节新生区和老生区大小,但是太大会影响GC效率

CPU,内存到位了,其实node本身就是瓶颈,再进一步的话,内核都是瓶颈。 看过新浪的测试,3.10版本内核,12核心以后增加CPU获得性能提升不再线性,在12个以下是可以的。进程绑定CPU什么的都可以提升些许性能。内存主要看你用户数量,数量越大,内存越大,还跟你的应用有关,你的应用耗费内存,增大内存也是可以的,内存对响应速度有影响,但不大。CPU提升分为两种情况,要提升响应速度,频率要上去,提升并发能力,频率和数量都要上去。

挖掘多核能力需要利用类似cluster机制,并发提升嗖嗖的,当然程序要改造适应cluster方式

一台2核 4g 好些 还是两台1核 2g 做负载均衡 效果好些呢?

一台的话,不小心崩了就不好办了吧

V8 64位自身只能使用 1.7g 的内存,除非你用很多buffer,在 node 访问的内存堆之外 考虑到操作系统自身和其他应用,比如监控什么的,估计 4g 最好

回到顶部