我为我的应用引擎应用程序尝试了一些不同的设置,但收效甚微或毫无结果。主要是我将实例类从 F1 更改为 F2,我所经历的只是更高的成本并且没有性能提升。现在我恢复到以下设置
api_version: 1
threadsafe: true
module: default
instance_class: F2
automatic_scaling:
min_idle_instances: 5
max_idle_instances: automatic
min_pending_latency: automatic
max_pending_latency: 30ms
max_concurrent_requests: 50
default_expiration: "14d 5h"
以上看起来还好吗?将实例类从 F1 更改为 F2 时,为什么我没有体验到性能提升?我确实体验到 memcache 和数据存储往返之间的巨大性能差异,因此看来我加快我的应用程序响应时间的唯一机会是更多地使用 memcache。
最佳答案
实例类的存在是为了支持缩放。与功能较弱的实例相比,具有更多 RAM 和更快 CPU 的实例可以处理更多并发请求。因此,升级实例允许应用程序处理更多流量,但对单个请求时间的影响可能很小,除非请求使用大量 RAM 或受 CPU 限制。
在 App Engine 中,数据存储查询是 IO 绑定(bind)的,因为它们通过网络发送请求。进行大量顺序数据存储调用会增加响应时间。您可以使用云控制台跟踪工具或 Appstats查看您的请求正在进行的远程过程调用。使用 ndb's asynchronous operations减少应用等待数据存储调用的时间,以及 tasklets并行化数据存储读取。
关于python-2.7 - 为 appengine 应用选择实例类和自动缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44559402/