我刚对我的应用运行了负载测试。我注意到两个相同请求的延迟有一些非常大的变化:3秒与30秒。当我挖掘痕迹时,我发现了以下内容:
| | Traced (ms) | Untraced (ms) |
|----------------------+-------------+---------------|
| High-latency Request | 193 | 29948 |
| Low-latency Request | 305 | 2934 |
以下是跟踪的屏幕截图:
整体潜伏期低
总体潜伏期高
我无法理解运行时性能的10比1差异。
我只在负载下看到这些高延迟请求。我的代码中的某些内容可以解释这种可变性(假设两个请求都遵循相同的代码路径)吗?
答案 0 :(得分:1)
根据我的经验,那些非常高的延迟是由一个新的实例启动引起的。 AppEngine Google Group中有一个关于类似问题的讨论:https://groups.google.com/d/msg/google-appengine/MBveo1KSTyY/mkYdyCmfAgAJ
你可以做两件事:
希望有所帮助。就我而言,使用更高级的实例类已经帮助了很多!
答案 1 :(得分:0)
我也有这个问题,谷歌支持建议减少max_concurrent_requests
。当时的假设是CPU受到限制。减少它后,延迟总体上变得更好。我仍然不确定发生了什么,因为我没想到应用程序会使用那么多的CPU。遗憾的是,没有工具可以在GAE上分析CPU以确定CPU密集部分的位置