Google App Engine 冷启动时间慢(Flask 应用程序)

问题描述 投票:0回答:1

我在托管我的 Flask 应用程序的 Google App Engine 方面遇到问题。

Flask 应用程序的大小为 60 MB。

应用程序的requirements.txt是:

python-bidi>=0.4.2,<0.5.0
Flask
mock
google-auth
pytest
google-cloud-ndb
bcrypt
google-cloud-tasks
google-cloud-storage
bleach
openpyxl
pandas
xlrd
protobuf<4.0.0dev,>=3.15.0
xmltodict
stripe
cryptography
pycountry
openai
PyPDF2
deep_translator
reportlab
xhtml2pdf
google-api-python-client
google-auth-httplib2
google-auth-oauthlib
oauth2client
werkzeug>=2
requests>=2,<3
identity>=0.5.1,<0.6

该应用程序用于将文件从 CSV 转换为 XML,并且它还使用一些 API 端点来检索数据并将其转换为 XML 和 PDF。

无论如何,问题是 Google App Engine 上的实例冷启动需要 40 秒,有时甚至更长。 GAE 的实例类是:F4_1G

实例的缩放在 app.yaml 中是自动的 预热请求已启用。 应用程序正在使用Python 3.9

冷启动启动的日志示例: Logging example of a cold boot start

请求后记录: Logging after the request

堆栈跟踪: Stack trace of the request

我没有从堆栈跟踪中看到任何有用的信息,它只是显示加载花了 40 秒。 冷启动完成后,响应很快(平均40ms)。

任何帮助将不胜感激,我已经尝试了许多修复,但没有任何效果(预热请求,减少所需的库,我无法选择较小的实例类,因为内存太低)。

如果需要,我还可以提供更多屏幕截图/信息。

flask google-cloud-platform google-app-engine google-cloud-datastore
1个回答
0
投票

我同意@DazWilkin,您需要分析您的应用程序以弄清楚到底发生了什么以及是否/可以做什么来显着改进它。

如果预热请求还不够,典型的方法是在

min\_idle\_instances
可扩展性配置
中将
1
设置为app.yaml,以最大程度地减少冷启动时间的影响。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.