

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

# 审核 Managed Service for Apache Flink 应用程序资源
<a name="how-resources"></a>

本节介绍您的应用程序使用的系统资源。了解 Managed Service for Apache Flink 如何配置和使用资源将有助于您设计、创建和维护 Managed Service for Apache Flink 应用程序的高性能和稳定。

## Managed Service for Apache Flink 应用程序资源
<a name="how-resources-kda"></a>

适用于 Apache Flink 的托管 AWS 服务是一项为托管 Apache Flink 应用程序创建环境的服务。适用于 Apache Flink 的托管服务使用名为 Kinesi **s 处理**单元 () 的单元提供资源。KPUs

一个 KPU 代表以下系统资源：
+ 一个 CPU 核心
+ 4 GB 内存，其中 1 GB 为本机内存，3 GB 为堆内存
+ 50 GB 磁盘空间

KPUs 在称为**任务和**子任务****的不同执行单元中运行应用程序。您可以把子任务看作等同于一个线程。

应用程序的 KPUs 可用数量等于应用程序的`Parallelism`设置除以应用程序的`ParallelismPerKPU`设置。

有关应用程序并行度的更多信息，请参阅[实施应用程序扩展](how-scaling.md)。

## Apache Flink 应用程序资源
<a name="how-resources-flink"></a>

Apache Flink 环境使用称为**任务槽**的单元为您的应用程序分配资源。当 Managed Service for Apache Flink 为您的应用程序分配资源时，它会将一个或多个 Apache Flink 任务槽分配给单个 KPU。分配给单个 KPU 的插槽数等于应用程序的`ParallelismPerKPU`设置。有关任务计划的更多信息，请参阅 Apache Flink 文档中的[作业计划](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/internals/job_scheduling/)。

### 运算符并行度
<a name="how-resources-flink-operatorparallelism"></a>

您可以设置运算符可以使用的子任务的最大数量。此值称为**运算符并行度**。默认情况下，应用程序中每个运算符的并行度等于应用程序的并行度。这意味着，默认情况下，应用程序中的每个运算符都可以在需要时使用应用程序中所有可用的子任务。

您可以使用`setParallelism`方法设置应用程序中运算符的并行度。使用此方法，您可以控制每个运算符一次可以使用的子任务数量。

有关运算符的更多信息，请参阅 Apache Flink 文档中的[运算符](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/operators/overview/)。

### 运算符链接
<a name="how-resources-flink-operatorchaining"></a>

通常，每个运算符使用单独的子任务来执行，但是如果几个运算符总是按顺序执行，则运行时可以将它们全部分配给同一个任务。此过程称为**运算符链接**。

如果多个顺序运算符都对相同的数据进行操作，则可以将它们链接到一个任务中。以下是一些实现这一目标所需的标准：
+ 运算符进行一对一的简单转发。
+ 所有运算符都具有相同的运算符并行度。

当您的应用程序将运算符链接到单个子任务时，它可以节省系统资源，因为该服务不需要执行网络操作和为每个运算符分配子任务。要确定您的应用程序是否使用运算符链接，请查看 Managed Service for Apache Flink 控制台中的任务图。应用程序中的每个顶点代表一个或多个运算符。该图显示了已链接为单个顶点的运算符。