全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 6 分钟 ✍️ juanwangdev

容器密度与资源规划

单机容器密度影响资源利用率和故障隔离,下面介绍规划方法。

密度计算

资源评估

YAML
宿主机资源:
- CPU: 16 核
- 内存: 64GB
- 磁盘: 500GB

容器需求:
- CPU: 0.5 核
- 内存: 2GB
- 磁盘: 10GB

理论密度: 
- CPU: 16 / 0.5 = 32
- 内存: 64 / 2 = 32
- 磁盘: 500 / 10 = 50
- 实际密度: min(32, 32, 50) = 32

预留资源

YAML
实际部署建议预留 20%:
- 可用 CPU: 16 × 0.8 = 12.8 核
- 可用内存: 64 × 0.8 = 51.2GB
- 可用磁盘: 500 × 0.8 = 400GB

实际密度: min(12.8/0.5, 51.2/2, 400/10) = 25

容器分类

关键容器

YAML
# 数据库(低密度)
deploy:
  resources:
    limits:
      cpus: '4'
      memory: 8G
    reservations:
      cpus: '2'
      memory: 4G

非关键容器

Bash
# Worker(高密度)
deploy:
  resources:
    limits:
      cpus: '0.5'
      memory: 512M
    replicas: 10

爆炸半径控制

网络隔离

Bash
# 关键服务独立网络
networks:
  critical:
    driver: bridge
  normal:
    driver: bridge

资源隔离

text
# 关键容器独占 CPU
docker run -d --cpuset-cpus="0-3" critical-app

# 普通容器共享
docker run -d normal-app

监控与告警

text
# 监控资源使用
docker stats

# CPU 使用率
cpu_usage=$(docker stats --no-stream --format "{{.CPUPerc}}" | awk '{sum+=$1} END {print sum/NR}')

# 内存使用率
mem_usage=$(docker stats --no-stream --format "{{.MemPerc}}" | awk '{sum+=$1} END {print sum/NR}')

扩容策略

text
水平扩容:
- 密度过高 → 增加宿主机
- 密度过低 → 减少宿主机

垂直扩容:
- 单容器资源不足 → 增加限制
- 单容器资源过剩 → 减少限制

要点总结

  • 密度计算取 CPU、内存、磁盘最小值,预留 20% 资源
  • 关键容器(数据库)低密度部署,非关键容器(Worker)高密度
  • 爆炸半径控制:网络隔离、CPU 绑定、资源独立
  • 监控资源使用率,动态调整密度
  • 密度过高增加宿主机故障影响范围,需平衡利用率与安全

📝 发现内容有误?点击此处直接编辑

← 上一篇 容器启动加速
下一篇 → 构建缓存策略
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库