是否存在使用并行CURL操作的建议限制

时间:2014-08-08 22:46:30

标签: php curl concurrency parallel-processing download

假设我使用CURL MULTI执行并行操作(上传/下载等)

是否存在我可以执行的并行操作的建议最大限制,或者我可以将其设置为运行,例如,并行执行100次操作? 1000呢?

当我使用CURL指定并发操作的数量时,我应该考虑哪些因素?

3 个答案:

答案 0 :(得分:0)

此问题的答案取决于您的网络容量,NIC的容量以及您尝试优化的内容。

  • 如果您尝试将单个请求的延迟降至最低,则答案很可能为1或接近1。

  • 如果您正在尝试最大化吞吐量,那么您应该继续增加并行操作的数量,直到您的吞吐量达到峰值,然后是平稳或下降。那将是最佳选择。

答案 1 :(得分:0)

大多数浏览器一次最多可以打开4个连接到单个服务器。这可能是一个很好的指导原则。

如果您要从不同的服务器下载,唯一的问题可能是您将耗尽大量本地TCP端口,这可能会干扰系统上的其他应用程序。它不会妨碍与服务器的连接,因为它们都使用相同的本地端口80(或443用于SSL)。但是,如果您有其他使用CURL的应用程序,或者您的计算机发送邮件,如果您全部使用它们,它们可能无法获得传出端口。通常有15-30K短暂的端口,所以你可能可以逃脱使用其中的1000个。

答案 2 :(得分:0)

对于并行1000个CURL,您需要一个良好的带宽,可以通过调试找到建议的并行请求数量,设置一个函数来检查超时连接,在这种情况下减少/增加限制,或超时时间