我们有一个使用laravel在弹性beantalk上运行的php应用程序,该应用程序已经运行了将近2年。从过去的2周(近3周)以来,我们一直在随机获得非常高的响应时间,这导致数据库连接被塞满,然后由于连接过多而导致应用程序崩溃。第一次发生之前,对代码的唯一更改是在一个月前,而且只是很小的更改。
这种情况发生时,beanstalk监视部分中的所有内容都会保持稳定,但目标响应时间可能长达40秒。由于服务器到此为止无法执行任何操作(一切都超时了),所以我别无选择,只能重新部署相同版本的应用程序以重置服务器,在那之后,我们最好花一天时间或2,然后再次发生。
我已经实现了Laravel望远镜,以查看是否能对发生的请求有任何了解,但我能看到的是,一些非常简单的请求开始耗时4到150秒,而没有明显的原因。此外,当应用稳定后,我注意到望远镜正在记录一些耗时200ms的慢数据库查询,而当我直接在mySQL工作台中尝试这些查询时,耗时约31ms。
望远镜仅记录需要3秒钟以上的请求,也许我应该更改它以记录所有内容?但是我们的流量很大,所以我觉得很难在其中找到任何东西。我目前不确定该怎么办。你们会怎么调试呢?