本发明涉及计算机云计算性能领域,具体地说是一种基于Docker的资源监控的实现方法。
背景技术:
云计算是一种全新的计算模式,通过虚拟化技术,基于不同软、硬件资源实现大规模的虚拟化资源池,通过网络提供各类计算资源,网络使得用户可以跨越地理空间的限制,随时随地到云计算资源中心获取各类所需的资源,即云计算实现了计算资源的实现形态、计算服务的应用模式的根本性变革,所以,云计算是信息产业的一次新的革命。
Docker是基于Linux容器(LXC)创建的一个应用容器引擎,属于操作系统层虚拟化,主要用于解决服务器应用快速构建、部署和分享的问题。Docker对LXC做了一层封装,提供更易于使用的接口,使容器的管理操作更加方便。在宏观角度看,容器更像是轻量级的虚拟化。每个容器都有自己的网络堆栈、进程空间、文件系统等,可以使用容器安装任何想要的软件,各软件独立运行,不影响其他容器和宿主机。而从底层角度看,容器只是宿主机上一个进程,利用内核特征如namespace和cgroups来提供这种隔离。
基于上述情况,有效利用Docker,实时监控一个运行容器的运行情况,目前还没有合理的方法应用。
公开的相关专利文件:名称为“一种基于Docker的Web服务器架构及各模块之间的交互方法”,该文件公开了“一种基于Docker的Web服务器架构及各模块之间的交互方法,所述基于Docker的Web服务器架构包括:负载均衡模块、服务发现模块、系统监控模块、私有库模块和若干服务器模块。可以方便的应用于需要高可用性及扩展性的Web系统,同时实现如下功能:(1)监控、存储及显示CoreOS服务器及其运行Docker容器的运行状况;(2)根据监控数据动态伸缩集群;(3)通过搭建Docker私有库及相关策略,以非重启的方式更新业务”。
名称为“一种基于docker技术的云跳板机系统”,该文件公开了“一种基于docker技术的云跳板机系统,包括:中央管理模块,其部署docker容器服务器的运行环境以构建docker容器服务器,并构建docker容器管理模块,在满足预定条件时,向docker容器管理模块发送创建主docker跳板机的指令,部署该主docker跳板机的运行环境;docker容器管理模块,其在接收到创建主docker跳板机的指令时,创建并启动相应的主docker跳板机,将docker容器服务器的端口映射到主docker跳板机的交互服务端口;主docker跳板机,其添加需要管理的服务器,监控并记录用户对需要管理的服务器的访问行为。本方案可降低部署虚拟跳板机的成本”。
上述公开文件与本
技术实现要素:
要解决的技术问题,采用的技术手段都不相同。
发明内容
本发明的技术任务是提供一种基于Docker的资源监控的实现方法。
本发明的技术任务是按以下方式实现的,该方法是创建基于Docker的资源监控模型,利用轻量级容器Docker的资源限制能力完成容器资源的控制,实现对容器内系统参数进行全面的收集与存储,并提供对信息的实时监控。
所述的基于Docker的资源监控模型中,利用Docker守护进程支持的Remote API,其中的stats API实时监控一个运行容器的CPU、内存、网络I/O与块设备I/O运行情况,Docker stats默认返回JSON格式性能监控数据;根据返回的实时监控结果,对资源的调配和负载做出进一步判断提供决策依据。
所述的Docker支持两种CPU资源限制方式:绑定到一个或多个具体CPU线程,或者是在绑定具体CPU线程的基础上对线程资源进程权重分配。
所述的Docker默认配置一个容器使用主机上的全部内存,docker run命令中的-m参数限制容器使用内存的最大值。
所述的Docker支持—blkio-weight参数,用来限制容器的I/O。
该方法的具体操作步骤如下:
1)定时调用stats接口获得容器内系统参数的监控数据;
2)通过Docker返回容器监控数据;
3)通过监控服务器处理并过滤监控数据;
4)存储通过监控服务器处理并过滤的监控数据;
5)查询存储的Docker容器监控信息;
6)获取所需要的Docker容器监控信息;
7)返回所查询的监控信息;
8)应答查询的监控信息。
基于Docker的资源监控模型,该资源监控模型包括监控客户端、监控数据服务器、监控服务器、Docker Deamon四个主要部分;
监控客户端负责监控数据的查询展示功能;
监控数据服务器负责存储监控数据;
监控服务器用于处理过滤监控数据;
Docker Deamon用于提供监控数据。
本发明的基于Docker的资源监控的实现方法和现有技术相比,有效的维护了整体系统的稳定性,实现对容器内的系统参数进行全面的收集与存储,实现对集群内的资源使用情况进行监督。
附图说明
附图1为基于Docker的资源监控的实现方法的集群监控机构结构示意图。
附图2为基于Docker的资源监控的实现方法的监控机制流程图。
具体实施方式
实施例1:
该基于Docker的资源监控的实现方法是创建基于Docker的资源监控模型,该资源监控模型包括Monitor clinet(监控客户端)、Monitor Data Server(监控数据服务器)、Monitor Server(监控服务器)、Docker Deamon四个主要部分;
Monitor clinet负责监控数据的查询展示功能;
Monitor Data Server负责存储监控数据;
Monitor Server用于处理过滤监控数据;
Docker Deamon用于提供监控数据。
该方法是利用轻量级容器Docker的资源限制能力完成容器资源的控制,实现对容器内系统参数进行全面的收集与存储,并提供对信息的实时监控。
所述的基于Docker的资源监控模型中,利用Docker守护进程支持的Remote API,其中的stats API实时监控一个运行容器的CPU、内存、网络I/O与块设备I/O运行情况,Docker stats默认返回JSON格式性能监控数据;根据返回的实时监控结果,对资源的调配和负载做出进一步判断提供决策依据。
所述的Docker支持两种CPU资源限制方式:绑定到一个或多个具体CPU线程,或者是在绑定具体CPU线程的基础上对线程资源进程权重分配。
所述的Docker默认配置一个容器使用主机上的全部内存,docker run命令中的-m参数限制容器使用内存的最大值。
所述的Docker支持—blkio-weight参数,用来限制容器的I/O。
该方法的具体操作步骤如下:
1)定时调用stats接口获得容器内系统参数的监控数据;
2)通过Docker返回容器监控数据;
3)通过监控服务器处理并过滤监控数据;
4)存储通过监控服务器处理并过滤的监控数据;
5)查询存储的Docker容器监控信息;
6)获取所需要的Docker容器监控信息;
7)返回所查询的监控信息;
8)应答查询的监控信息。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。