【问题标题】:how many requests a node http server can handle per second without queueing any requests?一个节点http服务器每秒可以处理多少个请求而不排队任何请求?
【发布时间】:2017-04-07 00:02:52
【问题描述】:

有谁知道节点http服务器的基本单个实例每秒可以处理多少个请求而无需排队任何请求?

实际上,我需要编写一个 nodejs 应用程序,它应该能够在 100 毫秒内一致地响应大约数千个传入请求。我正在尝试在 4 cpus 服务器中测试它并在集群模式下运行 4 个实例。但目前它只能在 100 毫秒内持续处理每秒少于 1000 个请求

【问题讨论】:

    标签: node.js http


    【解决方案1】:

    看到这个答案:

    这不是关于排队,而是关于 Node 可以同时处理多少并发请求。它包含示例基准,您可以根据需要使用和调整。

    现在,关于排队:从某种意义上说,每个请求都需要排队,因为在一个 Node 进程中只能同时运行一件事。所以你可以说Node http服务器可以处理多少个请求而不需要排队任何请求的答案是:一个。就像 Nginx 一样。

    现在,响应时间是完全不同的事情,取决于许多因素,例如您在这些请求处理程序中实际执行的操作。

    例如,对于 10000 个并发连接,我在实验 here 中获得的每个请求的平均时间不到 2 毫秒。如果它做得更多,那么它当然可以花费更多,但是所有节点服务器都没有一个数字。这取决于您的实施效率。

    现在,在 Node 中处理并发的一大禁忌是:

    • 切勿使用任何“同步”功能
    • 切勿使用长时间运行的 for 和 while 循环
    • 切勿在处理请求的进程中执行任何 CPU 密集型工作

    【讨论】:

    • 这个答案不正确。 Node.js 不是单线程的,请求将根据服务器的硬件配置在多个线程上处理。纯逻辑部分(不是 I/O)将是单线程的,但在大多数情况下,这只是代码的一小部分。大多数代码将从磁盘读取/从数据库读取/写入数据库/向另一台服务器发出请求/等等。
    • 丹尼尔,这有什么证据?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多