似乎在1019或1020个请求后我得到了空白,带宽/服务器资源不是问题。
function parallel($nodes) {
$start = microtime(true);
$node_count = count($nodes);
$curl_arr = array();
$master = curl_multi_init();
for($i = 0; $i < $node_count; $i++)
{
$url = $nodes[$i];
$curl_arr[$i] = curl_init($url);
curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_arr[$i],CURLOPT_ENCODING,'gzip');
curl_setopt($curl_arr[$i], CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_multi_add_handle($master, $curl_arr[$i]);
}
do { curl_multi_exec($master,$running); } while($running > 0);
for($i = 0; $i < $node_count; $i++)
{
$results = curl_multi_getcontent($curl_arr[$i]);
//echo( $i . "\n" . $results . "\n");
}
echo "\n";
echo microtime(true) - $start;
}
基本上有谁知道可能导致此问题的任何设置?或者CURL中有限制(我不这么认为)?这不是我从其中提取数据的网站,google.com也在1020空白。
所有的想法都受到赞赏和欢迎。
答案 0 :(得分:1)
问题最终成为服务器上设置的文件限制
我更新了/etc/security/limits.conf中的限制,我添加了以下内容:
* soft nofile 40000
* hard no file 40000