首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >亚马逊EC2上Node.js的CPU利用率

亚马逊EC2上Node.js的CPU利用率
EN

Stack Overflow用户
提问于 2011-09-21 23:08:45
回答 6查看 10.8K关注 0票数 21

看看节点是如何单线程的,如果我有一个节点服务器运行在一个有4个EC2计算单元的亚马逊EC2实例上,它会比我有2个EC2计算单元运行得更快/处理更多的负载吗?

amazon上的CPU利用率是否需要程序多线程才能充分利用所有资源?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-22 01:43:44

对你的问题的简短回答是,如果你所做的一切都是编写“标准的”单线程javascript (你将被单个CPU所约束),那么为了提高节点性能而添加更多的内核是不起作用的。

原因是node.js使用事件循环进行处理,所以如果您所做的只是启动单个node.js进程而不启动其他任何东西,那么它将不会是多线程的,因此不会使用多个CPU (核心)。

然而,在中,您可以使用node.js集群来派生节点进程,这样您就可以利用多个CPU(核心):https://nodejs.org/docs/latest/api/cluster.html。如果您以这种方式编写代码,那么拥有更多的计算单元将会对您有所帮助。

有一点需要注意,因为EC2计算单元是详细的per instance。对于某些实例,您可以在每个虚拟核上获得更多的“计算单元”。因此,如果您选择一个每个虚拟核有2个计算单元的实例,而不是每个核心有一个计算单元的实例,那么您将能够在具有更多计算单元的CPU上执行节点。然而,看起来在2个计算单元之后,计算能力被分割为每核,这意味着你不会从多核中获得任何好处。

票数 14
EN

Stack Overflow用户

发布于 2012-07-10 03:54:05

为了充分利用N核的计算资源,你至少需要N个线程准备好做有用的工作。这与EC2无关;这只是计算机的工作方式。根据您的问题,我假设您在m1.mediumm1.large实例类型之间进行选择,这两种实例类型分别具有1个和2个专用核心( m1.small是共享核心的一半,而m1.xlarge是完整的专用4核盒)。因此,你至少需要2个进程做有用的工作,才能利用更大的机器(除非你只是想访问更多的内存/ io)。

每个Node.js进程都被设计成单线程的,这让它提供了一个干净的编程范例,没有锁定语义。这在很大程度上是设计出来的。

要让Node.js应用程序使用多核,它必须派生多个进程。然后这些进程将使用某种形式的消息传递(管道、套接字等)进行通信--而不是“共享内存”,在“共享内存”中,代码可以直接改变对多个进程可见的内存位置,这需要锁定语义。

在实践中,这非常简单,很容易设置。在Node.JS v0.6.X中,“集群”模块被集成到标准发行版中,这使得设置多个节点工作器可以在单个端口上侦听变得很容易。请注意,此“集群”模块与learnboost“集群”模块不同,后者具有不同的API,并在NPMjs注册表中拥有“集群”名称。

http://nodejs.org/docs/latest/api/cluster.html

代码语言:javascript
复制
if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }
} else {
  http.Server(function(req, res) { ... }).listen(8000);
}
票数 20
EN

Stack Overflow用户

发布于 2011-09-22 06:10:02

亚马逊的实例类型的总"EC2计算单元“的概念并不直接映射到一个CPU或核心。它是核心数乘以EC2计算单位中每个核心的速度(它们自己的相对度量)。

Amazon确实列出了每种实例类型有多少个虚拟核心:

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?instance-types.html

你最好的选择就是像其他人指出的那样使用所有的核心。但是,如果您最终使用的是单线程解决方案,那么您将希望关注单个核心的速度,而不是所有核心相加在一起的总EC2计算单元。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7502151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档