You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Run Jobs任务并行不生效?求助排查原因

Cloud Run Jobs任务并行相关问题

为测试Cloud Run Jobs的任务并行功能,我创建了包含10个任务的Job,给每个容器分配8GB内存与8CPU,任务并行策略设置为「尽可能多地并发运行任务」,但运行时10个任务却是串行执行,而非并行。

我用一个1.6GB的CSV文件做测试,通过以下代码在Cloud Run实例上处理数据并加载至BigQuery:

import numpy as np
import os
import pandas as pd

project_id = os.environ.get("PROJECT_ID")
task_index = int(os.environ.get("CLOUD_RUN_TASK_INDEX")) 
nb_task = int(os.environ.get("CLOUD_RUN_TASK_COUNT"))
print(nb_task)

df_original=pd.read_csv("gs://dataproc-input-321/train.csv")
df_len=len(df_original)
print(df_len)

batch_size=df_len//nb_task
print("--------------batch--------------")
print(batch_size)
print(f"batch size, {batch_size}!")

start_row_no = int(batch_size * task_index)
end_row_no   = int(batch_size * (task_index + 1) - 1)

print(f"For task_id {task_index} , start is {start_row_no} and end is {end_row_no}")
df_sliced=df_original.iloc[start_row_no:end_row_no]
del(df_original)

df_sliced["type"]=np.where(df_sliced["PRODUCT_LENGTH"]%2==0,"even","odd")

df_even=df_sliced[df_sliced["type"] == 'even']
df_odd=df_sliced[df_sliced["type"] == 'odd']

df_even.to_gbq('output_dataset.amazon_even', 
                 project_id=project_id,
                 if_exists='append'
                 )
df_odd.to_gbq('output_dataset.amazon_odd', 
                 project_id=project_id,
                 if_exists='append'
                 )

我认为8GB内存与8CPU足以处理该文件,但任务始终无法并行执行。另外,尝试手动设置「限制并发任务数」为大于0的值时,会报错:Must be no higher than 0 for selected CPU and memory on the region,更换区域后问题依旧。同时我注意到,当给实例分配32GB内存时,Cloud Run提示必须至少配置4CPU,想了解这一规则的具体内容。

已尝试的操作

  • 手动设置任务并行数,但无法输入大于0的值
  • 更换区域,仍无法设置并行数

求助问题

  1. 为何无法手动设置并行数?
  2. 选择「尽可能多地并发运行任务」时,为何任务串行执行?
  3. Cloud Run的内存与CPU配比规则是什么?

内容的提问来源于stack exchange,提问作者amarjeet kushwaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:35:04