限额和配额 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 M | 48 G (受内存限制) |
请联系 IBM 支持 |
| 最大刻度 | 10 | 250 | 请联系 IBM 支持 |
| 内存 | 4 G | 48 G | 请联系 IBM 支持 |
| 最小比例 | 0 | 250 | 请联系 IBM 支持 |
| 并发性 | 100 | 1000 | 请联系 IBM 支持 |
| 超时 | 300 秒 | 600 秒 | 请联系 IBM 支持 |
有关支持的 CPU 和内存组合的更多信息,请参阅 支持的内存和 CPU 组合。
Code Engine 对项目中的应用程序有限制。
- 每个项目仅限使用 40 个应用程序。
- 每个项目所有应用程序的修订次数不得超过 120 次。
Code Engine 不支持应用程序资源的超额承诺。 因此,如果使用 API 或 kubectl apply -f <yaml> 创建应用程序,必须指定 Resource.Requests 和 Resource.Limits 的值,CPU、Memory 和 Ephemeral Storage 的值必须相同。
工作默认值和限制
下表列出了工作限制。
| 类别 | 缺省值 | 最大值 | 需要延长上限? |
|---|---|---|---|
| 数组下标 | 0 | 9999999 | 请联系 IBM 支持 |
| 数组大小 | 1 | 1000 | 不适用 |
| CPU | 1.0 | 12.0 | 请联系 IBM 支持 |
| 短暂存储量 | 400 M | 48 G (受内存限制) |
请联系 IBM 支持 |
| 内存 | 4 G | 48 G | 请联系 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 会检查作业或作业运行的大小。 如果操作超出限制,则会出现“超出大小限制”错误。 如果收到此错误,请尝试用以下方法之一减小作业或作业运行的大小。
-
如果使用命令和参数,请尝试减少这些选项的使用,缩短它们的长度,或将它们移到作业或作业运行所使用的容器映像中。
-
如果使用环境变量,请尽量减少环境变量的数量或缩短环境变量的长度。 您可以使用秘密或 configmaps 来定义环境变量,并通过
--env-from-secret或--env-from-configmap选项与job create,job update,jobrun submit和jobrun resubmit命令使用 或 选项,将环境变量导入任务。
有关作业故障排除的更多信息,请参阅 故障排除 - 为何无法提交作业运行?
功能限制
下表列出了功能的限制。
| 类别 | 最大值 |
|---|---|
| 运行时间长度 | 120 秒 |
| 内存 | 48000 MB |
| 请求正文和响应正文的大小 | 5 MB |
| 代码大小(内联) | 100 KB,包括 base64 开销 |
| 代码大小(本地源) | 200 MB 压缩文件 |
| 代码大小(应用程序接口) | 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 次。 |
| 配置映射 | 每个项目仅限 100 个配置映射。 |
| CPU | 所有应用程序实例、运行中的作业实例和运行中的构建实例的总组合不能超过 128 vCPU。 |
| 域映射(自定义) | 每个项目仅限 80 个自定义域映射。 |
| 短暂存储量 | 所有应用程序实例、运行中的作业实例和运行中的构建实例的总组合不能超过 512 G 的临时存储空间。 |
| 车队 | 每个项目仅限 1000 个车队。 |
| 函数 | 每个项目仅限 20 项功能。 |
| 实例(活动) | 应用程序实例、功能实例、运行中的作业实例和运行中的构建实例的数量不能超过 250 个。 |
| 实例(总数) | 活动实例数以及已完成的作业和构建实例数不能超过 2500。 |
| 作业 | 每个项目仅限 100 项工作。 |
| 作业运行 | 在需要删除或清理旧作业之前,每个项目只能运行 100 次。 |
| 内存 | 所有应用程序实例、运行中的作业实例和运行中的构建实例的内存总和不能超过 512 G。 |
| 私钥 | 每个项目仅限 100 个秘密。 |
| 订阅 ( IBM Cloud Object Storage ) | 每个项目仅限 100 ( Object Storage ) 个订阅。 |
| 子网池 | 每个项目仅限 1000 个子网池。 |
| 订阅 ( Kafka / IBM® Event Streams for IBM Cloud® ) | 每个项目仅限 100 个 Kafka 订阅。 |
| 订阅(定期计时器 (cron) | 每个项目只能订阅 100 个定期定时器(cron)。 |
例如,您只能使用 128 个 vCPU 或 250 个应用程序或作业的活动实例。 由于每个限制的应用都与其他限制无关,假设您想将应用程序扩展到 250 个实例,0.125 VCPU。 这些数值的结果约为 32 vCPU,,由于这一结果小于 128 vCPU 的最大值,因此是可行的。 但是,您不能使用 0.125 vCPU, 的 512 个实例,这样虽然仍能满足最多 128 个 vCPU, 的要求,但会违反最多 250 个实例的限制。
提高限额
限值是固定的,但可以通过 联系 IBM 支持中心并创建支持案例 来增加限值。