我在Mac上更新了AppEngine(有一段时间没有更新)。 dev_appserver
过去几乎是立即启动(我的网站很小),但现在需要30秒。第一次启动后,如果我先关闭然后再打开,它又很快。但是,如果我切换到另一个项目并回到第一个项目,那确实很慢。
我用--log_level=debug
运行了它,但是它挂起时没有打印任何内容。知道发生了什么吗?与之共事的快乐变成了一场噩梦。让我知道您是否需要任何其他信息(我有一个python webapp,主要提供静态文件)
答案 0 :(得分:1)
首次运行dev_appserver
时,将部署一个新实例,由于需要进行所有设置和配置,因此会花费一些时间。这次称为冷启动。
现在,当您“切换到另一个项目并回到第一个项目”时,将重复此过程,从而进行另一个冷启动。
但是,30秒接缝有点太多。如果您最近更新了应用程序,则可以检查导入的库,以防其中一个加载时间太长。您也可以在Best practices for App Engine startup time上阅读此博客文章,其中指出:
大多数情况下,标准应用程序会导入一些模块 对性能的影响应该忽略不计。但是,当 第三方库变得足够大,我们开始看到它们做得很奇怪 具有导入语义的内容,这可能会浪费您的启动时间
如果需要更好的性能,可以尝试using warmup requests:
使用预热请求来避免请求和 加载应用程序代码期间的响应延迟 到新创建的实例。
更新: :dev_appserver似乎存在问题,影响了它在219.0.1版上的功能。如Issue Tracker:117145272所述:
事实证明dev_appserver中的最新更改(随Cloud SDK发布) 219)使启动时间变慢,但仅在使用dev_appserver时 在pydevd处于调试模式下
建议将SDK升级到版本220,并使用以下命令安装grpcio
pip install grpcio
此外,另一个解决方法是使用此命令将SDK版本降级为228:
gcloud components update --version 218.0.0
请记住,不建议您降级,因为降级可能会打开安全漏洞的大门。请谨慎使用。