tasks中写入的是线程号

cgroup.procs是进程号

===================CPU隔离=====================

主机CPU核数:

cat /proc/cpuinfo  | grep -w processor | wc -l  32

一个实例最大可以占有的核数: 10

cpu百分比 10/32 = 0.3125

# cfs_period_us  = 定值

# cfs_quota_us = cfs_period_us * 所占的核数

# cpu shares = 定值 *所占的cpu百分比

# rt_runtime_us =  定值

===================IOPS隔离=====================

确定需要隔离的路径:

通过路径确定下面两个文件的参数—>设备号参数

blkio.throttle.read_iops_device

blkio.throttle.write_iops_device

通过cgroup去统计IOPS值

for i in `seq 360`;do date +"%H:%M:%S"; X=`cat blkio.throttle.io_serviced |grep "8:16 Total"|awk -F' ' '{print $3}'`;((Z=$X-$Y));echo $X $Y $Z; Y=$X; sleep 0.99; done

===================内存隔离=====================

memory.memsw.limit_in_bytes

memory.limit_in_bytes

带 memsw 的表示虚拟内存,即物理内存加交换区。

不带 memsw 的那组仅包括物理内存。

其中,limit_in_bytes 是用来限制内存使用的,其他的则是统计报告。

memory.memsw.limit_in_bytes 必须大于或等于 memory.limit_in_byte。

这种方式限制进程内存占用会有个风险。当进程试图占用的内存超过限制,访问内存时发生缺页,又没有足够的非活动内存页可以换出时会触发 oom ,导致进程直接被杀,从而造成可用性问题。即使关闭控制组的 oom killer,进程在内存不足的时候,虽然不会被杀,但是会长时间进入 D (等待系统调用的不可中断休眠)状态,无法继续执行,导致仍然无法服务。因此,我认为,用 memory.limit_in_bytes 或 memory.memsw.limit_in_bytes 限制进程内存占用仅应当作为一个保险,避免在进程异常时耗尽系统资源。如,预期一组进程最多只会消耗 1G 内存,那么可以设置为 1.4G 。这样在发生内存泄露等异常情况时,可以避免造成更严重问题。

在 memory 子系统中,还有一个 memory.soft_limit_in_bytes 。和 memory.limit_in_bytes 的差异是,这个限制并不会阻止进程使用超过限额的内存,只是在系统内存不足时,会优先回收超过限额的进程占用的内存,使之向限定值靠拢。

前面说控制组的 oom killer 是可以关闭的,就是通过 memory.oom_control 来实现的。cat memory.oom_control 可以看到当前设置以及目前是否触发了 oom 。echo 1 >memory.oom_control 就可以禁用 oom killer。

usage_in_bytes、max_usage_in_bytes、failcnt 则分别对应 当前使用量,最高使用量和发生的缺页次数。

memory 子系统中还有一个很重要的设置是 memory.use_hierarchy 这是个布尔开关,默认为 0。此时不同层次间的资源限制和使用值都是独立的。当设为 1 时,子控制组进程的内存占用也会计入父控制组,并上溯到所有 memory.use_hierarchy = 1 的祖先控制组。这样一来,所有子孙控制组的进程的资源占用都无法超过父控制组设置的资源限制。同时,在整个树中的进程的内存占用达到这个限制时,内存回收也会影响到所有子孙控制组的进程。这个值只有在还没有子控制组时才能设置。之后在其中新建的子控制组默认的 memory.use_hierarchy 也会继承父控制组的设置。

memory.swappiness 则是控制内核使用交换区的倾向的。值的范围是 0 – 100。值越小,越倾向使用物理内存。设为 0 时,只有在物理内存不足时才会使用交换区。默认值是系统全局设置: /proc/sys/vm/swappiness 。

memory.stat 就是内存使用情况报告了。包括当前资源总量、使用量、换页次数、活动页数量等等。

-r--r--r-- 1 root root 0 May 29 16:05 cgroup.procs
-rw-r--r-- 1 root root 0 May 29 16:05 memory.failcnt
--w------- 1 root root 0 May 29 16:05 memory.force_empty
-rw-r--r-- 1 root root 0 Jun 21 23:11 memory.limit_in_bytes
-rw-r--r-- 1 root root 0 May 29 16:05 memory.max_usage_in_bytes
-rw-r--r-- 1 root root 0 May 29 16:05 memory.memsw.failcnt
-rw-r--r-- 1 root root 0 Jun 21 23:11 memory.memsw.limit_in_bytes
-rw-r--r-- 1 root root 0 May 29 16:05 memory.memsw.max_usage_in_bytes
-r--r--r-- 1 root root 0 May 29 16:05 memory.memsw.usage_in_bytes
-rw-r--r-- 1 root root 0 May 29 16:05 memory.move_charge_at_immigrate
-rw-r--r-- 1 root root 0 May 29 16:05 memory.soft_limit_in_bytes
-r--r--r-- 1 root root 0 May 29 16:05 memory.stat
-rw-r--r-- 1 root root 0 May 29 16:05 memory.swappiness
-r--r--r-- 1 root root 0 May 29 16:05 memory.usage_in_bytes
-rw-r--r-- 1 root root 0 May 29 16:05 memory.use_hierarchy
-rw-r--r-- 1 root root 0 May 29 16:05 notify_on_release
-rw-r--r-- 1 root root 0 Jun 21 23:11 tasks

