

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Spark UI 調查效能問題
<a name="investigate"></a>

在您套用任何最佳實務來調整 AWS Glue 任務的效能之前，強烈建議您分析效能並找出瓶頸。這將協助您專注於正確的事物。

為了快速分析，[Amazon CloudWatch 指標](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)提供任務指標的基本檢視。[Spark UI ](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui.html)提供更深入的效能調校檢視。若要搭配 使用 Spark UI AWS Glue，您必須[為 AWS Glue 任務啟用 Spark UI](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-jobs.html)。熟悉 Spark UI 之後，請遵循[調校 Spark 任務效能的策略](performance-tuning-strategies.md)，根據您的問題清單識別並減少瓶頸的影響。

## 使用 Spark UI 識別瓶頸
<a name="identify"></a>

當您開啟 Spark UI 時，Spark 應用程式會列在資料表中。根據預設， AWS Glue 任務的應用程式**名稱**為 `nativespark-<Job Name>-<Job Run ID>`。根據任務執行 ID 選擇目標 Spark 應用程式，以開啟**任務**索引標籤。不完整的任務執行，例如串流任務執行，會列在**顯示不完整的應用程式**中。

**任務**索引標籤會顯示 Spark 應用程式中所有任務的摘要。若要判斷任何階段或任務失敗，請檢查任務總數。若要尋找瓶頸，請選擇**持續時間**來排序。選擇**描述**欄中顯示的連結，深入了解長時間執行任務的詳細資訊。



![Spark 任務索引標籤顯示持續時間、階段成功/總計，以及任務成功/總計。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/spark-jobs-duration.png)


**任務的詳細資訊**頁面會列出階段。在此頁面上，您可以看到整體洞見，例如持續時間、成功任務數和總任務數、輸入和輸出數，以及隨機讀取和隨機寫入量。



![""](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/job-details.png)


**執行器**索引標籤會詳細說明 Spark 叢集容量。您可以檢查核心的總數。下列螢幕擷取畫面中顯示的叢集總共包含 316 個作用中核心和 512 個核心。根據預設，每個核心可以同時處理一個 Spark 任務。



![執行器頁面摘要，顯示執行器的數目核心。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/executors-tab.png)


根據**工作詳細資訊**頁面上`5/5`顯示的值，階段 5 是最長的階段，但只使用 512 個核心中的 5 個核心。由於此階段的平行處理非常低，但需要大量時間，因此您可以將其識別為瓶頸。為了改善效能，您想要了解原因。若要進一步了解如何辨識並減少常見效能瓶頸的影響，請參閱[調校 Spark 任務效能的策略](performance-tuning-strategies.md)。