gpt4 book ai didi

google-cloud-platform - 尽管有大量积压和可用实例,Google Cloud Run 仍未扩展

转载 作者:行者123 更新时间:2023-12-04 17:10:05 24 4
gpt4 key购买 nike

我看到类似 this post 的内容.看起来需要更多详细信息才能回答该问题,因此我重新询问了我的详细信息,因为没有提供这些详细信息。

我正在运行修改版的 Google Cloud Run image processing tutorial example .

我正在使用 this create tasks snippet 将任务插入到任务队列中.队列中的任务被推送到我的云运行实例。

问题是它没有扩大规模并及时完成我的任务。

我的云运行服务配置:

  • 我已经尝试设置至少 0 和 50 个实例
  • 我最多尝试了 100 和 1000 次
  • 我试过--concurrency=1 and 2, and 8
  • 我尝试过使用 --async 和不使用 --async

使用 50 个实例 预分配,即使 concurrency 设置为 1,我通常会看到 ~10 个事件容器实例 ~40 个空闲容器实例。我在队列中有 ~30,000 个任务,它正在通过 ~5 jobs/minute

我的任务队列有默认设置。我的容器没有使用大量 CPU,但它们使用了大量内存。

一个过程大约需要一分钟才能完成。我只为每个容器实例运行一个进程。应该设置哪些附加参数以获得更高的吞吐量?


编辑 - 添加额外的日志

我为队列启用了日志,我发现一些作业出现了一些错误。错误如下所示:

{
insertId: "<my_id>"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.tasks.logging.v1.TaskActivityLog"
attemptResponseLog: {
attemptDuration: "19.453155s"
dispatchCount: "1"
maxAttempts: 0
responseCount: "0"
retryTime: "2021-10-20T22:45:51.559121Z"
scheduleTime: "2021-10-20T16:42:20.848145Z"
status: "UNAVAILABLE"
targetAddress: "POST <my_url>"
targetType: "HTTP"
}
task: "<my_task>"
}
logName: "<my_log_name>"
receiveTimestamp: "2021-10-20T22:45:52.418715942Z"
resource: {
labels: {
location: "us-central1"
project_id: "<my_project>"
queue_id: "<my-queue>"
target_type: "HTTP"
}
type: "cloud_tasks_queue"
}
severity: "ERROR"
timestamp: "2021-10-20T22:45:51.459232147Z"
}

我在云运行日志中没有看到错误。


编辑 - 附加调试信息

我试图将队列排除在等式之外,以确定它是云运行还是队列。相反,我直接使用 curl 发布到 url。一些任务成功运行,对于其他任务,我收到了错误。在下面的日志中,空行是成功的:

upstream connect error or disconnect/reset before headers. reset reason: connection termination


upstream connect error or disconnect/reset before headers. reset reason: connection termination
upstream connect error or disconnect/reset before headers. reset reason: connection termination
upstream connect error or disconnect/reset before headers. reset reason: connection termination

upstream connect error or disconnect/reset before headers. reset reason: connection termination

这让我觉得 cloud run 并没有处理所有传入的请求。


编辑-任务完成时间测试

我想测试完成一项任务所花费的时间是否会导致 CloudRun 和队列扩展并跟上任务的任何问题。

代替我真正想要完成的任务,我放置了一个只休眠 n 秒的虚拟任务,并将任务详细信息打印到标准输出(我可以在云运行日志中读取)。

当 n 设置为 0, 5, 10 秒 时,我看到实例的数量在增加,并且与添加到队列中的任务保持同步。当 n 设置为 20 秒 或更多时,我发现实例化的 CloudRun 实例更少,并且任务队列中的项目越来越多。我在日志中看到更多状态为 Unavailable 的错误。

根据 this post :

Cloud Run 提供最长 60 分钟的更长请求超时时间

所以看起来长时间运行的任务是意料之中的。这是 Google 错误还是我缺少设置某些参数?

最佳答案

  1. 我认为这不是 Cloud Run 服务问题。我认为这是您如何设置任务的问题。

  2. 日志条目中的日期看起来很奇怪。查看 receiveTimestampscheduleTime。任务安排在接收时间之前六个小时。你有时区问题吗?

  3. 根据文档,如果未设置response_time,则不会尝试执行任务。看来您没有正确安排任务,而且任务从未运行过。

在此链接中搜索文本任务尝试的状态:

Types for Google Cloud Tasks

关于google-cloud-platform - 尽管有大量积压和可用实例,Google Cloud Run 仍未扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69653790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com