我正在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个相同,并且在没有任何错误消息之类的情况下,它甚至完全停止传输。
如何进一步调试?