
Linux Cgroup最主要的作用是为一个进程组设置资源使用的上限,这些资源包括CPU、内存、磁盘、网络等。在linux中,Cgroup给用户提供的 *** 作接口是文件系统,其以文件和目录的方式组织在/sys/fs/cgroup路径下。更多的cgroup介绍可以阅读 https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt 、 https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt 、
https://coolshell.cn/articles/17049.html 等文章。
通过一个简单的例子,对一个进程的cpu使用率做限制, *** 作如下:
这里同样以cpu设置为例,探索docker容器是如何通过cgroup做限制的
由此可知在创建一个容器时:
这里仅对最为常用的两个参数--cpu-period、--cpu-quota做设置,使用stress服务做验证
这里针对--memory,--memory-swap,--memory-swappiness三个参数做实践
实践一(不设置--memory与--memory-swap)
经过一段时间,容器并没有发生oom,stats命令中的MEM %参数的值一直是100.00%
可知容器只有在设置了memory限制之后,--oom-kill-disable才会起作用
实践二(设置--memory,不设置--memory-swap):
根据docker文档说明,这时容器可以使用到的最大的内存为2倍的memory的内存(memory=memory-swap, 2倍=memory+memory-swap)
此时,经过一段时间的检测,并没有发生oom,docker stats stress:
实践三(设置--memory与--memory-swap)
由docker文档知,memory-swap等于memory+swap的和,因此要求memory-swap >= memory(Minimum memoryswap limit should be larger than memory limit)
MEM %的值也一直是在100.00%以内浮动,另外也可知LIMIT仅是memory的值
当前实践的机器的swap为5G,因此这里设置用完5Gswap
设置使用系统的swap超出5G
通过设置memory-swappiness参数使得容器禁用系统交换空间
上述是对容器较为常用的cpu与内存的限制做了一些实践记录,了解了docker是如何通过linux cgroup对容器的资源做的限制。当然除了cpu、内存之外的其他资源的限制我们同样可以通过实践的方式一点一点去探索,求证。
https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt
https://coolshell.cn/articles/17049.html
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/resource_management_guide/index
Linux *** 作系统概述
Linux是一套可以免费使用和自由传播的,类似于UNIX风格的 *** 作系统。Linux最早是由芬兰人托瓦兹(Linus Torvalds)设计的。下面是关于Linux *** 作系统概述,希望大家认真阅读!
Linux系统的起源与发展
由于UNIX的商业化,很遗憾,它一般只运行在昂贵的工作台上,普通人难得一见。后来Andrew Tannebaum教授开发了Minix *** 作系统,发布在网上,供人们免费使用,因为Minix具有UNIX的特点,但是由与UNIX不完全兼容,所以1991年10月托瓦兹自己动手写了一个UNIX PC版本,同年11月,在很多热新的支持者的帮助下开发和推出了第一个稳定的'Linux0.10工作版本。
后来1994年的3月,Linux1.0版本出现,在Linux设计过程中,借鉴了很多UNIX的思想,但是源代码都是重写的。 后面发展迅速并有很多的IT公司的加入开发,这时Linux迅速发展并普及并进入了商业领域。在1995年6月,发布了Linux 2.0版本,强大的它已经支持很多处理器,而且具有了强大的网络功能,并增强了系统的文件与虚拟内存的性能,同时可以为文件系统提供独立的高速缓存设备。
如今它已经受到了更多企业用户的重视,Linux正日益成为一个令人生畏的对手。
linux系统
Linux系统的组成
*** 作系统是一台计算机必不可少的系统软件,是整个计算机系统的灵魂。Linux *** 作系统由内核(Kernel),外壳(shell)和应用程序三大部分组成。硬件平台是Linux *** 作系统运行的基础。
linux系统的内核:内核是linux系统的心脏,是运行程序和管理硬件设备的 核心程序,负责控制硬件设备,管理文件系统,程序流程以及其他工作。
linux系统的外壳:外壳程序是系统的用户界面,提供用户与内核进行交互 *** 作的一种接口。它接收用户命令,传达给内核处理,内核处理并把结果传送到界面。
linux系统的应用程序:1.文本处理工具。2.X Window。3.编程语言和开发工具。4.Internet工具软件。5.数据库。
linux系统的组成
Linux系统的特点
Linux *** 作系统以它的安全性,高效性和灵活性著称,它能够实现几乎全部UNIX的特性,还具有多任务,多用户的能力。
特点:
自由软件,源码公开多用户多任务并发可靠的安全系统良好的可移植性丰富的网络功能设备的独立性良好的用户界面
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)