使用 Node.js 和 PM2 同时处理多个连接

Handling multiple connections simultaneously with Node.js and PM2

我有一个 node.js 服务器,我是 运行 PM2,在具有 1 个核心的 Red Hat 系统上。服务器的主要用途是用户可以上传数据。在高峰时段,大约有 75 个用户同时连接到服务器并上传数据(数据以 1 MB 的块上传,最后由服务器连接)。上传数据可能需要更长时间(大约 10 分钟)。

目前,我正在使用以下命令启动服务器

pm2 start server.js -i max -o ./logs/out.log -e ./logs/err.log

这意味着我正在以集群模式启动它。我不知道只有 1 个核心是否有必要。我是否应该只使用 fork 模式(即删除 -i max)?我是否还必须使用 pm2 scale server 75 以便我有 75 名工人,即每个用户一名工人?否则,如何将其扩展到 75 个并发用户?

如果您只有一个核心,将具有相同的效率并且只使用可用的核心。如果您的 computer/server 有一个以上的核心,集群就很有用。

如果您要问:我的服务器是否有 75 个线程,每个用户一个?否,因为 NodeJS single-threaded 并且只会对所有传入请求使用一个线程。

单线程服务器能够同时保持 75 个打开的连接