(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211070741.8 (22)申请日 2022.09.02 (71)申请人 国电南瑞科技股份有限公司 地址 211106 江苏省南京市江宁区诚信大 道19号 申请人 国电南瑞南京控制系统有限公司 (72)发明人 朱志文 张成彬 刘拯 罗华煜  徐广辉 滕春涛 赵锋荣 戴欣欣  彭文才  (74)专利代理 机构 南京苏高专利商标事务所 (普通合伙) 32204 专利代理师 柏尚春 (51)Int.Cl. G06F 9/455(2006.01) G06F 9/50(2006.01) (54)发明名称 一种Docker容器内资源管控系统及方法 (57)摘要 本发明公开了一种Docker容器内资源管控 系统及方法, 所述系统包括设置在容器外的命令 执行模块和守护进程模块, 命令执行模块用于将 容器内的受控进 程资源配置到容器外的cgroups 节点中, 守护进程模块用于实时监测受控进程的 变更并更新到cgroups节点; 本发明通过运行于 宿主机上而非容器内的管控模块, 能同时对多个 容器的多进程进行资源管控, 对镜像环境无依 赖, 可以准确地限制cpu使用上限、 内存使用上限 等, 应用满载运行时使用率不会超过限值, 而且 应用感知不到受限, 正常运行中不会被监控进程 终结, 具有广泛的适用性。 权利要求书1页 说明书4页 附图4页 CN 115357344 A 2022.11.18 CN 115357344 A 1.一种Docker容器内资源管控系统, 其特征在于, 包括设置在容器外的管控模块, 所述 管控模块包括命令执行模块和守护进程模块, 所述命令执行模块用于将容器内的受控进程 资源配置到容器外的cgroups节点中, 所述守护进程模块用于实时监测所述受控进程的变 更并更新到所述cgroups节点。 2.根据权利 要求1所述的Docker容器内资源管控系统, 其特征在于, 所述命令执行模块 通过解析入参文件或命令行参数, 将受控进程资源配置 到cgroups节点中。 3.根据权利 要求1所述的Docker容器内资源管控系统, 其特征在于, 所述命令执行模块 将所述受控进程的资源配置信息以配置文件方式存 储维护。 4.根据权利 要求3所述的Docker容器内资源管控系统, 其特征在于, 所述守护进程模块 通过inotify机制实时监测配置文件的变更。 5.根据权利 要求1所述的Docker容器内资源管控系统, 其特征在于, 容器外设有Docker   Daemon, 所述命令执 行模块通过Docker  Engine API与Docker  Daemon通信。 6.根据权利 要求1所述的Docker容器内资源管控系统, 其特征在于, 所述命令执行模块 向Docker  Daemon发送状态查询命令, 查询容器 状态或受控进程状态。 7.一种Docker容器内资源管控方法, 其特 征在于, 包括如下步骤: (1)创建Docker容器; (2)通过容器外的命令执行模块为每个受控进程创建cgroups节点, 存储和维护受控进 程的资源配置信息; (3)所述命令执行模块启动容器外的守护进程模块, 实时监测所述受控进程的变更并 更新到所述cgroups节点。 8.根据权利要求7所述的Docker容器内资源管控方法, 其特征在于, 步骤(2)中述命令 执行模块通过解析入参文件或命令行参数, 将受控进程资源配置到cgr oups节点中; 将受控 进程的资源配置信息存 储到配置文件中。 9.根据权利要求8所述的Docker容器内资源管控方法, 其特征在于, 步骤(3)中所述守 护进程模块 通过inotify机制实时监测配置文件的变更。 10.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述计算机程序 被处理器执行时实现如权利要求7~ 9任一项所述的Docker容器内资源管控方法。权 利 要 求 书 1/1 页 2 CN 115357344 A 2一种Docker容器内资源 管控系统及方 法 技术领域 [0001]本发明涉及一种Docker容器内资源管控系统及方法, 属于Docker容器虚拟化技 术。 背景技术 [0002]Docker容器不像虚拟机那样拥有独立的操作系统, 容器只通过Namespaces、 Cgroups实现了进程级别的隔离。 容器内无法感知宿主机上的其他进程, 因为其本身也只是 运行在宿主机上的进程, 不具备操作系统的进程管理能力。 容器里的主进程(PID=1的进 程)就是应用本身, 其他的进程都是这个主进程的子进程, 如果主进程正常, Docker的状态 就是Running, 因此, 容器里不推荐跑多个进程, 而鼓励将应用程序解耦到多个容器中, 每个 容器应该只有一个单一的功能, 这样可以更轻松地扩展和重复使用容器。 但是有些应用是 由多个相互强耦合的进程构成, 这些进程很难拆分到不同的容器中, 或者拆分过程存在较 大风险, 所以在单个容器内运行多个进程有着现实需求。 [0003]当前Docker多进程管理主要是通过在容器内运行管理工具的方式实现, supervisor和monit就是这样的工具, 可以做到实时监控进程的状态和资源使用情况; 但 supervisor被监控进程必须运行在前台, 无法管理子进程; monit无法监控没有pid文件(如 shell脚本)的进程, 对进程监控的状态感知有延时。 同时, 现有工具资源限制功能较弱, 本 质上是监测进程的资源使用情况, 在资源使用超预期后进行告警或简单地重启进程; Docker容器通过Cgroups技术提供的资源管控方法只能作用于该容器层级, 无法对容器内 的进程做更精细化的管控。 发明内容 [0004]发明目的: 本发明的目的是提供一种在容器外对容器内多进程进行资源管控的系 统, 本发明的第二目的是提供一种在容器外进行多 进程进行资源管控的方法。 [0005]技术方案: 本发明所述 的Docker容器内资源管控系统, 包括设置在容器外的管控 模块, 所述管控模块包括命令执行模块和守护进程模块, 所述命令执行模块用于将容器内 的受控进程资源配置到容器外的cgroups节点中, 所述守护进程模块用于实时监测所述受 控进程的变更并更新到所述cgroups节点。 [0006]进一步地, 所述命令执行模块通过解析入参文件或命令行参数, 将受控进程资源 配置到cgroups节点中。 [0007]进一步地, 所述命令执行模块将所述受控进程的资源配置信息以配置文件方式存 储维护。 [0008]进一步地, 所述守护进程模块 通过inotify机制实时监测配置文件的变更。 [0009]进一步地, 容器内设有Docker  Daemon, 所述命令执行模块通过Docker  Engine  API与Docker  Daemon通信。 [0010]进一步地, 所述命令执行模块向Docker  Daemon发送状态查询命令, 查询容器状态说 明 书 1/4 页 3 CN 115357344 A 3

.PDF文档 专利 一种Docker容器内资源管控系统及方法

文档预览
中文文档 10 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种Docker容器内资源管控系统及方法 第 1 页 专利 一种Docker容器内资源管控系统及方法 第 2 页 专利 一种Docker容器内资源管控系统及方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:07:07上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。