通过代理生成高CPU负载的PHP curl

通过代理生成高CPU负载的PHP curl,php,curl,proxy,Php,Curl,Proxy,在研究了应用程序使用20个并行PHPCLI脚本发送许多curl请求时产生高CPU负载的原因之后,我发现主要原因是curl句柄设置了代理选项 下面的代码在curl_exec运行时,在没有代理的情况下生成0.5-1.5%的CPU负载,在使用任何代理的情况下生成12-25%的CPU负载(我尝试了许多不同的方法) 由于多个线程同时运行多个请求,它很快就会变得至关重要 我正在使用: Ubuntu 16.04 PHP 7.0.22 卷曲7.55.1 是否有我可以应用的修复或解决方法 $address = '

在研究了应用程序使用20个并行PHPCLI脚本发送许多curl请求时产生高CPU负载的原因之后,我发现主要原因是curl句柄设置了代理选项

下面的代码在curl_exec运行时,在没有代理的情况下生成0.5-1.5%的CPU负载,在使用任何代理的情况下生成12-25%的CPU负载(我尝试了许多不同的方法)

由于多个线程同时运行多个请求,它很快就会变得至关重要

我正在使用: Ubuntu 16.04 PHP 7.0.22 卷曲7.55.1

是否有我可以应用的修复或解决方法

$address = 'xxx';
$port = 'xxx';
$url = 'https://api.ipify.org?format=json';

do {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_ENCODING, 'identity');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_PROXY, $address);
    curl_setopt($ch, CURLOPT_PROXYPORT, $port);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_exec($ch);
    curl_close($ch);
    sleep(10);

} while (true);