繁体   English   中英

在什么情况下,Google Cloud Run 会响应“请求失败,因为与实例的 HTTP 连接出现错误。”?

[英]In what cases does Google Cloud Run respond with "The request failed because the HTTP connection to the instance had an error."?

我们已经运行 Google Cloud Run 一个多月了,并注意到我们周期性地拥有简单地失败的云运行实例:

请求失败,因为与实例的 HTTP 连接出错。

此消息几乎总是*由以下消息(这些是日志中唯一的消息)进行:

此请求导致启动新的容器实例,因此可能比典型请求花费更长的时间并使用更多的 CPU。

*我找不到也不记得有不正确的情况,但我没有进行详尽的搜索。

一些可能很重要的事情:

  • 我们的并发级别设置为 1,因为我们的请求最多可以占用 memory 可用空间,即 2GB。
  • 我们收到错误消息,指出我们已超过最大 memory,但我们已回拨我们的使用量以避免该问题。
  • 此消息似乎在 30 秒(例如 32、35)后不久出现,我们的超时设置为 75 秒。

在我的例子中,这个错误总是在收到请求 120 秒后抛出。 我发现了 Node 12 默认请求超时为 120 秒的问题。 因此,如果您使用的是 Node 服务器,则可以更改默认超时或将 Node 版本更新为 13,因为它们删除了默认超时https://github.com/nodejs/node/pull/27558

如果您的日志没有捕捉到任何有用的信息,则很可能是因为您运行了繁重的 CPU 任务,所以实例崩溃了。 可以在Google 问题跟踪器上找到有关此的提及:

Cloud Run 上 503 错误的一个常见原因是请求使用大量 CPU 并且由于容器资源不足而无法处理某些请求

对我来说,通过升级节点解决了 docker 文件中的节点“FROM node:13.10.1 AS build”升级到“FROM node:14.10.1 AS build”问题得到解决。

暂无
暂无

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

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