记一次前端504问题反馈

怪小弟不才,出现问题只能记录与笔记中,方便以后回忆起来。

504 GateWay - Timeout

调用网关超时,也就意味着上游服务器返回超时。如果上游服务器返回了一个无效的相应,那么返回为502,暂且不讨论502。

​ 此问题对于前端同学反馈,某接口请求结果,时好时坏(返回成功或请求一直pending)。

所以暂时排除网络的问题。可能是接口内部逻辑问题。

​ 通过pprof打印出60秒的profile输出重定向到文件之后下载到本地,通过go tool pprof -http=:6060进行分析。

​ 如下图,根据火焰图很明显看出,大部分时间总是在调用**FromCache,从缓存中获取数据,通过Peek和Graph也很容易看出大部分的CPU的时间循环阻塞在哪里。

img

​ 项目中的缓存用的是Redis,如果有Redis监控的话。估计Redis的负载应该会很高。分析了下业务场景。的确有一种情况忘记考虑,会’死递归‘的取数据。通过pprof go tool 工具很容易发现程序的问题。真是个大杀器呀!