计费与成本管理
计费模型
CVM 支持多种计费模式,适应不同业务场景:
按需计费(Pay-as-you-go)
计费粒度:小时
计费公式:
VM 费用 = vCPU 单价 × vCPU 数 × 小时数
+ 内存单价 × 内存(GB) × 小时数
+ 系统盘单价 × 容量(GB) × 小时数
示例(c1.large:4C8G,系统盘 40GB):
vCPU:0.05 元/核/小时 × 4 = 0.20 元/小时
内存:0.02 元/GB/小时 × 8 = 0.16 元/小时
系统盘:0.001 元/GB/小时 × 40 = 0.04 元/小时
合计:0.40 元/小时 = 9.6 元/天 = 288 元/月包年包月(Subscription)
折扣体系:
包月:9折(节省 10%)
包季:85折(节省 15%)
包半年:8折(节省 20%)
包年:7折(节省 30%)
适用场景:
- 稳定运行的生产环境
- 预算固定的项目资源包(Resource Package)
预购资源包,按实际使用量抵扣:
计算资源包:1000 vCPU·小时,有效期 1 年
存储资源包:100TB·月,有效期 1 年
优势:
- 比按需计费便宜 20-40%
- 灵活分配给不同项目成本分摊
标签策略
通过标签实现精细化成本分摊:
推荐标签体系:
dept:部门(finance / hr / it / ops)
project:项目名称
env:环境(prod / staging / dev / test)
owner:负责人
cost-center:成本中心编号bash
# 批量给资源打标签
openstack server set --tag dept=finance --tag project=erp-upgrade <vm-id>成本报告
月度成本报告维度:
按部门汇总:
财务部门:12,500 元
研发部门:28,000 元
运营部门:8,500 元
按环境汇总:
生产环境:35,000 元(71%)
测试环境:10,000 元(20%)
开发环境:4,000 元(9%)
按资源类型:
计算(VM):30,000 元(61%)
存储:12,000 元(24%)
网络:5,000 元(10%)
其他:2,000 元(5%)成本优化实践
识别浪费
python
# 查找 CPU 利用率低于 10% 的 VM(过去 7 天)
import requests
from datetime import datetime, timedelta
end_time = datetime.now()
start_time = end_time - timedelta(days=7)
response = requests.get(
"https://cvm.example.com/api/v1/metrics/vms",
params={
"metric": "cpu_utilization",
"aggregation": "avg",
"start": start_time.isoformat(),
"end": end_time.isoformat(),
"threshold_lt": 10 # 低于 10%
},
headers={"Authorization": f"Bearer {token}"}
)
idle_vms = response.json()["items"]
print(f"发现 {len(idle_vms)} 台疑似闲置 VM")
for vm in idle_vms:
print(f" {vm['name']}: 平均 CPU {vm['avg_cpu']:.1f}%, 月费用 {vm['monthly_cost']:.0f} 元")规格右调(Right-sizing)
分析建议:
VM: web-server-01
当前规格:8C32G(月费用:1,200 元)
实际使用:CPU 平均 8%,内存平均 25%
建议规格:2C8G(月费用:300 元)
预计节省:900 元/月(75%)预留实例规划
分析历史数据(过去 6 个月):
稳定运行 VM:45 台
偶发使用 VM:12 台
优化方案:
45 台 → 转为包年(节省 30%)
12 台 → 保持按需计费
预计年节省:
45 台 × 500 元/月 × 12 月 × 30% = 81,000 元/年预算管理
设置部门预算告警:
财务部门月度预算:15,000 元
告警规则:
- 使用达到 70%(10,500 元)→ 邮件通知部门负责人
- 使用达到 90%(13,500 元)→ 邮件 + 短信通知
- 超出预算 → 新建资源申请需额外审批