为什么我的 node.js 服务器进程被克隆?
Why is my node.js server process cloned?
为什么我的 node.js 服务器进程被克隆了?自从我提出以来,我没有提出任何要求。我正在使用永远的节点模块。会不会有关系?
您看到的是同一节点进程中的 线程 。 v8(用于优化功能、收集垃圾等)和 libuv/node(用于在大多数平台上执行文件系统操作、DNS 查找、zlib 等)使用额外的线程,所以这些就是您所看到的。
截至撰写本文时,v8 最多使用 4 个线程(尽管 an option to configure this previously hardcoded value 在节点 v5.10.0+ 中可用)。此外,libuv 默认创建一个包含 4 个线程的线程池,但这个数字可以通过设置 UV_THREADPOOL_SIZE
环境变量来更改。调整这些值时应小心,因为如果设置得太低或太高可能会对性能产生负面影响。
FWIW 在 htop 的设置菜单中,您可以将其配置(在显示设置下)以显示进程树并使线程具有不同的颜色。这些更改将使您更容易看出线程和进程之间的区别。
为什么我的 node.js 服务器进程被克隆了?自从我提出以来,我没有提出任何要求。我正在使用永远的节点模块。会不会有关系?
您看到的是同一节点进程中的 线程 。 v8(用于优化功能、收集垃圾等)和 libuv/node(用于在大多数平台上执行文件系统操作、DNS 查找、zlib 等)使用额外的线程,所以这些就是您所看到的。
截至撰写本文时,v8 最多使用 4 个线程(尽管 an option to configure this previously hardcoded value 在节点 v5.10.0+ 中可用)。此外,libuv 默认创建一个包含 4 个线程的线程池,但这个数字可以通过设置 UV_THREADPOOL_SIZE
环境变量来更改。调整这些值时应小心,因为如果设置得太低或太高可能会对性能产生负面影响。
FWIW 在 htop 的设置菜单中,您可以将其配置(在显示设置下)以显示进程树并使线程具有不同的颜色。这些更改将使您更容易看出线程和进程之间的区别。