8. 性能与成本
8.1 弹性伸缩
伸缩策略
智能法律解决方案采用弹性伸缩策略,根据负载自动调整资源:
自动伸缩规则
1. 基于CPU使用率
- 扩容阈值:CPU使用率 > 70%,持续5分钟
- 缩容阈值:CPU使用率 < 30%,持续10分钟
- 扩容步长:每次增加2个实例
- 缩容步长:每次减少1个实例
2. 基于内存使用率
- 扩容阈值:内存使用率 > 80%,持续5分钟
- 缩容阈值:内存使用率 < 40%,持续10分钟
3. 基于请求量
- 扩容阈值:QPS > 1000,持续3分钟
- 缩容阈值:QPS < 200,持续15分钟
4. 基于队列长度
- 扩容阈值:任务队列长度 > 100,持续2分钟
- 缩容阈值:任务队列长度 < 10,持续10分钟
Kubernetes HPA配置
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: legal-api-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: legal-api
minReplicas: 3
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
- type: Pods
pods:
metric:
name: http_requests_per_second
target:
type: AverageValue
averageValue: "1000"
资源调度
资源分配策略
1. 请求优先级
- 高优先级:VIP用户请求、紧急审查任务
- 中优先级:普通用户请求、常规任务
- 低优先级:批量任务、非紧急任务
2. 资源预留
- 预留资源:为高优先级任务预留20%资源
- 弹性资源:剩余80%资源按需分配
3. 资源隔离
- CPU隔离:使用CPU限制和请求
- 内存隔离:使用内存限制和请求
- 网络隔离:使用网络策略
资源调度配置
apiVersion: v1
kind: Pod
metadata:
name: legal-api-pod
spec:
containers:
- name: legal-api
image: legal-api:latest
resources:
requests:
cpu: "1000m"
memory: "2Gi"
limits:
cpu: "2000m"
memory: "4Gi"
成本优化
成本优化策略
1. 实例类型选择
- 计算密集型任务:使用CPU优化实例
- 内存密集型任务:使用内存优化实例
- GPU任务:使用GPU实例(按需)
2. 竞价实例
- 非关键任务:使用竞价实例,降低成本50-70%
- 关键任务:使用按需实例,保证稳定性
3. 预留实例
- 长期稳定负载:购买预留实例,降低成本40-60%
- 1年期预留:标准预留实例
- 3年期预留:可转换预留实例
4. 自动关机
- 非工作时间:自动关闭非必要实例
- 低负载时段