- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Docker
容器技术与应用
湖北轻工职业技术学院;Docker容器管理;Docker容器管理;项目三:Docker容器管理;认识Docker容器;知识目标;能力目标;素质目标;小王编写完Docker容器基础操作手册后,考虑到基础操作手册中只包含对容器的基本操作和维护的内容,为了让同事们更高效地使用容器,小王决定在基础操作手册中添加关于对容器资源控制的内容,并通过实例说明。;CGroups的含义
在使用?docker?运行容器时,默认的情况下,docker没有对容器进行硬件资源的限制,当一台主机上运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的CPU、内存和磁盘资源。如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说会导致容器资源使用不公平;大的来说,可能会导致主机和集群资源耗尽,服务完全不可用。
docker作为容器的管理者,自然提供了控制容器资源的功能。正如使用内核的namespace来做容器之间的隔离,docker也是通过内核的cgroups来做容器的资源限制;包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。;CGroups的含义
CGroups(ControlGroups)是Linux内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。可以对CPU、内存和磁盘I/O等资源实现控制,Docker可使用CGroups提供的资源限制功能来完成CPU、内存等部分的资源控制。
CGroups提供了对进程进行分组化管理的功能和接口的基础结构,内存或磁盘I/O的分配控制等具体的资源管理功能是通过对进程进行分组化管理来实现的。这些具体的资源管理功能称为CGroups子系统或控制器。;CGroups的功能
限制资源使用,比如内存使用上限以及文件系统的缓存限制。
CGroups可实现对进程组使用的资源总额的限制。例如,使用memory子系统为进程组设定一个内存使用上限,当进程组使用的内存达到限额后再申请内存时。会触发OOM(OutOfMemory)警告。
优先级控制,CPU利用和磁盘IO吞吐。
CGrups可实现对进程组的优先级控制。通过分配CPU时间片数量及硬盘i/o、带宽大小可控制进程的优先级。例如,使用CPU子系统为某个进程组分配特定cpushare。;CGroups的功能
资源统计,主要目的是为了计费。
CGroups可实现对进程组使用的资源数量的记录。例如使用cpuacct子系统可记录某个进程组使用的CPU时间。
任务控制,挂起进程,恢复执行进程。
CGroups可实现对进程组的隔离和控制。例如,使用ns子系统对不同的进程线使用不同的namespace,以达到隔离的目的,使用不同的进程组实现各自的进程、网络文件系统挂载空间,也可使用freezer子系统将进程组暂停和恢复。;CGroups的特点
(1)控制族群
控制族群是一组按照某种标准划分的进程。CGroups中的资源控制是以控制族群为单位实现的。一个进程可以加入某个控制族群中,也可以从一个进程细移到另一个控制族群。一个进程组的进程可以使用CGroups以控制族群为单位分配资康并受到CGroups以控制族群为单位设定的限制。
;CGroups的特点
(2)层级
控制族群可以组织为hierarchical的形式,即一棵控制族群树。子控制自动继承父节点的特定属性,子控制组还可以有自己特定的属性。
(3)子系统
一个子系统就是一个资源控制器,如memory子系统是一个内存控的子系统必须附加到一个层级上才能起作用。一个子系统附加到某个层级以后,这个压罢级上的所有控制族群都受到这个子系统的控制。
;CGroups主要通过以下9大子系统实现
(1)blkio:为每个块设备设置I/O限制,如磁盘、光盘和USB等设备。
(2)cpu:使用调度程序提供对CPU的cgroup任务访问。
(3)cpuacct:自动生成cgroup任务的CPU资源使用报告。
(4)cpuset:为cgroup中的任务分配独立CPU(在多核系统中)和内存节点。
(5)devices:允许或拒绝cgroup任务访问设备。
(6)freezer:暂停和恢复cgroup任务。
(7)memory:设置每个cgroup任务使用的内存限制,并自动生成内存资源使用报告
(8)net_cls:标记每个网络包以供cgroup任务使用。
(9)ns:命名空间子系统。;CPU资源配额控制
Docker的资源限制和隔离完全基于Linuxcgroups。对CPU资源的限制方式也和cgroup
您可能关注的文档
最近下载
- JGJ-T98-2010砌筑砂浆配合比设计规程(正式版).pdf VIP
- (高职)管理信息系统(第七版)教学课件(完整版).pptx
- 怎样解题数学思维的新方法读后感.doc VIP
- 2022年万宁菜篮子投资有限公司招聘考试题库及答案解析.docx VIP
- AI专题:2025年AI应用案例精选报告.pptx VIP
- 人教版物理九年级上册《第十八章 电功率》大单元整体教学设计.pdf
- 骨量不足的口腔种植外科技术.ppt VIP
- 海口市龙华区镇域污水处理厂及配套管网工程(遵谭镇) 环评报告.docx VIP
- 近零能耗建筑技术标准.docx VIP
- Unit 1 How can we become good learners Section B 1a-1e 课件(共26张PPT)(含音频+视频).pptx VIP
文档评论(0)