过多的并发cURL连接完全阻止了传输

时间:2018-07-09 13:23:18

标签: php curl

我正在PHP中使用cURL通过并发连接传输尽可能多的文件。

因此,我构建了一个curl多重处理,它负责捕获所有文件并将其发送。

我还使用了一些选项来设置最大并发连接数,例如:

# activate additional options for the multi cURL call
curl_multi_setopt($mh, CURLMOPT_PIPELINING, 3);
curl_multi_setopt($mh, CURLMOPT_MAX_HOST_CONNECTIONS, $max_curl_cons);
curl_multi_setopt($mh, CURLMOPT_MAX_TOTAL_CONNECTIONS, $max_curl_cons);

当我在$max_curl_cons中使用10之类的值时,脚本可以正常运行并传输文件,直到命令其停止为止(测量curl多手柄行程的时间,并对照最大执行时间进行检查)

现在,当我想加快传输速度时,我希望建立更多的并发连接。因此,我将$max_curl_cons提高到50。完全没有阻止它,而是至少稍微加快了速度,它完全阻止了所有传输,并且脚本停止运行而没有传输单个文件。

在服务器上运行此脚本,而在另一端,我们打开了1.000端口以允许字节自由流动。 ;-)

尽管如此,我们仍未设法加快速度,但20个连接的速度基本上与10个相同,并且在没有任何错误消息之类的情况下,它甚至完全停止传输。

如何进一步调试?

0 个答案:

没有答案