节点:一核,多进程

2024-01-27

我在网上查了一下,似乎找到的都是与“Node 如何从在多核 cpu 中运行中受益?”这个问题相关的答案。

但。如果您的计算机只有一个核心,则在任何给定时间只能运行一个进程。 (我正在考虑这里的任务调度)。并且node使用单线程模型。

我的问题:是否有任何场景可以在一个核心中运行多个节点进程?如果该进程是一个侦听端口的 Web 服务器,那么鉴于只有一个进程可以侦听,这如何工作?


我的问题:是否有任何情况下运行是有意义的 一个核心中的多个节点进程?

是的,有一些场景。请参阅下面的详细信息。

如果该进程是一个侦听端口的 Web 服务器,那么如何才能 鉴于只有一个进程可以监听,这是否有效?

Node.js 集群模块创建了一种场景,其中所需端口上有一个侦听器,但传入请求在所有集群进程之间共享。更多详情敬请关注...

您可以使用集群模块运行多个进程,这些进程都配置为处理同一端口上的传入请求。如果你想知道传入的请求如何在不同的集群进程之间共享,你可以阅读中的解释这篇博文 http://onlinevillage.blogspot.com/2011/11/how-nodejs-multiprocess-load-balancing.html。简而言之,最终所需端口上只有一个侦听器,并且传入请求在各个集群进程之间共享。

至于您是否可以从比核心数量更多的进程中受益,答案是,这取决于您正在寻找什么类型的好处。如果您有一个具有所有异步 I/O 的正确编写的服务器,那么添加比内核更多的进程可能不会提高您的整体吞吐量(按服务器每秒可以处理的请求来衡量)。

但是,如果您的请求中有任何 CPU 密集型处理,那么拥有更多进程可能会在同时请求之间提供更公平的调度,因为操作系统将在每个进程之间“共享”CPU。这可能会稍微降低整体吞吐量(因为任务在进程之间切换 CPU 会增加开销),但即使有多个请求一起处理,也可能会增加请求处理量。

如果您的请求没有太多 CPU 密集型处理,并且大多数时间实际上只是等待 I/O,那么添加比内核更多的进程可能没有任何好处。

因此,这实际上取决于您想要优化的内容以及您的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

节点:一核,多进程 的相关文章

随机推荐

  • PostgreSQL 数据库静态加密

    如何加密静态 PostgreSQL 数据库 我找不到关于如何实现这一目标的良好文档 威胁模型在这种情况下非常重要 因为有效地加密数据库并不是一件容易的任务 这可以在 3 个不同的层完成 客户端应用程序 存储设备 数据库本身 请注意 在所有情
  • 迭代 Node.js 中的对象键

    从 Javascript 1 7 开始 有一个Iterator https developer mozilla org en New in JavaScript 1 7 Iterators对象 它允许 var a a 1 b 2 c 3 v
  • MySQL - 选择然后更新

    我有一个用 PHP 编写的脚本 其中有这一行可以正常工作以选择我需要的数据 result mysql query SELECT product name sku qty FROM supplier dropship items WHERE
  • iOS 屏幕截图部分

    我有一个应用程序使用以下代码截取 UIImageView 的屏幕截图 IBAction screenShot id sender UIGraphicsBeginImageContext sshot frame size self view
  • 等待池线程完成

    我很抱歉问了一个多余的问题 然而 我找到了许多解决我的问题的方法 但没有一个得到很好的解释 我希望在这里能说清楚 我的 C 应用程序的主线程使用线程池生成 1 n 个后台工作人员 我希望原始线程锁定 直到所有工作人员完成为止 我特别研究了
  • 两部分正态(或分裂正态)分布的密度

    两部分正态分布是否存在密度函数 在克兰上 我想在编写代码之前先检查一下 我检查了分发任务视图 它没有在那里列出 我查看了几个可能的软件包 但无济于事 更新 我已经添加了dsplitnorm psplitnorm qsplitnorm and
  • 打开 JavaScript 文件时 Visual Studio 2008 崩溃?

    每当我尝试打开特定的 JavaScript 文件时 Visual Studio Team system 2008 就会崩溃 但没有任何错误消息 我发现this http social msdn microsoft com Forums en
  • 在 django 中迁移数据的最佳方式是什么

    在我的模型中进行一些更改 例如模型中的新字段和新模型 后 将这些更改反映到我填充的数据库中的最佳方式是什么 PS 我想在一个地方看到许多解决方案的评级 显然已经列出了更多解决方案here https stackoverflow com qu
  • 是否使用任何未定义的不确定值或仅使用那些存储在具有自动存储的对象中的值?

    根据 C99 J 2 在以下情况下行为未定义 具有自动存储期限的对象的值在被使用时被使用 不定 那么对象具有不确定值的所有其他情况又如何呢 如果我们使用它们 我们是否也总是调用 UB 或者我们是否仅当它们包含陷阱表示时才调用 UB 示例包括
  • 当我单击单个标记时,React Google Map InfoWindow 显示所有信息

    由于某种原因 当我单击单个标记时 所有信息窗口都会显示 我希望当我单击一个标记时会出现一个信息窗口 有人可以解释为什么所有标记中的所有信息窗口都会显示吗 因此 当我关闭它时 InfoWindow 也会关闭 当我单击目标标记时 预期行为是 I
  • 开发 Android 应用程序时使用 Linux 操作系统重要吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我开始了 Android 开发 并意识到 Android 完全构建在 Linux 上 但我目前正在 Windows 上编程 我应该继续使用 Wi
  • 如何在 QTreeWidget 中找到所选项目?

    我有一个继承 QTreeWidget 的类 如何找到当前选定的行 通常我通过这种方式将信号连接到插槽 connect myButton SIGNAL triggered bool this SLOT myClick 但是 我找不到类似的东西
  • mySQL 查询多个 - 返回错误 mysql_fetch_array

    我有 2 个数据库表 用于预订系统 其结构如下 quartos id quarto tipo quarto vista quarto 储备 id reserva n cliente id quarto check in check out
  • 配置要在 Consumer 中传递的端点时添加元数据

    因此 当我配置端点并设置ep Consumer
  • 在 iPhone 和 Android 上完成 AES 加密

    我们正在 android 和 iphone 上创建相同的项目 现在的问题是我们需要使用Web服务以加密形式将用户信息发送到aspx服务器 我们都实现了它 但结果不同 因此是否有一种通用的 AES 加密方法可以产生相同的结果并可以在服务器上解
  • 如何从具有 null(0) 字符的 char 数组创建 C++ istringstream?

    我有一个 char 数组 其中随机位置包含空字符 我尝试使用此数组 encodedData arr 创建一个 iStringStream 如下所示 我使用此 iStringStream 将二进制数据 Iplimage 的 imagedata
  • 如何在内容页中使用 javascript,asp.net

    我从教程中获得了 jQuery 示例代码 它甚至是一个 Webform 示例 当我将它集成到我的项目并在内容页面中使用它时 JavaScript 不起作用 这是我的母版页代码
  • boost序列化多个对象

    稍微相关的问题this one https stackoverflow com questions 3870123 boost serialization multiple objects and this one https stacko
  • Google Spreadsheet API:清空工作表中的所有单元格

    我们使用 Google Sheet API v4 我们想要清除整个工作表的空数据 我们不想删除行 列 UpdateCells 调用不起作用 通过 API 删除列 工作 UpdateCells 调用 所有单元 我能够通过使用记录的清晰方法来做
  • 节点:一核,多进程

    我在网上查了一下 似乎找到的都是与 Node 如何从在多核 cpu 中运行中受益 这个问题相关的答案 但 如果您的计算机只有一个核心 则在任何给定时间只能运行一个进程 我正在考虑这里的任务调度 并且node使用单线程模型 我的问题 是否有任