【问题标题】:Handling multiple connections simultaneously with Node.js and PM2使用 Node.js 和 PM2 同时处理多个连接
【发布时间】:2020-08-10 21:48:17
【问题描述】:

我有一个 node.js 服务器,我在具有 1 个核心的 Red Hat 系统上运行 PM2。服务器的主要目的是用户可以上传数据。在高峰期,大约有 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 个并发用户?

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    如果您只有一个核心,将具有相同的效率并且只会使用可用的核心。如果您的计算机/服务器有多个核心,则集群非常有用。

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

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

    【讨论】:

    • 感谢您的回答。顺便说一句,如果我用 pm2 start server.js -i max --max-memory-restart 7G 启动服务器,这个内存阈值是否适用于每个工作人员(进程)或所有工作人员?
    • 针对每个实例
    猜你喜欢
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2016-08-31
    • 2021-10-04
    • 2019-06-05
    相关资源
    最近更新 更多