vCPU 配额不足(VcpuLimitExceeded)怎么办
更新于 2026-10-15
简短回答
VcpuLimitExceeded 表示该区域正在运行的按需实例 vCPU 总数加上这次请求,超过了对应实例系列的配额。到 Service Quotas 控制台查看该区域的 Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances(配额代码 L-1216C47A)等配额,按需要的 vCPU 总数申请提高即可。
错误含义:按 vCPU 计算的按需实例配额
EC2 对每个账号、每个区域的按需实例设有配额,单位不是实例台数,而是运行中实例占用的 vCPU 总数。如果创建或启动实例会让总数超过配额,请求就会失败并返回 VcpuLimitExceeded,常见的提示类似:
You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to.- 只统计运行中的实例,处于 pending、stopping、stopped 和 hibernated 状态的实例不计入。
- 容量预留(Capacity Reservations)即使没有使用,也会占用按需配额。
- 配额按区域独立,在 us-east-1 提高配额不会影响其他区域。
配额按实例系列分组
每个配额覆盖一组实例系列,组内不论代次和大小,vCPU 合并计算。AWS 文档列出的主要配额及默认值如下:
- Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances:L-1216C47A,覆盖 t3、m7i、c7i 等常用系列,默认 5 个 vCPU。
- Running On-Demand G and VT instances:L-DB2E81BA(GPU 实例),默认 0。
- Running On-Demand P instances:L-417A185B,默认 0。
- 此外还有 DL、F、HPC、High Memory、Inf、Trn、X 等配额,各自独立,默认值均为 0。
举例来说,标准配额为 5 时,最多同时运行两台 2 vCPU 的实例;默认为 0 的系列在提额前一台按需实例也启动不了。EC2 会根据使用情况自动提高配额,但新账号通常从较低的默认值起步,实际数值以 Service Quotas 中的「已应用配额值(Applied quota value)」为准。
查看当前配额
- 打开 Service Quotas 控制台的 Amazon EC2 配额页面。
- 在顶部导航栏切换到报错的区域。
- 在筛选框中输入 On-Demand。
- 查看「Applied quota value」列,这就是各系列允许的最大 vCPU 数。
也可以用 AWS CLI 查询,--region 换成你的区域,返回结果中的 Value 就是当前配额:
aws service-quotas get-service-quota --service-code ec2 --quota-code L-1216C47A --region us-east-1申请提高配额
申请前先算好需要的总量:该区域同系列正在运行的实例 vCPU 之和,加上准备新建实例的 vCPU。
- 在 Service Quotas 控制台切换到目标区域,进入 Amazon Elastic Compute Cloud (Amazon EC2) 的配额列表。
- 选中对应配额,点击「Request increase at account level」(部分页面显示为「Request quota increase」)。
- 填写新的 vCPU 总数(必须大于当前值),点击「Request」。
- 在「Request history」或「Dashboard」中跟踪进度:初始状态为 Pending,变为 Quota requested 后会显示 Support 工单号。
aws service-quotas request-service-quota-increase --service-code ec2 --quota-code L-1216C47A --desired-value 32 --region us-east-1小幅提升通常会自动批准,较大的请求会转给 AWS Support 审核,可能被批准、部分批准或拒绝,也不享受优先支持。多个区域需要分别申请,最好提前规划。
等待审批时的临时办法
- 停止或终止不需要的实例,已停止的实例不计入按需配额。
- 换用 vCPU 更少的规格,或把部分实例放到配额充足的其他区域。
- 检查是否有闲置的容量预留占用配额。
- 可以中断的任务改用 Spot 实例(前提是 Spot 配额足够)。
在 CloudPilot 中批量查看配额
CloudPilot 的「配额查询」可以查询单个或全部区域的 Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances(L-1216C47A)配额,方便在批量部署前确认哪些区域够用。显示的是配额上限,不是剩余可用量,也不包括 Spot、GPU 等其他系列;结果缓存 10 分钟,提额后可点击「从 AWS 刷新」。
常见问题
停止的实例会占用 vCPU 配额吗?
不会。按需配额只统计运行中的实例,pending、stopping、stopped 和 hibernated 状态都不计入。
vCPU 配额是整个账号通用的吗?
不是。按需和 Spot 的 vCPU 配额都按区域设置,需要在每个区域分别查看和申请。
配额足够,为什么还是创建失败?
如果报的是 InsufficientInstanceCapacity,说明是 AWS 当前容量不足,与配额无关。可以稍后重试,或换可用区、实例类型。
申请提高配额后多久生效?
小幅提升通常自动批准,较大的请求需要 AWS Support 审核,时间不固定。批准后,「Applied quota value」会更新为新值。