当前位置: 首页 > news >正文

Docker资源限制:给容器戴上精准“金箍“的工程指南

Docker资源限制:给容器戴上精准"金箍"的工程指南

一、当容器变身"饕餮巨兽":真实事故现场

去年某天,一个服务容器在凌晨3点突然暴走:

# 事故现场监控日志
[03:12:45] CPU使用率:780%   # 物理机总共才8核!
[03:13:02] 内存占用:32GB/32GB 
[03:13:15] 磁盘IO延迟:15.7秒
[03:13:30] 网络丢包率:62%

最终导致整个集群雪崩。这就是没有资源限制的血泪教训!

二、底层原理深度拆解:Linux的"牢笼"技术

1. cgroups(控制组)——资源隔离监狱

实战验证CPU限制

# 启动一个吃满2核的容器
docker run -d --name cpu_test --cpus=2 stress-ng --cpu 4

# 查看cgroups配置
cat /sys/fs/cgroup/cpu/docker/<容器ID>/cpu.cfs_quota_us
# 输出:200000 → 表示每100ms(cpu.cfs_period_us)周期内可使用200ms CPU时间
# 计算公式:CPU核数 = cpu.cfs_quota_us / cpu.cfs_period_us

2. namespaces——空间隔离结界

# 查看进程视图隔离
docker run -it --rm alpine ps aux
# 输出:只能看到容器内的进程,如同在独立小宇宙

# 对比宿主机进程
ps aux | grep nginx
# 输出:能看到所有进程,但容器进程被隔离在独立namespace

三、四大核心资源管控详解(含全量参数表)

1. CPU管制:从"核战争"到"计划经济"

参数大全

参数 作用 类比解释
--cpus 可用CPU核数 每月固定工资
--cpu-shares CPU相对权重(默认1024) 奖金分配比例
--cpuset-cpus 绑定指定CPU核心 指定固定工位
--cpu-quota 周期内最大使用时间(微秒) 每日最多加班时长

全场景测试

# 场景1:精确分配2.5核
docker run -d --cpus=2.5 stress-ng --cpu 8

# 监控输出(预期CPU% ≈ 250%)
CONTAINER   CPU %     MEM USAGE
test_container   248.7%   1.21MiB / 2GiB

# 场景2:CPU绑定与权重组合
docker run 

相关文章:

  • 机器学习knnlearn5
  • 硬件面试问题
  • centos7 linux VMware虚拟机新添加的网卡,能看到网卡名称,但是看不到网卡的配置文件
  • UE4学习笔记 FPS游戏制作30 显示击杀信息 水平框 UI模板(预制体)
  • 纯css实现环形进度条+动画加载效果
  • QScreen 捕获屏幕(截图)
  • 智能舵机:AI融合下的自动化新纪元
  • Postman 如何模拟 Request Payload 发送请求?
  • MySQL 性能优化:索引优化与查询优化
  • Scikit-learn全攻略:从入门到工业级应用
  • MQ的数据一致性,如何保证?
  • 网络基础:五层模型
  • 深入理解Spring Data JPA:简化Java持久层开发
  • 探索 curl ipinfo.io:从命令行获取你的网络身份卡!!!
  • 在Git仓库的Readme上增加目录页
  • 【LLM】Llama Factory:Windows部署全流程
  • linux如何查看系统版本
  • WinDbg. From A to Z! 笔记(一)
  • 项目代码第8讲【数据库基础知识】:SQL(DDL、DML、DQL、DCL);函数(聚合、字符串、数值、日期、流程);约束;多表查询;事务
  • 西域平台商品详情接口设计与实现‌
  • 此前显示售罄的火车票“五一”前大量放出来了?12306回应
  • 共绘“彩色上海”,IP SH艺术共创沙龙首期圆满举办
  • 马上评|什么才是地方文旅宣传的正确姿势
  • 广东省副省长刘红兵跨省任湖南省委常委、宣传部部长
  • 腾讯重构混元大模型研发体系:成立大语言和多模态模型部,提升AI长期技术作战能力
  • 呼伦贝尔市委常委、组织部长闫轶圣调任内蒙古交通集团党委副书记