【问题标题】:How many HTTP request can we make simultaneously?我们可以同时发出多少个 HTTP 请求?
【发布时间】:2013-09-03 06:14:25
【问题描述】:

我可以同时发出多少个并发 HTTP 请求?底层操作系统有什么规则吗?我在 Windows 7 上。例如:如果我启动 100 个线程,它们会同时执行吗?如果是,它是取决于 RAM 的数量还是不管 RAM 大小是固定的?

【问题讨论】:

  • 没有。有很多变量。首先.. 你的系统可以支持 100 个线程同时异步执行吗?请求是否会等待太久而不会影响性能?您的系统 Windows Vista 是否有连接限制(不是您的……只是举例……)。
  • 所有这些连接是到同一主机还是到不同主机?

标签: c# .net windows-7


【解决方案1】:

这取决于,像往常一样...这里有几个方面需要牢记:

(1) 您的 PC/服务器一次可以处理多少个线程?这取决于内存、CPU 能力(例如内核数量)、服务器正在做什么以及您的线程是否执行 I/O 密集型工作。使用 .NET,线程池也有不同的限制,具体取决于版本(例如,对于 .NET 4:32 位版本中最多 1023 个线程,64 位版本中最多 32768 个线程)。

(2) 您的 Windows 还可以配置为允许最大数量的传出 HTTP 或 TCP 连接(如果我没记错的话,Windows 有 64K 传出 TCP 连接的硬性限制)。

(3) 如果您通过代理服务器进行连接,该代理服务器也可能会对传出连接施加限制。如果您要通过防火墙,情况也是如此。这也可能会阻止太多同时传出的连接。

(4) 您是否打开了到同一台服务器的所有连接?因为 Web 服务器也有其限制,并且可以配置为仅允许来自给定源的 x 个传入请求。

因此,除非您知道这些数字,否则恐怕您将不得不进行试验以找出您的情况的限制。

【讨论】:

    猜你喜欢
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2018-08-29
    • 2011-02-28
    • 2017-11-25
    相关资源
    最近更新 更多