php cli模式 curl,php cli 模式 curl请求越来越慢

背景

项目使用workerman,其中有一块代码,会定时通过curl发送一个https请求,通知php-fpm。最近发现一个诡异的问题,程序刚开的时候正常没有问题,但是运行了几天 business处理请求就会异常的慢。上服务器查看status,发现进场是进场进入busy状态。

处理

因为是服务器内部的请求,所以就把ssl证书的校验关闭了

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

代码示例

'!QAZ2wsxfuck$001789', 'roomId' => 83];

//初始化

$curl = curl_init();

//设置抓取的url

curl_setopt($curl, CURLOPT_URL, $url);

//设置头文件的信息作为数据流输出

//curl_setopt($curl, CURLOPT_HEADER, 1);

//设置获取的信息以文件流的形式返回,而不是直接输出。

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

//设置post方式提交

curl_setopt($curl, CURLOPT_POST, 1);

// 设置超时时间

curl_setopt($curl, CURLOPT_TIMEOUT, 3);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

//执行命令

$result = curl_exec($curl);

var_dump($result);

//关闭URL请求

curl_close($curl);

$endTime = microtime(TRUE);

echo "cost time " . ($endTime - $startTime). PHP_EOL;

//sleep(10);

usleep(50000);

}

一开没有关闭ssl证书校验的时候,发送几千的请求之后,curl的时间耗时就会超过一秒

4343 cost time 1.6078729629517

4344 cost time 1.413125038147

4345 cost time 1.4656598567963

4346 cost time 1.5153200626373

4347 cost time 1.4436540603638

4348 cost time 1.570643901825

4349 cost time 1.4153439998627

4350 cost time 1.5104820728302

关闭之后,即使上w个请求 耗时几乎没有什么大的波动

75154 cost time 0.014031171798706

75156 cost time 0.01432204246521"

75158 cost time 0.016821146011353

75160 cost time 0.013806104660034

75162 cost time 0.014341115951538

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值