首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google app Engine Standard上的Django应用程序在15次请求后减速

Google app Engine Standard上的Django应用程序在15次请求后减速
EN

Stack Overflow用户
提问于 2022-02-08 10:52:11
回答 1查看 233关注 0票数 0

我用F4机器在标准上部署了一个Django应用程序。API正在做一些机器学习,处理的时间在本地大约是4s ( 3.5到4s之间)。对于我的用例,也可以在部署的应用程序上延迟4-5。然而,当我多次测试部署的应用程序执行相同的请求时,我看到第一个请求需要3-4秒,但是经过10-15次迭代,它们大约需要8s。

下面是我用来测试我的应用程序的代码:

代码语言:javascript
复制
session = requests.Session()

all_times = []
for i in range(50):
    try:
        t0 = time.time()
        resp = session.post(url_api, headers=headers, json=data)
        t1 = time.time()
        print(t1 - t0)
        all_times.append(t1 - t0)
    except Exception as e:
        print("Err", e)

请求持续时间的结果如下:

我想知道为什么在15次请求之后会有这样的差距,为什么有些分数远高于平均7-8秒(例如10秒)。

查看Google控制台中的延迟时,我得到了相同的模式:

我试过的

我试图更改自动标度参数,认为这可能是由于实例的创建。但是,当我在app.yaml中将实例数量限制为1时,我得到了相同的模式

代码语言:javascript
复制
automatic_scaling:
  max_instances: 1

我还试图:

  • 使用requests中的会话避免在每次迭代时创建新会话。
  • 使用curl执行我的请求,这将导致相同的结果。

我的目标是最小化可变性,并将请求持续时间保持在5s以下。

更新

下面是来自Cloud的跟踪列表的一个示例,它显示了相同的模式:

我比较了与大延迟相关的跟踪和低延迟的跟踪,但是没有发现任何重要的区别。

更新2

由于Priyashree的回答,将min_idle_instances设置为1以避免机器重新启动解决了以下问题:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-10 14:35:36

当比较Google平台和本地平台的性能时,您应该记住,在GCP上部署需要更多的时间来导入所有必要的库并设置Django框架。

一般来说,将本地计算机上的性能与GCE上的性能进行比较没有多大意义,因为本地机器可能运行的是不同的操作系统。但是是的,我同意GAE在10-15请求之后所提供的请求之间的延迟差异是不可接受的,也是相当奇怪的。

检查以下内容:

  • 如果实例已超过其配置的班级的最大内存(在您的情况下为F4 ),则可能会导致实例和App关闭,从而创建一个新的实例,因为这可能是由于没有任何可用的实例,因为这是部署实例所需的时间,并且您已经将max_instances设置为1。
  • 如果您已经设置了任何利用。它指定了当旧实例到达目标CPU使用时将启动新实例以处理通信量的CPU使用阈值。
  • 正如您在评论中提到的那样,发送请求的间隔非常重要,“您一个接一个地发出请求”。当请求量减少时,App会减少实例数。当一个应用程序根本不被使用时,App会关闭它相关的动态实例,但在需要时立即重新加载它们。重新加载实例会给用户带来额外的延迟。要确保没有重新加载实例,请指定一个空闲实例的最小数目。根据请求量为应用程序设置适当数量的空闲实例,允许应用程序以较小的延迟为每个请求提供服务,除非您正在经历异常高的请求量。

此外,按照文档 (如果instance_class设置为F2或更高),可以通过将请求设置为高于默认值10的值来优化实例。要确定最优值,请逐步增加它并监视应用程序的性能。

通过PageSpeed Insight,它分析网页的内容,然后生成建议,使该页面更快,并可能是方便的。我还建议您联系Google支持1:1的交互,因为这个案例/问题是特定于环境的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71032636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档