转载于:https://www.cnblogs.com/yuyue2014/p/4740460.html

cgroup隔离的知识点相关推荐

  1. jdbctemplate 开启事务_SpringBoot 系列教程之事务隔离级别知识点小结

    上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上,并通过实例演示不同的事务隔离级别下,脏读.不可重复读. ...

  2. mysql locked myisam_MySql 事务 隔离级别 知识点

    1. SQL 语句 常用的Sql语句总结: --------s-------- SELECT Websites.name, Websites.url, SUM(access_log.count) AS ...

  3. sql server 隔离级别

    解决数据库并发读取错乱的途径之一就是使用事务进行操作,并且设置相应的事务隔离级别,现在就解释一下SQL Server的四种隔离级别. SQL Server的四种隔离级别知识点整理,特别制作了流程图,方 ...

  4. Yarn的资源调度与隔离

    三种资源调度器介绍: 注意:Capacity Scheduler这个是雅虎公司分支(apache版本默认使用的容器调度器) Fair scheduler这个是facebook公司分支(CDH版本默认使 ...

  5. 揭开容器的神秘面纱:帮助初学者深入了解容器技术

    戳蓝字"CSDN云计算"关注我们哦! 本文转载自:Docker  简介 无论你是学生,还是公司的开发人员,或是软件爱好者,相信你都听说过容器. 你可能还听说容器是轻量级虚拟机,但这 ...

  6. 蚂蚁金服天街:OceanBase 在大促 5 年来的技术演进

    为了与金融从业者.科技从业者共同探讨金融 + 业务的深层次问题,蚂蚁金服联手 TGO 鲲鹏会,在 12 月 8 日举办了「走进蚂蚁金服:双十一背后的蚂蚁金服技术支持」活动.蚂蚁金服高级技术专家天街为大 ...

  7. docker依赖的技术探索

    参考资料 <自己动手写docker> http://www.sel.zju.edu.cn/?p=556 docker原理探索 docker用于开发应用,交付应用,运行应用的一种开源的软件. ...

  8. 九年双11云化架构演进和升级,打造更加完美的双11

    摘要: 12月13-14日,由云栖社区与阿里巴巴技术协会共同主办的<2017阿里巴巴双11技术十二讲>顺利结束,集中为大家分享了2017双11背后的黑科技.本文是<阿里巴巴云化架构创 ...

  9. 数据库性能测试---前阿里数据库团队资深DBA杨奇龙

    杨奇龙 前阿里数据库团队资深DBA 主要负责淘宝业务线,经历多次11.11,有海量业务访问DB架构设计经验. 目前就职于有赞科技DBA,负责数据库运维工作,熟悉MySQL 性能优化,故障诊断,性能压测 ...

最新文章

  1. java操练之求两数最大公约数的两种算法思路
  2. Zookeeper的典型应用场景(2)
  3. 数据结构与算法-- 二叉树中和为某一值的路径
  4. vue.js 01 模板语法
  5. js年会抽奖_嘿!这真的是一个正经的抽奖程序!
  6. 设置X轴,y轴分格线,使用对象句柄完成
  7. 初学JAVA随记——8bit(1byte)的取值范围是+127到—128
  8. JavaWeb之分页代码
  9. 【C#大作业】你画我猜——设计文档
  10. 程序员面试被问“你的缺点是什么”,该怎么回答?
  11. 【原创】LabView制作实时读取Excel正态分布图
  12. Java类集框架——List接口
  13. Junit Rule的使用
  14. 数据存储- 存储文件概述
  15. 如何将flac转换成mp3
  16. 故障分析 | 数据库表空间被 rm 后,怎么处理
  17. 写论文自动生成参考文献的方法
  18. 数据资产目录建设之数据分类全解(上)
  19. 2018年Android面试题含答案--适合中高级
  20. 个人安装RHEL7需要做的事情

热门文章

  1. kali 2020.3修改终端字体颜色
  2. Excel如何排序?掌握3种排序方法!
  3. mysql patindex_mssql 系统函数 字符串函数 patindex 功能简介
  4. 中科蓝讯通过注册:年营收11亿 拟募资16亿
  5. 无线键盘有几种连接方式?(USB接收器连接(无线2.4g)、蓝牙连接、wi-fi连接、红外线连接)
  6. 及时更新网卡驱动可使无线网络更稳定
  7. python程序的文件拓展名主要是_Python程序文件扩展名主要有________和________两种,其中后者常用于GUI程序...
  8. 极品飞车 最高通缉 秘籍+提示
  9. [Error] ‘..‘ cannot appear in a constant-expression
  10. Python编写微信打飞机小游戏(五)