

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

# 了解 EMR Serverless 中的应用程序行为
<a name="app-behavior"></a>

本节介绍了 EMR Serverless 的作业提交行为、扩展容量配置以及工作线程配置设置。

## 默认应用程序行为
<a name="auto-start-stop"></a>

**自动启动**：默认情况下，应用程序配置为在提交作业时自动启动。您可以关闭此功能。

**自动停止**：默认情况下，应用程序配置为在空闲 15 分钟后自动停止。当应用程序变为 `STOPPED` 状态时，会释放已配置的预初始化容量。您可以修改应用程序自动停止前的空闲时间，也可以关闭此功能。

## 最大容量
<a name="max-capacity"></a>

您可以配置应用程序可扩展的最大容量。指定 CPU、内存（GB）和磁盘（GB）的最大容量。

**注意**  
最佳做法是将最大容量配置为与支持的工作线程大小成正比，方法是将工作线程数量乘以其大小。例如，如果要将应用程序限制为 50 个工作线程，2 v CPUs、16 GB 内存和 20 GB 磁盘容量，请将最大容量设置为 100 v CPUs、800 GB 内存和 1000 GB 磁盘容量。

## 支持的工作线程配置
<a name="worker-configs"></a>

下表显示了可为 EMR Serverless 指定的受支持工作线程配置和大小。根据工作负载的需要，为驱动程序和执行程序配置不同的大小。


**工作线程配置和大小**  

| CPU | 内存 | 默认临时存储 | 
| --- | --- | --- | 
|  1 个 vCPU  |  最小 2GB，最大 8GB，以 1GB 为增量  |  20GB - 200GB  | 
|  2 个 vCPU  |  最小 4GB，最大 16GB，以 1GB 为增量  |  20GB - 200GB  | 
|  4 个 vCPU  |  最小 8GB，最大 30GB，以 1GB 为增量  |  20GB - 200GB  | 
|  8 个 vCPU  |  最小 16GB，最大 60GB，以 4GB 为增量  |  20GB - 200GB  | 
|  16 个 vCPU  |  最小 32GB，最大 120GB，以 8GB 为增量  |  20GB - 200GB  | 

**CPU** — 每个工作器可以有 1、2、4、8 或 16 v CPUs。

**内存**：每个工作线程的内存（GB）都在上表所列限制范围内。Spark 作业有内存开销，这意味着其使用的内存超过了指定的容器大小。此开销由属性 `spark.driver.memoryOverhead` 和 `spark.executor.memoryOverhead` 指定。开销的默认值为容器内存的 10%，最小为 384MB。在选择工作线程大小时，应考虑此开销。

例如，如果您为工作实例选择 4 vCPUs ，预先初始化的存储容量为 30 GB，则将值设置为大约 27 GB 作为 Spark 作业的执行器内存。这样可以最大限度地提高预初始化容量的利用率。可用内存为 27 GB，再加上 27 GB的 10%（2.7 GB），共计 29.7 GB。

**磁盘**：您可以为每个工作线程配置临时存储磁盘容量，最小 20GB，最大 200GB。您只需为每个工作线程配置的超出 20GB 的额外存储空间付费。