繁体   English   中英

从 Google API 网关到 Cloud Run 的请求延迟

[英]Delay on requests from Google API Gateway to Cloud Run

我目前看到我的第一个请求进入我们的 API 有 2-3 秒的延迟。 我们已将 min instances 设置为 1 以防止冷启动,但这仍然会发生延迟。

如果我检查指标,我在指定的时间范围内看不到任何启动延迟,因此我无法了解导致这些延迟的原因。 跟踪给出以下信息:

追踪细节 GET /info

我唯一可以改变的是切换到“始终分配 CPU”,但这对任何方式都没有帮助。

有人可以提供更多信息吗?

文档中所述:

后台活动是在您的 HTTP 响应已交付之后发生的任何事情。 要确定您的服务中是否存在不明显的后台活动,请检查您的日志以查看在 HTTP 请求条目之后记录的任何内容。

如果 CPU 仅在请求处理期间分配,则避免后台活动

如果您需要将服务设置为仅在请求处理期间分配 CPU ,则当 Cloud Run 服务处理完请求后,容器实例对 CPU 的访问将被禁用或严重限制。 如果使用这种类型的 CPU 分配,则不应启动在请求处理程序的 scope 之外运行的后台线程或例程。 检查您的代码以确保所有异步操作在您交付响应之前完成。

使用这种 CPU 分配运行后台线程可能会产生不可预知的行为,因为对同一容器实例的任何后续请求都会恢复任何暂停的后台活动。

正如线程中提到的,原因可能是您执行的所有操作都是在发送响应之后发生的。

根据文档,默认情况下仅在请求处理期间分配 CPU,因此您唯一需要更改的是为后台活动启用 CPU 分配。

您可以参阅文档以获取与优化 Cloud Run 响应时间的步骤相关的更多信息。 您还可以查看与使用 Google API 网关与 Cloud Run 相关的博客

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM