Cloud Profiler

Cloud Profiler 會持續收集及回報應用程式的 CPU 用量和記憶體分配資訊。

必要操作:

  • Profiler 僅支援 Managed Service for Apache Spark Hadoop 和 Spark 工作類型 (Spark、PySpark、SparkSql 和 SparkR)。

  • 工作必須執行超過 3 分鐘,Profiler 才能收集資料並上傳至專案。

Managed Service for Apache Spark 會辨識 cloud.profiler.enable 和其他 cloud.profiler.* 屬性 (請參閱「Profiler 選項」),並將相關的 Profiler JVM 選項附加至下列設定:

  • Spark:spark.driver.extraJavaOptionsspark.executor.extraJavaOptions
  • MapReduce:mapreduce.task.profile 和其他 mapreduce.task.profile.* 屬性

啟用剖析功能

如要在 Managed Service for Apache Spark 和 Hadoop 工作中啟用及使用 Profiler,請完成下列步驟。

  1. 啟用 Profiler

  2. 建立 Managed Service for Apache Spark 叢集,並將服務帳戶範圍設為 monitoring,允許叢集與 Profiler 服務進行通訊。

  3. 若使用自訂 VM 服務帳戶,請將 Cloud Profiler 代理程式角色授予自訂 VM 服務帳戶。這個角色包含必要的 Profiler 服務權限。

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

提交 Managed Service for Apache Spark 工作並設定 Profiler 選項

  1. 提交 Spark 或 Hadoop 工作,並使用下列一或多個 Profiler 選項:
    選項 說明 必要/選用 預設 附註
    cloud.profiler.enable 啟用工作剖析功能 truefalse 必要 false
    cloud.profiler.name 在 Profiler 服務建立剖析檔所用的名稱 profile-name 選用 Managed Service for Apache Spark 工作 UUID
    cloud.profiler.service.version 使用者提供的字串,用於識別及區分 Profiler 剖析結果。 Profiler Service Version 選用 Managed Service for Apache Spark 工作 UUID
    mapreduce.task.profile.maps 需進行剖析的 Map 任務數值範圍(例如:若最多 100 個,則指定「0-100」) number range 選用 0-10000 僅適用於 Hadoop MapReduce 工作
    mapreduce.task.profile.reduces 需進行剖析的 reducer 任務數值範圍 (例如:若最多 100 個,則指定「0-100」) number range 選用 0-10000 僅適用於 Hadoop MapReduce 工作

PySpark 範例

Google Cloud CLI

提交 PySpark 工作並啟用效能分析的範例:

gcloud dataproc jobs submit pyspark python-job-file \
    --cluster=cluster-name \
    --region=region \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  job args

系統會建立兩個剖析檔:

  1. profiler_name-driver 用於剖析 Spark 驅動程式任務
  2. profiler_name-executor 用於剖析 Spark 執行器任務

例如,profiler_name 若是「spark_word_count_job」,系統會建立 spark_word_count_job-driverspark_word_count_job-executor 剖析檔。

Hadoop 範例

gcloud CLI

提交 Hadoop (teragen MapReduce) 工作並啟用剖析功能的範例:

gcloud dataproc jobs submit hadoop \
    --cluster=cluster-name \
    --region=region \
    --jar=jar-file \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  teragen 100000 gs://bucket-name

查看剖析檔

在 Google Cloud 控制台的「Profiler」中查看剖析檔。

後續步驟