配额类型
Earth Engine 平台设置了多项配额限制,以确保资源在用户之间公平分配。由于 Earth Engine 中有许多不同类型的资源(计算、存储等),因此配额限制也有许多不同的类型。
不同配额类型之间的主要区别在于它们是否可调整。对于某些类型的配额,我们可以按用户或按项目更改限额,而其他类型的配额是无法更改的系统级限额。
可调整的配额限制
以下限制可能会根据具体项目进行调整。如需了解如何申请更多配额,请参阅帮助页面。
配额类型 | 默认值(每个项目) |
---|---|
并发请求数上限(标准端点) | 40 个并发请求 |
并发请求数上限(高容量端点) | 40 个并发请求 |
请求速率上限(每个项目) | 100 个请求/秒(6,000 个请求/分钟) |
请求速率上限(每个账号) | 100 个请求/秒(6,000 个请求/分钟) |
平均并发批处理任务数 | 2 项任务(平均) |
素材资源存储空间上限 | 250 GB |
素材资源数量上限 | 10000 |
每天的 Earth Engine 计算时间(以 EECU-time 为单位,以秒为单位) | 无限制 |
并发交互式请求
每个项目都可以并行发出交互式请求,但不得超过配额限制。如果超出限制,Earth Engine 将返回 “HTTP 429:请求过多”错误。一般来说,这些错误由 Earth Engine 客户端库处理,该库会将请求封装在指数退避中,并重试查询,直到成功为止。Earth Engine 客户端库将重试该请求最多五次。
为避免收到这些 429 错误,您可能需要为应用启用缓存(例如使用 memcache),以尽可能避免冗余查询。如果使用的是不自动重试查询的旧版 Earth Engine 客户端库,或者在重试五次后查询仍未完成,您可能需要在请求周围实现指数退避。
请求速率 (QPS)
除了并发限制之外,Earth Engine 还会在项目级和用户级限制交互式请求的速率。您可以在 Cloud 控制台中调整这些设置
并发批量任务数
批量任务的并行性受到限制,因为它们使用的资源比交互式请求更多。
在非商业用途中使用 Earth Engine 时,您可以同时运行的批量任务数上限设置为默认值,除非您已获得配额提升。
在商业用途中使用 Earth Engine 时,您能够同时运行的批处理任务数量上限取决于价格方案,不过您也可以通过设置每个项目的批处理任务并发限制来进一步降低此上限。默认情况下,项目的批处理任务并发数上限设置为项目结算账号中配置的付款方案允许的最大值。如需查看或更新项目的此限制,请参阅命令行工具的文档。
素材资源存储空间配额
每个 Earth Engine 资源都有相应的数据存储空间大小(以字节为单位)。资产可以归 Cloud 项目或个人(旧版资产)所有,每项资产都会计入其所有者的 Earth Engine 总体存储空间和资产数量限制。
每天的 EECU 时间
如果您想控制费用,可以限制项目每天在 Earth Engine 上可消耗的 EECU 时间量。默认情况下,此配额不受限制。配额管理员可以在 Cloud 控制台中设置此限制,只需过滤 earthengine.googleapis.com/daily_eecu_usage_time
配额指标即可。设置此配额后,系统会累积某个项目中所有用户的成功 Earth Engine 请求所消耗的 EECU 时间。超过配额后,请求将失败,直到第二天配额重置或限额增加。如需详细了解如何设置此配额,请参阅费用控制指南。
用户席位
在商业用途中使用 Earth Engine 时,每个订阅层级都包含一定数量的用户席位,不过您也可以购买额外的席位。
服务管理员应购买足够的席位,以满足特定结算周期内 Code Editor 用户的数量。
常见问题解答
问:哪些用户会占用席位?
答:只有使用代码编辑器执行 Earth Engine 计算(查看地图块、发送计算查询等)的不同人类用户才会计入席位限制。
问:如果用户数量在不同月份之间发生变化,该怎么办?
答:席位不会分配给特定个人,它们不是指定席位。
只要您在给定月份内不超过相应数量,具体是哪些用户并不重要。
问:服务账号呢?
答:服务账号不计入席位数。它们不属于执行计算的人类用户。
问:通过 Python 访问 Earth Engine 的用户会受到影响吗?
答:仅通过 Python API 访问 Earth Engine 且不使用代码编辑器的用户不会计入席位使用情况。席位数量与代码编辑器的使用情况相关联。
问:座位数是在哪里统计的?
答:席位数量是在结算账号一级应用的。贵组织中使用代码编辑器的所有人类用户都会计入结算账号的总席位数中。
问:如果我们超出许可席位上限,会发生什么情况?
答:我们会监控持续违规行为,并在结算账号级层强制执行限制。
问:如何购买更多或更少的席位?
答:如需了解详情,请参阅 Earth Engine 价格页面。
固定配额限制
这些类型的配额限制是在平台级别设置的,因此无法按用户或按项目进行调整。它们不太可能随着时间的推移而发生显著变化。
计算时间
不同类型的请求具有不同的最长时长,详情请参阅处理环境文档。
如需有关修正超时错误的帮助,请参阅调试指南。
每个请求的内存占用量
如果请求失败并显示“User memory limit exceeded”(用户内存限制超出),则表示 Earth Engine 无法在允许的内存占用空间内计算出答案。EE 计算平台的可用 RAM 数量有限,为确保系统保持稳定,每个请求只能使用一定数量的 RAM。可用的最大内存量取决于请求类型(例如,批处理任务比地图图块需要更多内存),但这些都是系统级限制。
如需有关修复内存错误的帮助,请参阅调试指南。
数据汇总
在处理 Earth Engine 请求时,我们会分离出某些已知计算量大的子计算。这些子计算称为“聚合”,在 EE 系统中会进行特殊处理。系统会缓存聚合结果,以避免重新计算。
并发聚合
为避免不受控制的计算扇出,我们会限制单个用户可同时运行的汇总数量,并且此限制无法更改。如果请求失败并显示“并发聚合过多”,则表示请求者同时运行的聚合过多。
如需有关修正并发聚合错误的帮助,请参阅调试指南。
大型聚合结果
如果请求失败并显示“计算值过大”,则表示聚合返回的结果过大,无法放入我们的缓存中。计算结果的大小上限为 100 MiB,这是系统范围内的限制。
表格导入限制
有关表格上传限制,请参阅表格数据导入指南。
请求载荷大小
发送到 Earth Engine 的单个查询的大小上限为 10MB。通常只有在查询中直接包含一些大型附加数据(例如已内嵌到查询中的 shapefile 或 GeoJSON 结构)时,才会超出此限制。这些对象应改为上传并转换为 FeatureCollection 资源,然后通过资源 ID 进行引用。
任务队列长度
等待调度的任务(处于 READY
状态)构成“任务队列”。每个项目的队列最多支持 3,000 个任务。这意味着,READY
状态的任务数量不能超过 3,000 个。
BigQuery 光栅函数配额限制
以下配额适用于从 BigQuery 对 Earth Engine 的调用,例如在使用 ST_REGIONSTATS
SQL 函数时。
配额类型 | 默认值(每个项目) |
---|---|
每天的 BigQuery 槽时间 | 1,260,000 个广告时段秒数(350 个广告时段小时数) |
每天的 BigQuery 槽时间
“每天的 BigQuery slot-time”配额是一种自定义配额,可用于限制 BigQuery 光栅函数在指定项目中于指定日期在 Earth Engine 上可消耗的 slot-time 量。每日配额会累积所有查询的总时间,即使是失败的查询也不例外。您可以在 Cloud 控制台中的 earthengine.googleapis.com/bigquery_slot_usage_time
指标下查看配额,配额管理员可以向上或向下调整该值。如需将该值增加到高于默认值,请创建配额增加请求,该请求将自动获得批准。更改应会在 10 分钟内生效。
如果超出此配额,BigQuery 将返回以下错误消息:
From Earth Engine: Custom quota exceeded: Your usage exceeded the custom quota for
'earthengine.googleapis.com/bigquery_slot_usage_time', which is adjustable by your administrator in the Google Cloud console: https://console.cloud.google.com/quotas/?project=_.
一旦超出配额,ST_REGIONSTATS
调用将失败,直到第二天配额重置或管理员提高限额。