在Python3.7标准环境下,我在Google引擎上运行一个基于Django的web应用程序。当使用该应用程序时,请求通常需要大约500 is,这是完全可以接受的。然而,当应用程序有一段时间(几分钟)没有被访问时,日志显示实例已经关闭,下一个请求需要进行加载,大约需要20秒。
我显然不能让用户在加载页面之前等待20秒。在本地设置上测试时,服务器需要几秒钟来加载环境变量,然后调试服务器几乎立即加载。
我认为我的代码没有问题,因为一旦发生了“冷启动”,一切都会运行得很快,所以请求不是在等待数据库读取之类的东西。
有什么选择可以优化django冷启动的谷歌应用引擎?
到目前为止,我已经将实例类增加到了F4,并根据本指南指定了枪手的数量。理论上,我可以去F4_1G,但这是最高的可用实例,而且它似乎没有解决冷启动问题。
我唯一能想到的减缓实例启动的方法是,在我的app.yaml中,设置了32个环境变量(主要是API凭据)。这是否是启动时间较长的主要原因?如果是这样的话,是否有一种安全的选择可以不使用环境变量而向Django提供API凭据呢?
谢谢
发布于 2019-07-16 11:25:18
比较GAE与本地机器的性能并不真正相关,请参阅为什么(使用JDBC)从插入记录比从我的个人计算机插入记录花费更长的时间?
您在本地看到的这些秒不只是加载局部变量(如果您不确信,您可以实际测量它并在日志消息中显示它),大部分时间用于导入所有所需的库并设置django框架(或者是应用程序的其他东西),您需要对它进行分析,以确定到底发生了什么,如果可以做/what来显着地改进它,则需要对其进行分析。
尽量减少冷启动时间影响的典型方法是:
https://stackoverflow.com/questions/57054132
复制相似问题