记一次接口调用耗时服务端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进程数会被迅速拉起,原有的配置已经很难满足需求。
上一篇: 一起学爬虫——一步一步打造爬虫代理池
下一篇: 浮动Float(HTML、CSS)