分析 Dataproc Serverless for Spark 资源使用情况

Cloud Profiler 会持续收集和报告 应用程序 CPU 使用情况和内存分配信息。你可以通过 批量创建工作负载或创建会话工作负载时 分析属性。 Dataproc Serverless for Spark 将相关的 JVM 选项附加到 spark.driver.extraJavaOptionsspark.executor.extraJavaOptions 工作负载配置。

选项 说明 默认
dataproc.profiling.enabled 启用对工作负载的分析 truefalse false
dataproc.profiling.name Profiler 服务中的配置文件名称 PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID,其中:
  • WORKLOAD_TYPE 设置为 batchsession
  • WORKLOAD_ID 设置为 batchIdsessionId

注意:

  • Dataproc Serverless for Spark 会将性能分析器版本设置为批处理 UUID会话 UUID
  • Profiler 支持以下 Spark 工作负载类型: SparkPySparkSparkSqlSparkR
  • 工作负载必须运行超过三分钟才能使用 Profiler 以收集数据并上传到项目中。
  • 您可以通过构建一个 SparkConf,然后在代码中设置 extraJavaOptions。 请注意,在提交工作负载时设置 extraJavaOptions 属性不会替换随工作负载提交的性能分析选项。

如需查看与批量提交一起使用的性能分析器选项示例,请参阅 PySpark 批处理工作负载示例

启用分析

如需对工作负载启用性能剖析,请完成以下步骤:

  1. 启用 Profiler
  2. 如果您使用的是自定义虚拟机服务账号,请向自定义虚拟机服务账号授予 Cloud Profiler Agent 角色。此角色包含必需的字段 Profiler 权限。
  3. 根据需要设置性能分析 提交批量工作负载创建会话模板

PySpark 批量工作负载示例

以下示例使用 gcloud CLI 提交启用了性能分析的 PySpark 批处理工作负载。

gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \
    --region=REGION \
    --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \
    --  other args

系统会创建两个配置文件:

  • PROFILE_NAME-driver,用于分析 Spark 驱动程序任务
  • PROFILE_NAME-executor,用于分析 Spark 执行程序任务

查看配置文件

您可以通过 Profiler 查看配置文件 Google Cloud 控制台中。

后续步骤