多核CPU与Java(Tomcat)上的单线程Node.js

苏尼尔

由于Node.js是单线程的,因此如果我运行的应用程序不涉及Node.js的任何IO,那么即使它运行在8核CPU机器上,它也将始终仅使用一个CPU核吗?

假设我有一个服务,该服务返回在Node上运行的两个数字的总和,并且有1000个请求同时命中该服务(假设该服务在主线程上计算总和,并且不使用回调,因为它是一个简单的任务)。因此,即使有7个内核处于空闲状态,Node一次也只能处理一个请求?在Java世界中,如果我在应用程序服务器Tomcat中将HTTP线程池大小设置为8,则相同的1000个请求的执行速度将比节点快8倍。

那么,我是否必须在一台8核机器上运行8个Node.js实例,并在其前面安装一个负载均衡器,以便使用所有8核?

约翰·布林格

由于Node.js是单线程的,因此如果我运行的应用程序不涉及Node.js的任何IO,那么即使它运行在8核CPU机器上,它也将始终仅使用一个CPU核吗?

假设您没有派生任何子进程,Node一次最多使用一个核心,是的,无论有多少个可用核心。但是,拥有多个内核会有所帮助,因为这可以减少Node与其他进程之间的争用。

因此,即使有7个内核处于空闲状态,Node一次也只能处理一个请求?

基本上可以,但是实际上,您不可能让所有其他内核都处于空闲状态。

在Java世界中,如果我在应用程序服务器Tomcat中将HTTP线程池大小设置为8,则相同的1000个请求的执行速度将比节点快8倍。

只有Java Java Web应用程序在与Node相同的时间量内处理请求时,才可以执行此操作。是否这样做取决于很多因素,因此几乎无法预测。它只能被测量。可以想象的是,测量WebappJava的Java实现的性能在测试条件下,同一个Web应用程序的Node实现会发现该特定Java实现该特定Node实现要慢得多或不。

那么,我是否必须在一台8核机器上运行8个Node.js实例,并在其前面安装一个负载均衡器,以便使用所有8核?

我敢肯定细节上可能会有变化,但是基本上是可以的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js是单线程还是非单线程?

来自分类Dev

Node.js-单线程,非阻塞?

来自分类Dev

Node.js多线程与Node.js单线程

来自分类Dev

Node.JS中的单线程事件循环与多线程非阻塞工作者

来自分类Dev

Node.JS中的单线程事件循环与多线程非阻塞工作者

来自分类Dev

如果node.js是单线程的,那么server.listen()为什么返回?

来自分类Dev

如果Node.js是单线程的,那么Rails是什么?

来自分类Dev

如何在node.js中创建后台单线程FIFO作业队列

来自分类Dev

如何在node.js中创建后台单线程FIFO作业队列

来自分类Dev

Node.js是单线程的,这是否意味着我们不能在不同的线程中运行多个Node.js?

来自分类Dev

单线程CPU上的多线程应用程序?

来自分类Dev

为什么单线程应用程序占用多核并限制cpu使用率

来自分类Dev

Java单线程执行和cpu缓存

来自分类Dev

运行Node.js是否浪费了多核CPU?

来自分类Dev

Java单线程CPU使用和多线程CPU使用

来自分类Dev

Glassfish上的单线程MDB

来自分类Dev

单线程机器上的异步方法

来自分类Dev

Java中单线程死锁

来自分类Dev

Java中的单线程查询

来自分类Dev

Java简单和单线程IllegalMonitorStateException

来自分类Dev

为什么GTX Titan上的cublas比单线程CPU代码慢?

来自分类Dev

单线程程序是否在CPU中并行执行?

来自分类Dev

单线程程序占用的CPU是否太低?

来自分类Dev

Java是默认的单线程还是多线程?

来自分类Dev

Java是默认的单线程还是多线程?

来自分类Dev

单线程保存上的iOS7 NSMergeConflict

来自分类Dev

openmp在我的mac上运行单线程

来自分类Dev

在2个内核上执行单线程进程

来自分类Dev

Helgrind报告单线程上的数据争用

Related 相关文章

热门标签

归档