首页 > 解决方案 > GCP 函数 Node.js 巨大的延迟

问题描述

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

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

第一个延迟示例

或者

第二个延迟示例

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

标签: google-cloud-platformgoogle-cloud-functionsserverless

解决方案


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

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

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

示例我在 helloworld 云函数上使用了它,并从布什脚本中卷曲它。似乎在数百次调用中,有一次执行的延迟比平时大 10 倍。

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


推荐阅读