gpt4 book ai didi

python - 什么决定了动态实例的启动时间,如果代码相同,它可以在几周之间变化吗

转载 作者:行者123 更新时间:2023-11-28 17:30:35 24 4
gpt4 key购买 nike

我们在我们的应用程序中遇到了奇怪的问题,我们得到的错误是:-

在尝试为您的请求提供服务的等待时间过长后,请求被中止。

之前,我们能够使用相同数量的空闲实例很好地扩展,但现在我们不能,我们也没有更改任何可能影响启动时间的代码。但是现在我们收到超时。

最佳答案

使用 Python 可以显着缩短实例启动时间,具体取决于应用的代码组织。

延迟加载请求处理程序代码仅在实例启动时加载包含触发实例启动的实际请求处理程序的 python 文件,而不是整个应用程序代码。因此,处理程序代码可以与模块的 .yaml 中提到的模块主文件分开。在任意多个文件中,甚至每个文件一个处理程序。

例如,在特定模块的 module_blah.py 文件中,您可以像这样只加载相应的 file1.pyfile2.pyrare.py 文件以及 module_blah.py 文件(根据模块的 .yaml 文件加载)并且仅当/当请求各自的路径时:

app = webapp2.WSGIApplication([
('/path1', 'file1.HandlerOne'), # loads file1.py
('/path2', 'file2.HandlerTwo'), # loads file2.py
('/pathX', 'rare.RareHandlerOne'), # loads rare.py
('/pathY', 'rare.RareHandlerTwo'), # loads rare.py
('/.*', ModuleBlahHandlerX) # already loaded module_blah.py
], debug=True, config=apart_config)

您还可以将较重的/第 3 方库的必要导入语句放在使用它们的方法中,而不是放在文件的顶部,这也仅在调用受尊重的方法时加载这些文件。

缺点是某些请求的响应时间可能偶尔会出现峰值 - 当在处理这些请求的实例中按需加载相应代码时。由相同实例处理的后续请求会更快,因为代码已经加载。

我猜想 SDK 或 GAE 基础设施运行条件的变化(整体负载平衡事件、由于维护、中断等导致的更短或更长的瞬变)可能会导致实例启动时间的变化,潜在如果您的实例的启动时间足够接近允许的最大值,则会导致您描述的症状。我描述的技术可以帮助您的应用远离最大值,减少遇到问题的机会。

最后,配置更强大的instance class还可以加快相同应用程序代码的实例启动时间。

关于python - 什么决定了动态实例的启动时间,如果代码相同,它可以在几周之间变化吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635012/

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