Code Engine 的限制和配额
以下各节提供了有关 IBM Cloud® Code Engine 限制和配额设置的技术细节。
我的资源分配如何影响我的项目配额和计费?
在控制台中,您可以从项目概述页面查看有关当前 Code Engine 资源分配的信息。 如果要根据为每个特定应用程序或作业配置的内容显示有关已分配内存和 vCPU 值的信息,请查看项目中应用程序或作业的列表。 通过 CLI,您还可以使用 project get
命令获取有关项目的当前资源分配使用情况的信息。
通过 Code Engine,您只需根据工作负载消耗的配置内存和 vCPU,以及任何传入的 HTTP 调用,为所使用的资源付费。 如果应用程序扩展为零,或者您的作业或构建未在运行,那么您不会使用资源,因此不会向您收取费用。 为了托管您的所有应用程序和工作,Code Engine 为您部署和管理必要的基础设施。 但是,虽然您没有为此基础结构计费,但它确实计入了项目配额。 有关配额的更多信息,请参阅下表。
现在,临时存储器的使用受内存限制。 Code Engine 中的临时存储器不能超过缺省值 0.4 GB (400 MB) 或内存的配置值。 如果需要超过临时存储器的缺省值,那么必须根据 vCPU 和内存的有效组合来增加内存。
请参阅 支持的内存和 CPU 组合,以获取有关临时存储器与内存之间关系的更多信息。
应用程序缺省值和限制
下表列出了应用限制。
类别 | 缺省值 | 最大值 | 需要扩展最大值吗? |
---|---|---|---|
CPU | 1.0 | 12.0 | 请联系 IBM 支持 |
短暂存储量 | 400 万 | 48 G (受内存限制) |
请联系 IBM 支持 |
最大刻度 | 10 | 250 | 请联系 IBM 支持 |
内存 | 4 G | 48 政 | 请联系 IBM 支持 |
最小刻度 | 0 | 250 | 请联系 IBM 支持 |
并发性 | 100 | 1000 | 请联系 IBM 支持 |
超时 | 300 秒 | 600 秒 | 请联系 IBM 支持 |
有关受支持的 CPU 和内存组合的更多信息,请参阅 受支持的内存和 CPU 组合。
Code Engine 对项目中的应用程序有限制。
- 每个项目限制为 40 个应用程序。
- 每个项目的所有应用程序的修订总数限制为 120 个。
Code Engine 不支持过度落实应用程序资源。 因此,如果使用 API 或 kubectl apply -f <yaml>
创建应用程序,那么必须指定 CPU
,Memory
和 Ephemeral Storage
的 Resource.Requests
和 Resource.Limits
的值,并且这些值必须相同。
作业缺省值和限制
下表列出了工作限制。
类别 | 缺省值 | 最大值 | 需要扩展最大值吗? |
---|---|---|---|
数组下标 | 0 | 9999999 | 请联系 IBM 支持 |
数组大小 | 1 | 1000 | 不适用 |
CPU | 1.0 | 12.0 | 请联系 IBM 支持 |
短暂存储量 | 400 万 | 48 G (受内存限制) |
请联系 IBM 支持 |
内存 | 4 G | 48 政 | 请联系 IBM 支持 |
重试次数 | 3 | 5 | 请联系 IBM 支持 |
超时 | 7200 秒 (2 小时) | 86400 秒 (24 小时) | 请联系 IBM 支持 |
数组索引 是以逗号分隔的列表或以连字符分隔的索引范围,用于指定要运行的作业实例; 例如,1,3,6,9
或 1-5,7-8,10
。
数组大小 是要并行运行的作业实例数。
有关受支持的 CPU 和内存组合的更多信息,请参阅 受支持的内存和 CPU 组合。
Code Engine 限制为每个项目 100 个作业。 启动 100 个作业运行后,请确保先清除较旧的作业运行,然后再启动新作业运行。
作业大小限制
Code Engine 限制作业和作业运行的大小,最大为 10 KiB。 创建或更新作业以及使用控制台,CLI 或 API 运行作业时,Code Engine 会检查作业或作业运行的大小。 如果操作超过限制,那么将给出超过大小限制的错误。 如果接收到此错误,请尝试通过下列其中一种方法来减小作业或作业运行的大小。
-
如果使用命令和参数,请尝试减少这些选项的使用,使它们更短,或者将它们移动到作业或作业运行所使用的容器映像中。
-
如果使用环境变量,请尝试使用较少的环境变量或使其更短。 通过将
--env-from-secret
或--env-from-configmap
选项与job create
,job update
,jobrun submit
和jobrun resubmit
命令配合使用,可以使用私钥或 ConfigMap 来定义环境变量并将其导入到作业中。
有关对作业进行故障诊断的更多信息,请参阅 故障诊断-为什么无法提交作业运行?。
函数限制
下表列出了功能的限制。
类别 | 最大值 |
---|---|
运行时的长度 | 120 秒 |
内存 | 48000 MB |
请求正文和响应正文的大小 | 5 MB |
代码大小 (内联) | 100 KB,包括 base64 开销 |
代码大小 (本地源) | 200 MB 压缩 |
代码大小 (API) | 100 KB,包括 base64 开销 |
定期计时器 (cron) 预订限制
下表列出了定期计时器预订的限制。
类别 | 最大值 | 需要扩展最大值吗? |
---|---|---|
数据大小 | 4096 字节 | 请联系 IBM 支持 |
Code Engine 将定期计时器 (cron) 事件的数据大小限制为最大 4096 字节。 创建或更新定期计时器 (cron) 事件时,Code Engine 会检查 cron 事件数据的大小。 如果定期计时器 (cron) 事件数据超过限制,那么将给出超过大小限制的错误。 如果接收到此错误,请尝试将 cron 事件数据大小减小到小于 4096 字节。
有关对预订进行故障诊断的更多信息,请参阅 调试预订。
项目限制
下表列出了项目的限额。
类别 | 最大值 | 需要扩展最大值吗? |
---|---|---|
每个区域的项目 | 20 | 请联系 IBM 支持 |
最大项目数包括处于活动状态的项目和未永久删除的任何项目。 删除项目时,将软删除该项目,并且可以在永久删除该项目之前的 7 天内复原该项目。 使用控制台或 CLI 来显示软删除的项目。 有关更多信息,请参阅 删除项目。
项目配额
下表列出了项目配额。
请注意,这些限制在项目中相互独立适用。 如果达到限制 (例如,512 GB 内存的限制),那么此配额限制可能会影响运行工作负载的能力,即使尚未达到另一个限制 (例如,应用程序或作业的 250 个实例)。
类别 | 描述 |
---|---|
应用程序 | 每个项目限制为 40 个应用程序。 |
应用程序修订版 | 每个项目的所有应用程序的修订总数限制为 120 个。 |
构建 | 每个项目限制为 100 个构建配置。 |
构建运行 | 在需要除去或清除旧的构建运行之前,每个项目只能运行 100 个构建运行。 |
configmaps | 每个项目限制为 100 个配置映射。 |
CPU | 所有应用程序实例,正在运行的作业实例和正在运行的构建实例的总组合不能超过 128 个 vCPU。 |
域映射 (定制) | 每个项目限制为 80 个定制域映射。 |
短暂存储量 | 所有应用程序实例,正在运行的作业实例和正在运行的构建实例的总组合不能超过 512 G 的临时存储器。 |
函数 | 每个项目限制为 20 个函数。 |
实例 (活动) | 应用程序实例数,函数实例数,正在运行的作业实例数和正在运行的构建实例数不能超过 250。 |
实例数 (总计) | 活动实例数以及已完成的作业和构建实例数不能超过 2500。 |
作业 | 每个项目限制为 100 个作业。 |
作业运行 | 在需要除去或清除旧作业之前,每个项目只能运行 100 个作业。 |
内存 | 所有应用程序实例,正在运行的作业实例和正在运行的构建实例的总组合不能超过 512 G 内存。 |
密钥 | 每个项目限制为 100 个私钥。 |
预订 (IBM Cloud Object Storage) | 每个项目限制为 100 个 (Object Storage) 预订。 |
预订 (Kafka / IBM® Event Streams for IBM Cloud®) | 每个项目限制为 100 个 Kafka 预订。 |
预订 (定期计时器 (cron)) | 每个项目只能有 100 个定期计时器 (cron) 预订。 |
例如,您限制为 128 个 vCPU 或 250 个应用程序或作业的活动实例。 由于每个限制都适用,而不依赖于其他限制,因此假设您要使用 0.125 VCPU 将应用程序扩展到 250 个实例。 这些值的结果约为 32 个vCPU,由于小于 128vCPU 的最大值,因此是可行的。 但是,您不能使用 512 个具有0.125 vCPU,的实例,这样仍然会达到 128vCPU,上限,但会违反最多 250 个实例的限制。
增加限制
限制值是固定的,但可以通过 联系 IBM 支持人员并创建支持案例 来增加限制值。