我有一个Laravel应用程序,几乎每个请求都会向SQS发送数据。但是,每隔一段时间,其中一个请求需要几秒钟才能执行。附件是来自New Relic的堆栈跟踪。似乎tick()方法(在CURL中)被多次调用,而秒只是堆积起来。它似乎也尝试连接到同一个端点,尽管它们是AWS服务,所以我无法想象它们经常会没有响应。
知道为什么会这样吗?
我的代码托管在AWS上,位于ELB后面的两个m4.large实例上。通常,应用程序的吞吐量相当低 - 大约每分钟50-100次请求。
其他想法:由于这些实例位于私有子网中,SQS上端点的长请求时间是否与DNS相关?
答案 0 :(得分:0)
SQS推送有时很慢(> 50ms)(特别是如果您的数据包大小很大)。我注意到SQS需要花费大约80ms来获得相当小的数据包(200k)。我将推动转移到redis并从redis到sqs的批量推动解决了这个问题。 我没有花时间调查为什么推动速度很慢。