- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 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/
我想做一些类似 Jar cvf file.jar *.class 的事情,但是我在我的 jre6 java 安装中没有看到 jar 编译器文件。 jar 是独立的东西吗?我想安装? 最佳答案 您需要下
阅读时 an intro to rxjs我读了以下内容并有点担心 the second subscription will restart the sequence from the first va
如何将 MainEngine Observable 转换为 Cold?来自这个例子: public IObservable MainEngine { get
我最近一直在进行冷迁移...这意味着我无法在进行迁移时从应用程序级别读取/写入数据库(维护页面)。 这样就不会因为更改结构而发生错误,而且如果负载很大,我也不希望 mysql 在迁移过程中崩溃。 我的
我需要在 Linux 中以物理方式关闭 PCI 设备的电源。我已经找到了我需要的函数,但似乎编写了一个内核模式应用程序来使用该库,因为我在内核头文件中找到了它。 我在 drivers/pci/pci.
我是一名优秀的程序员,十分优秀!