google-cloud-platform - 如何修复 CloudRun 错误“请求被中止,因为没有可用的实例”
问题描述
我正在使用托管 CloudRun 来部署一个带有concurrency=1
. 部署后,我将并行触发四个长时间运行的请求。大多数时候,一切正常——但偶尔,我会在几秒钟内从一个节点面临 500 个;日志仅提供主题中提供的错误消息。
使用带指数退避的重试并没有改善这种情况;重试也以 500 秒结束。StackDriver 日志也不提供更多信息。
可能相关gcloud beta run deploy
的论点:
--memory 2Gi --concurrency 1 --timeout 8m --platform managed
错误消息的确切含义是什么——我该如何解决这个问题?
解决方案
当基础架构无法快速扩展以赶上流量高峰时,可能会出现此错误消息。基础设施只会在队列中保留一个请求一段时间(大约 10 秒)然后中止它。
这通常发生在以下情况:
- 流量突然大幅增加
- 冷启动时间长
- 请求时间长