1-2天前,使用相同的代码,启动时间从1-3秒增加到10-30秒。
我使用python 2.7多线程。
此请求中的代码从memcache中读取一个值并将其返回给用户。如果memcache为空,则从本地文件系统中的模板读取并呈现简单的html-template。两者都使用相等的cpu_ms。
相同的代码在测试应用程序中正常工作。测试应用程序的启动时间约为1-2秒。
我昨天晚上发出生产问题,但没有收到答案。
我尝试将实例类型从F1更改为F4,启动时间为F4 8-10秒。
我的应用的AppID:f1f2ru
问题前的日志记录:
启动问题时的日志记录:
立即记录日志:
测试应用中的日志记录:
答案 0 :(得分:1)
没有日志等,很难知道。但谁知道,也许谷歌资源不足,你的免费应用程序正在付出代价。
https://developers.google.com/appengine/docs/adminconsole/instances#Loading_Requests
目前,我在一个非常简单的应用程序上获得了大约5秒的启动时间。然而,30秒似乎很长一段时间。
https://developers.google.com/appengine/docs/python/config/appconfig#Warmup_Requests
App Engine经常需要将应用程序代码加载到新实例中。当您重新部署应用程序,当负载模式增加到超出当前实例的容量时,或仅仅由于底层基础架构或物理硬件的维护或修复时,就会发生这种情况。
或者只是付钱:
https://developers.google.com/appengine/docs/adminconsole/performancesettings?hl=en
空闲实例滑块控制应用程序在任何给定时间可用的最小和最大空闲实例数。
上部滑块设置最小空闲实例数:
注意:要指定最小空闲实例数,您必须拥有付费应用。
与往常一样,您支付的越多,服务越好。
答案 1 :(得分:0)
图书馆之前或之后是否相同?将库添加到源代码中可以并且通常会增加启动时间(AppEngine需要加载它们)。这是容易被忽视的东西,其中一些真的很臃肿。
答案 2 :(得分:0)
我不知道第一次增加启动时间的原因。
增加操作时间的问题是我的错误: 我的应用程序执行查询 object.date< datetime.datetime.now()
我的数据存储区没有日期< datetime.now(),但它有date = None(null)的对象。我忘记了null它是正常的,索引值和null<任何价值。