问答

php-fpm处理时间很快,但nginx upstream_time却很长

作者:admin 2021-05-07 我要评论

问题描述 最近线上一个PHP服务接口出现大量超时,开始以为业务处理慢。追查原因后发现PHP的业务处理并不慢,只是nginx收到php处理结果的时间慢。 比如:php-fpm ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

问题描述

最近线上一个PHP服务接口出现大量超时,开始以为业务处理慢。追查原因后发现PHP的业务处理并不慢,只是nginx收到php处理结果的时间慢。
比如:php-fpm access log记录请求处理时间 90ms,nginx日志显示php处理时间1s,差了10倍,一直没找到原因。

注:php-fpm 和 nginx 处于一台服务器
nginx 监听80端口,php-fpm监听9000端口
nginx fastcgi_pass 127.0.0.1:9000

问题出现的环境背景及自己尝试过哪些方法

最近几天大量出现这个问题,服务器无压力,qps < 30
接口逻辑会查一次mysql,请求2次外网http API,整体处理时间100ms左右。
并不是每次请求都会有问题,只是最近今天出现概率变大

相关代码

php-fpm access log:
127.0.0.1 - 14/Jan/2021:18:14:31 +0800 "POST /inner/video/getMetaByVideoUrl" 200 86.510 70f03cc97ec7da080ad1537811c49e1e 2048 11.56%

注:70f03cc97ec7da080ad1537811c49e1e 是traceID 用来追踪请求, 86.510 是php-fpm记录的请求时间 单位ms

nginx acces log:
{"@timestamp":"2021-01-14T18:14:32+08:00","server_addr":"xxxx","remote_addr":"xxxx","scheme":"-","host":"image.prod.xxxx.lan","http_host":"image.prod.xxxx.lan","trace_id":"70f03cc97ec7da080ad1537811c49e1e","hostname":"dqd-image-web01.bj.ks","method":"POST","uri":"/inner/video/getMetaByVideoUrl","url":"/index.php","protocol":"HTTP/1.1","status":200,"size":82,"request_time":1.088,"upstream_time":"1.088","upstream_host":"127.0.0.1:9000","referer":"-","agent":"-","xff":"-","uuid":"-","authorization":"-","lang":"-","sign":"-","usertag":"-"}

注:upstream_time 对应nginx $upstream_response_time 1.088s

这是典型的例子 php处理时间 86ms,nginx 处理时间1s

出现这条记录的时候服务器负载0.06,无网络波动,内存磁盘均没有异常

你期待的结果是什么?实际看到的错误信息又是什么?

希望找到解决办法

###

nginx 和 PHP 在同一台机器的话,反向代理建议走 unix socket,你可以监控一下你的网络的端口使用情况.

###

可以尝试在执行完毕后手动执行 fastcgi_finish_request() 试试看

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • php-fpm处理时间很快,但nginx upstrea

    php-fpm处理时间很快,但nginx upstrea

  • XLSX.write 具体是做什么的呢?

    XLSX.write 具体是做什么的呢?

  • dockerfile推送could not push images

    dockerfile推送could not push images

  • 用VScode写C++报错但是能正常运行

    用VScode写C++报错但是能正常运行

腾讯云代理商
海外云服务器