gpt4 book ai didi

python - 改进在 Python 3.7 标准环境中运行 Django 的 Google App Engine 的冷启动时间

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:42 26 4
gpt4 key购买 nike

我在 Python 3.7 标准环境下的 Google App Engine 上运行基于 Django 的网络应用程序。使用该应用程序时,请求通常需要 500 毫秒左右,这是完全可以接受的。然而,当应用程序有一段时间(几分钟)未被访问时,日志显示 Google App Engine 实例已关闭,下一个请求需要 gunicorn 重新加载,大约需要 20 秒。

我显然不能让用户在页面加载前等待 20 秒。在我的本地设置上进行测试时,服务器需要几秒钟来加载环境变量,然后调试服务器几乎立即加载。

我认为我的代码没有问题,因为一旦“冷启动”发生,一切都运行得很快,所以请求不会等待数据库读取或类似的事情。

有哪些选项可以优化 Google App Engine 上的 django 冷启动?

到目前为止,我已经将实例类增加到 F4,并根据 this guide 指定了 gunicorn worker 的数量。 .理论上我可以转到 F4_1G,但这是可用的最高实例,而且它似乎没有解决冷启动问题。

我能想到的唯一可能会减慢实例启动速度的是,在我的 app.yaml 中,我设置了 32 个环境变量(主要是 API 凭据)。这可能是启动时间长的主要原因吗?如果是这样,是否有一种安全的替代方法可以在不使用环境变量的情况下向 Django 提供 API 凭据?

谢谢

最佳答案

比较 GAE 与本地机器上的性能并不真正相关,请参阅 Why does Google Cloud SQL (using JDBC) take longer to insert records from Google App Engine than from my personal computer?

您在本地看到的那些秒数不仅仅用于加载局部变量(如果您不相信,您可以实际测量它并将其显示在日志消息中),大部分时间用于导入所有需要的库和设置启动 django 框架(也许还有其他适用于您的应用程序的东西),您需要对其进行概要分析以弄清楚到底发生了什么以及如果/可以做什么来显着改进它。

最小化冷启动时间影响的典型方法是:

关于python - 改进在 Python 3.7 标准环境中运行 Django 的 Google App Engine 的冷启动时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com