• 记一次接口调用耗时服务端PHP-FPM配置调优


     最近测试人员不时有反馈,APP首页打开会出现除了基本的页面布局,需要展示数据的地方都是空白。

    想着最近首页接口有过调整,新增数据。会不会是接口改动导致的??

    但APP首页接口都是读取redis的,应该不至于出现接口异常的问题啊!!

    手上本来有迭代任务进行中,没去看这个问题。

    昨天快下班那会手上任务快做完了。上服务器看看nginx日志,php日志,同时登录阿里云服务器管理控制台查看ecs机器的内存和cpu使用记录,redis使用情况。

    发现问题出现得有规律,一般是运营人员在管理后台发布消息推送,随后几分钟就会出现resquest_time耗时比较厉害。平时大部分接口0.01-0.09秒接口请求完成调用返回。但发布消息推送后,接口调用记录显示耗时上升厉害0.1秒->0.5秒->1秒->3秒->7秒,最多的达到15点几秒。

     查看最近的nginx错误日志:
    FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: ***

    网上搜索相关资料,找到如下:

    https://blog.csdn.net/leonnew/article/details/79738593

    凭直觉首要排除1和3,直接去看2的问题,看php错误日志:

    搜索“WARNING: [pool www] server reached pm.max_children setting (5), consider raising it” 错误原因,找到如下:

    https://lirongyao.com/server-reached-pm-max_children-setting.html

    看php配置:

    估计是运维搭建生产环境把php-fpm启动后进程数配置太小,和运维沟通后,发个邮件让运维更改php7配置。

    中午吃饭时候运维把配置给改了重启,不久后运营人员那边新发一个push消息推送。

    再上生产服务器,竟没有错误日志了。。又打开APP,同事们没有出现白屏无数据的情况,我手机偶现白屏一次。

    PHP-FPM配置已经改了啊,为啥还是有白屏??

    立即上阿里云管理后台查看日志服务,看到push发出后,单是首页的有个接口一分钟内超出280的调用。

    这让我想起项目刚上线不久,有对项目使用的laravel框架接口调用次数限制由默认60次一分钟上调到一分钟200过。

    手机偶尔白屏应该就是laravel框架这个限制次数导致的!

    再上调laravel次数限制为500上生产,等运营再次发送push消息推送,APP已不见白屏的情况。

    登录阿里云管理后台查看日志服务,首页接口调用时间基本正常,最长的没超过0.2秒:

    如果不做php-fpm配置的修改,正常情况下,没人攻击服务器恶意捣乱什么的,不会出现什么问题。

    公司商务近期在做该APP推广,经过我这边已经接入头条app广告,热葫芦,小豆故事,还有接入测试完成即将上线的百度app广告。

    用户数正在不断上升。运营人员消息推送发布,同一时间大量的用户打开APP,接口调用急剧增加,需要启动php进程数会被迅速拉起,原有的配置已经很难满足需求。 

  • 相关阅读:
    poj 1222 EXTENDED LIGHTS OUT (高斯消元 )
    poj 2187 Beauty Contest (凸包: 最远点对,最长直径 , 旋转卡壳法)
    poj 1408 Fishnet (几何:线段相交 + 叉积 求面积 )
    poj 1228 Grandpa's Estate ( 凸包 )
    高斯消元 模版
    poj 1830 开关问题 (高斯消元 )
    poj 1113 Wall (凸包:周长)
    旋转卡壳算法
    poj 1681 Painter's Problem (高斯消元 )
    字符串相关处理
  • 原文地址:https://www.cnblogs.com/wscsq789/p/10113812.html
Copyright © 2020-2023  润新知