哪些 Compute Engine 配额需要更新为 运行 Dataflow with 50 workers (IN_USE_ADDRESSES, CPUS, CPUS_ALL_REGIONS ..)?

Which Compute Engine quotas need to be updated to run Dataflow with 50 workers (IN_USE_ADDRESSES, CPUS, CPUS_ALL_REGIONS ..)?

我们正在使用私人 GCP 帐户,我们想处理 30 GB 的数据并使用 SpaCy 进行 NLP 处理。我们想使用更多的工人,我们决定从 80 个工人的最大数量开始,如下所示。我们提交了我们的工作,但我们遇到了一些 GCP 标准用户配额的问题:

QUOTA_EXCEEDED: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 8.0 in region XXX

所以我决定在某些地区为 IN_USE_ADDRESSES 申请一些新的 50 配额(我花了几次迭代才找到可以接受此请求的地区)。我们提交了一个新的工作并且遇到了新的配额问题:

QUOTA_EXCEEDED: Quota 'CPUS' exceeded.  Limit: 24.0 in region XXX

QUOTA_EXCEEDED: Quota 'CPUS_ALL_REGIONS' exceeded.  Limit: 32.0 globally

我的问题是,如果我想在一个区域使用 50 个工人,我需要更改哪些配额?文档 https://cloud.google.com/dataflow/quotas 似乎不是最新的,因为他们只说“要使用 10 个计算引擎实例,您需要 10 个正在使用的 IP 地址。”。正如您在上面看到的那样,这还不够,还需要更改其他配额。是否有一些文档、博客或其他 post 对此进行了记录和解释?仅针对一个区域,就有 49 个 Compute Engine 配额可以更改!

我建议您开始使用私有 IP 而不是 Public IP 地址。这将以两种方式帮助您:-

  1. 您可以绕过一些与 IP 地址相关的配额,因为它们与 Public 个 IP 地址相关。
  2. 通过消除网络出口成本显着降低成本,因为 VM 不会通过 public 互联网相互通信。您可以在这篇出色的文章中找到更多详细信息 [1]

要开始使用私有 IP,请按照此处提到的说明进行操作 [2]

除此之外,您还需要注意以下配额

CPU

您可以通过在 Compute Engine 下适当设置 CPUs 配额来增加给定区域的配额。

永久磁盘

默认情况下,每个 VM 需要 250 GB 的存储空间,因此对于 100 个实例,它大约需要 25 TB。请检查您正在使用的 worker 的磁盘大小,并适当地在 Compute Instances 下设置 Persistent Disk 配额。

Cloud Dataflow Shuffle 批处理管道的默认磁盘大小为 25 GB。

托管实例组

您需要确保您在该区域有足够的配额,因为 Dataflow 需要以下配额:-

  1. 每个 Cloud Dataflow 作业一个实例组
  2. 每个 Cloud Dataflow 作业一个托管实例组
  3. 每个 Cloud Dataflow 作业一个实例模板

一旦你查看了这些配额,你就应该为 运行 这份工作做好准备。

1 - https://medium.com/@harshithdwivedi/how-disabling-external-ips-helped-us-cut-down-over-80-of-our-cloud-dataflow-costs-259d25aebe74

2 - https://cloud.google.com/dataflow/docs/guides/specifying-networks