【发布时间】:2014-08-09 06:58:38
【问题描述】:
假设我使用 CURL MULTI 来执行并行操作(上传/下载等)
是否有建议的最大并行操作限制,或者我可以设置它以使其运行,例如,100 个并行操作? 1000呢?
在使用 CURL 指定并发操作数时应该考虑哪些因素?
【问题讨论】:
标签: php curl concurrency parallel-processing download
假设我使用 CURL MULTI 来执行并行操作(上传/下载等)
是否有建议的最大并行操作限制,或者我可以设置它以使其运行,例如,100 个并行操作? 1000呢?
在使用 CURL 指定并发操作数时应该考虑哪些因素?
【问题讨论】:
标签: php curl concurrency parallel-processing download
对于 1000 个 CURL 并行,您将需要良好的带宽,建议的并行请求数量可以通过调试找到,设置一个函数来检查超时连接,在这种情况下减少/增加限制或超时时间.
【讨论】:
此问题的答案取决于您的网络容量、NIC 的容量以及您要优化的内容。
如果您试图最小化单个请求的延迟,答案很可能是 1 或接近 1。
如果您试图最大化吞吐量,那么您应该不断增加并行操作的数量,直到您的吞吐量达到峰值,然后达到平稳或下降。那将是甜蜜点。
【讨论】:
大多数浏览器一次最多会打开 4 个与单个服务器的连接。这可能是一个很好的指导方针。
如果您从不同的服务器下载,唯一的问题可能是您将使用大量本地 TCP 端口,这可能会干扰系统上的其他应用程序。它不会妨碍到服务器的连接,因为它们都使用相同的本地端口 80(或 SSL 的 443)。但是,如果您有其他使用 CURL 的应用程序,或者您的机器发送邮件,如果您全部使用它们,它们可能无法获得传出端口。通常有 15-30K 的临时端口,因此您可以使用其中的 1,000 个。
【讨论】: