7

php在高并发下使用curl获取数据时间很长是什么问题?

 2 years ago
source link: https://www.oschina.net/question/5348705_2323696
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

php在高并发下使用curl获取数据时间很长是什么问题?

osc_26486196 发布于 前天 21:44
阅读 131

现实中的情况:用户请求小程序业务接口后,接口需要请求微信对应的接口如获取用户的open_id的场景下,在低并发的情况先是没有问题的。但是在高并发的情节下,就会出现很慢很慢很慢很慢很慢很慢很慢很慢很慢的情况。

为了避免业务和框架的影响使用原生的做测试。

有A B C 三台服务器。其中A服务器有一个a.php里面的内容很简单就发送一个curl请求到B服务器中的b.php,b.php里面就输出一个json字符串其他什么内容都没有,访问b.php速度很快的。A和B的php-fpm数量有2000个,nginx worker 进程都有8个。在C服务器使用ab 工具进行压测。ab -c 200 -n 4000 域名a.php,从A服务的nginx日志中前面的请求是正常的都0.0几秒,一共有300多个请求是大于2秒的5秒10秒的都不少,然后B服务的日志全部都是正常的返回的都是0.0几秒。按理来说一个php-fpm能处理一个请求,而a.php请求的b.php一秒的数据都不需要,可以简单理解php-fpm一个一秒处理一个请求,正常来啊说的话这4000请求都不会存在说要5秒10秒才能响应的情况。压测数量越大这种情况就约多。改了很多参数都没有效果 nginx php-fpm 最大的句柄数之类的。

up-43b041385a00fe22197c030cb766258868e.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK