API返回延迟,FPM重启后恢复之后又重现 问题解决方案
背景 最近在提供后台API时,提供了一个简单逻辑的接口 部署在测试环境,自测没问题,提交测试 突然有一天,接口响应延迟严重,几乎每次都是3-4秒返回 这对于一个接口来说,肯定是有问题的 于是便有了以下的方法尝试 重启FPM 最开始以为不是什么大问题,猜想可能是fpm问题 毕竟测试环境,部署代码繁多 重启后,接口响应正常,可不一会就又复现 重新分析定位问题 经过几次的尝试后,发现问题其实没有那么简单 重启fpm后,过了不到几秒,问题依然复现 编写简单的php文件,无复杂逻辑,只输出字符串,问题复现 命令行执行文件,无此问题 经过以上尝试,确认是FPM的问题 或者PHP的初始化解析执行的问题,当时想是不是有特定的模块加载 经过php -m 查看,无特殊模块(其实应该仔细看看,所以才绕了弯路) 日志定位 有了上面的分析,最先想到的是利用日志查看问题 查看nginx日志 nginx 日志 格式,添加详细的 各个时间段的相应 log_format main '$remote_addr [$host] - $remote_user [$time_local] $request upstream_response_time: $upstream_response_time request_time: $request_time upstream_connect_time: $upstream