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

Cgroup 控制组学习(三)在容器中使用 CGroups

一、CGroups 关于mememory的限制操作

cgroup关于cpu操作   关于memeory cgroup的几个要点

①  memeory限额类

1、memory.limit_bytes:'硬限制'--> 限制'最大内存'使用量,单位有k、m、g三种,填-1则代表无限制,默认是'字节'2、memory.soft_limit_bytes:'软限制',只有比强制限制设置的值'小'时才有意义,填写'格式同上'场景:1) 当整体内存'紧张'的情况下,task 获取的内存就'被限制'在软限制额度之内2) 以保证不会有太多进程'因内存挨饿';可以看到加入了内存的资源限制'并不代表'没有资源竞争3、memory.memsw.limit_bytes:设定'最大内存'与 'swap 区'内存'之和'的用量限制,填写格式同上

②  memeory报警与自动控制

4、memory.oom_control:1) 该'参数'填 0 或 12) '0表示开启',当 cgroup 中的进程使用资源'超过界限时'立即杀死进程,'1'表示'不启用'3) '默认'情况下,包含 memory 子系统的 cgroup 都'启用'4) 当oom_control'不启用',实际使用内存'超过界限时'进程会'被暂停'直到有空闲的内存资源

③  memeory统计与监控

5、memory.usage_bytes:统计​​​'该​​​ cgroup 中​​​进​​​程'​​​使​​​用​​​的​​​当​​​前​​​总​​​内​​​存​​​用​​​量,以'字节'为单位6、memory.max_usage_bytes:统计报​​​告​​​该​​​ cgroup 中​​​进​​​程​​​使​​​用​​​的​​​'最​​​大​​​'内​​​存​​​用​​​量6、memory.failcnt:报​​​告​​​内​​​存'​​​达​​​到'​​​在​​​ memory.limit_in_bytes设​​​定​​​的​​​'限​​​制​​​值'​​​的​​​次​​​数​​​7、memory.stat:包含'大量'的内存统计数据8、cache:'页​​​缓​​​存'​​​,包​​​括​​​ tmpfs(shmem),单位为字节9、rss:'匿​​​名​​​和​​​ swap 缓​​​存'​​​,不​​​包​​​括​​​ tmpfs(shmem),单位为字节9、mapped_file:memory-mapped 映​​​射​​​的​​​文​​​件​​​大​​​小​​​,包​​​括​​​ tmpfs(shmem),单​​​位​​​为​​​字​​​节​​​10、pgpgin:'存​​​入'​​​内​​​存​​​中​​​的​​​页​​​数
​​​
11、pgpgout:从​​​内​​​存​​​中'​​​读​​​出​​​'的​​​页​​​数12、swap:swap 用​​​量​​​,单​​​位​​​为​​​字​​​节​​​

kubelet --cgroup-driver=systemd

④   在容器中使用cgroup

容器本质:操作系统上的一个'进程process',关于进程有'哪些'管理nerdctl run -h  '截取部分输出'

docker 背后的内核 Cgroups 机制

需求:在 Containerd 的容器中来'使用 cgroup',并限制其使用内存为 '50M'

 

nerdctl inspect nginx | jq '.[0].Id' -r

 

说明:nginx 容器'进程 ID' 也会出现在上面的 'tasks' 文件中

说明:删除'容器'后,/sys/fs/cgroup/memory/default/ 目录下的'容器 ID'文件夹也会自动删除

namespace基础概念

容器背后的两个核心技术:Cgroups 和 Namespace

Docker背后的内核Cgroup机制    cgroup的两种驱动 cgroups systemd

linux 虚拟化 docker 之 cgroup     linux cgroup学习总结mount

http://www.dtcms.com/a/301570.html

相关文章:

  • goland编写go语言导入自定义包出现: package xxx is not in GOROOT (/xxx/xxx) 的解决方案
  • 微服务架构面试题
  • PiscCode使用OpenCV实现漂浮方块特效
  • 编程语言Java——核心技术篇(五)IO流:数据洪流中的航道设计
  • 仓库管理系统-2-后端之基于继承基类的方式实现增删改查
  • 【RL第三篇】REINFORCE Leave-One-Out(RLOO)算法(基于留一法的REINFORCE策略梯度算法)
  • RK3568基于mpp实现硬解码(一):mpp库的编译使用
  • [每周一更]-(第151期):Go语言中的Map、Slice、Array和Hash原理详解
  • 博士招生 | 香港大学 招收人工智能和网络安全方向 博士生
  • 7.27 状态机dp|质数线性筛|序列化树
  • Linux网络-------2.应⽤层⾃定义协议与序列化
  • SpringBoot实现Serverless:手撸一个本地函数计算引擎
  • mcu trace工具调研
  • elasticsearch 倒排索引原理详解
  • SpringBoot3整合Redis
  • 零基础学习性能测试第五章:性能瓶颈分析与调优-网络资源瓶颈分析与优化建议
  • Python调用大模型api并部署到前端的主流技术栈以及具体框架对比
  • 【牛客网C语言刷题合集】(四)
  • Java类加载器与双亲委派模型
  • n8n “Run Once for All Items“和“Run Once for Each Item“区别
  • 深度学习中的计算图与自动微分原理:静态图与动态图的实现差异
  • sd Function 学习笔记
  • BeautifulSoup 使用详解与实战示例
  • WAIC 2025 热点解读:如何构建 AI 时代的“视频神经中枢”?
  • WordPress 网站中的“mu-plugins”隐藏后门
  • [每周一更]-(第152期):Go中的CAS(Compare-And-Swap)锁原理详解
  • Java面试宝典:MySQL性能优化
  • ES6模块详解:核心语法与最佳实践
  • 编码器和解码器风格的Transformer架构
  • 使用vue2和 element-ui 做一个点餐收银台系统前端静态项目