【发布时间】:2015-10-16 13:05:51
【问题描述】:
我有一个使用 Socket.IO 进行消息传递的节点应用程序。
我使用它运行它
node --expose_gc /path/to/app.js
现在,当我查看 htop 实用程序时,我注意到我得到的是同一命令的多个进程,而不是 1。
有人可以用菜鸟的话向我解释这里发生的原因和情况吗?我也担心它也会消耗意外的内存/cpu 使用率。
【问题讨论】:
标签: linux node.js socket.io fork htop
我有一个使用 Socket.IO 进行消息传递的节点应用程序。
我使用它运行它
node --expose_gc /path/to/app.js
现在,当我查看 htop 实用程序时,我注意到我得到的是同一命令的多个进程,而不是 1。
有人可以用菜鸟的话向我解释这里发生的原因和情况吗?我也担心它也会消耗意外的内存/cpu 使用率。
【问题讨论】:
标签: linux node.js socket.io fork htop
socket.io 不会派生或派生任何子进程。 通常运行 node.js 的子进程是通过集群模块产生的,但 socket.io 没有这样的事情。 它只是在 http 服务器之上添加了一个处理程序。
【讨论】:
socket.io 只是一个挂钩到 Web 服务器并侦听某些传入请求(那些启动 webSocket/socket.io 连接的请求)的库。一旦 socket.io 连接启动,它只使用普通的套接字编程来发送/接收消息。
它不会自行启动任何额外的进程。
您的多个进程要么是因为您不小心多次启动了自己的应用而没有将其关闭,要么是因为您的应用中有其他东西正在启动多个进程。 socket.io 不这样做。
【讨论】: