我刚刚对我的应用程序进行了负载测试。我注意到两个相同请求的延迟存在很大差异:3 秒与 30 秒。当我挖掘痕迹时,我发现了以下内容:
| | Traced (ms) | Untraced (ms) |
|----------------------+-------------+---------------|
| High-latency Request | 193 | 29948 |
| Low-latency Request | 305 | 2934 |
以下是痕迹的屏幕截图:
整体延迟低
整体延迟较高
我无法理解运行时性能 10 比 1 的差异。
我只在负载下看到这些高延迟请求。我的代码中的某些内容是否可以解释这种可变性(假设两个请求都遵循相同的代码路径)?
根据我的经验,这些非常高的延迟是由新实例启动引起的。 AppEngine Google Group 中有一个关于类似问题的讨论:https://groups.google.com/d/msg/google-appengine/MBveo1KSTyY/mkYdyCmfAgAJ https://groups.google.com/d/msg/google-appengine/MBveo1KSTyY/mkYdyCmfAgAJ
你可以做两件事:
- 通过减少应用程序的整体大小(代码、库、资产)和大量使用延迟初始化来减少实例启动所需的时间。使用更高的实例类也可能有帮助(更强的实例启动速度更快)
- 调整您的扩展选项:始终有一个(或两个)空闲实例闲置,因此无需在流量高峰期间等待实例启动
希望有帮助。就我而言,使用更高的实例类已经有很大帮助了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)