最近测试人员不时有反馈,APP首页打开会出现除了基本的页面布局,需要展示数据的地方都是空白。
想着最近首页接口有过调整,新增数据。会不会是接口改动导致的??
但APP首页接口都是读取redis的,应该不至于出现接口异常的问题啊!!
手上本来有迭代任务进行中,没怎么花时间去看这个问题。
昨天快下班那会手上任务快做完了。上服务器看看nginx日志,php日志,同时登录阿里云服务器管理控制台查看ecs机器的内存和cpu使用记录,redis使用情况。
发现问题出现得有规律,一般是运营人员在管理后台发布消息推送,随后几分钟就会出现resquest_time耗时比较厉害。平时大部分接口0.01-0.09秒接口请求完成调用返回。但发布消息推送后,接口调用记录显示耗时上升厉害0.1秒->0.5秒->1秒->3秒->7秒,最多的达到15点几秒。
查看最近的nginx错误日志:
网上搜索相关资料,找到如下:
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,同事们没有出现白屏无数据的情况,我手机偶现白屏一次。
上阿里云查看请求记录,发现push发出后,单个接口一分钟内超出200,想着项目刚上线不久,把laravel框架的接口调用次数限制一分钟200。
再上调laravel次数限制为500,重新上线快下班时,运营再次发送push消息推送,APP已不见白屏的情况。
登录阿里云查看接口调用时间正常: