【问题标题】:GCP Functions Node.js Huge LatencyGCP 函数 Node.js 巨大的延迟
【发布时间】:2020-07-07 20:17:51
【问题描述】:

我们正在运行简单的 GCP 函数(纯粹的、没有 Firebase 或添加任何其他层),它只使用 Node.js 引擎(以前的版本 8,现在是 10)处理 HTTP 请求并返回一些“简单的 JSON 响应”。我们看到的是,有时(但并非很少)在请求“被 GCP 接受”时以及在它到达我们的函数代码之前存在巨大的延迟。如果我说巨大,我不是在说毫秒,而是以秒为单位!这不是冷启动(我们在全局范围内有单独的日志消息,所以我们知道冷启动何时发生)。函数目前有 256 或 512 mb 并在近距离区域运行。

我们在 GCP 函数的第一行记录,例如:

有人也经历过吗?有时这种延迟可能需要长达 5 秒(或很少甚至更长),这是否正常? 顺便说一句,有时同样的事情也会发生在输出端。因此,如果运气不好,可能需要长达 10 秒。提前感谢您的任何回复,无论您是否有类似的经历。

【问题讨论】:

    标签: google-cloud-platform google-cloud-functions serverless


    【解决方案1】:

    我看到的所有此类问题都与冷启动有关,或者无法证明它们与代码启动无关。

    这个问题甚至可以扩展到stackoverflow。我们没有任何机会在没有示例的情况下重现它,至少功能和执行次数,但是我会尝试回答。

    似乎延迟分析主要是在日志上完成的。我认为您应该尝试使用 GCP 中提供的“跟踪”功能(direct linkdocumentation)。这应该为您提供能够跟踪问题的数据。

    例如,我在 helloworld 云函数中使用了它,并从丛林脚本中卷曲它。似乎在数百次调用中,有一次执行的延迟是平时的 10 倍。

    我希望它会有所帮助:)!

    【讨论】:

    • 您好,感谢您的评论 :) 不幸的是,这是一种常见的情况,并且在相当小但具有可持续频率(如几秒钟内的 1 个请求)期间,因此一个功能应该仍然很热。对于冷启动识别,我在全局级别登录,似乎信息是正确的。我会试试那个痕迹!感谢您的提示
    • 嗯,原来可能是冷启动!问题是当我在全局级别登录时,该日志与任何执行无关(我错误地认为它将与启动它的执行相关联)。将深入挖掘。
    • 好吧,看来冷启动比我想象的要多得多。但有时浏览器和谷歌基础设施之间仍然存在很大的延迟。例如,在我的浏览器中,我看到该请求花费了将近 7 秒,而在日志中则花费了 3 秒。
    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2018-08-12
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多