

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 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 用户界面与配合使用 AWS Glue，必须[为 AWS Glue 作业启用 Spark 用户界面](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 Jobs 选项卡显示持续时间 succeeded/total、阶段和任务 succeeded/total。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/spark-jobs-duration.png)


**作业详细信息**页面列出各个阶段。在此页面上，您可以看到整体洞察，例如持续时间、成功任务数量和任务总数、输入和输出数量以及随机读取量和随机写入量。



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


**执行程序**选项卡详细显示 Spark 集群容量。您可以查看核心总数。以下屏幕截图中显示的集群包含 316 个活动核心和总共 512 个核心。默认情况下，每个核心可以同时处理一个 Spark 任务。



![“执行程序”页面摘要，显示执行程序的核心数。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/executors-tab.png)


根据**作业详细信息**页面上显示的值 `5/5`，第五阶段是最长的阶段，但它仅使用了 512 个核心中的 5 个核心。由于此阶段的并行度非常低，但却花费了大量时间，因此您可以将其识别为瓶颈。为提升性能，您需要了解原因。要详细了解如何识别和减少常见性能瓶颈的影响，请参阅[调优 Spark 作业性能的策略](performance-tuning-strategies.md)。