摘要:在云计算与互联网等技术日益发展的今天,以云计算为基础的服务平台已经成为人们生活的中的主流。在云计算服务平台开发应用方面,虚拟化技术属于核心技术之一,其在云平台建设中体现出来的应用价值越来越高。Docker是一种以高级容器引擎为基础的新型虚拟化技术,能够有效提高云计算服务运行速度,在云计算领域开发应用方面具有一定的优势。因此,必须对Docker虚拟化技术性能使用过程中存在的问题进行研究,结合实际情况进行性能优化设计,将Docker技术优势充分发挥出来。
关键词:性能优化;虚拟化技术;Docker
1Docker技术简介
Docker技术是基于云平台而开发的一个高级容器引擎技术,Docker技术的核心是LXC,它充分的利用LXC对网络信息进行封装,实现Docker虚拟化容器数据处理的标准化和可移植性,而且LXC技术主要采用的是go语言进行开发开发,结合当前网络运行的标准与要求,它遵循Apache2.0协议开源规范与具体的应用要求,便于用户对系统的功能进行分析。LXC技术是一种轻量级的虚拟化技术,可以在多个Linux系统主机上同时运行,它采用cgroups技术对虚拟化设备进行统一管理,实现对处理器、硬盘、I/O接口、网络等设备的隔离,为LXC数据管理提供了一个可靠的环境,Docker技术拥有独立的虚拟环境,可以在单一节点上实现多个容器的良好运行,对于传统的虚拟机技术来说,它是一种轻量级的虚拟化技术,能够有效的对各个虚拟化的资源消耗进行平衡,也能够提高系统的快速启动的功能,提高系统处理数据的效率。Docker技术主要包括镜像技术(Image)与容器技术(Container)两个部分,二者为用户提供一个十分安全、可靠的工作环境。容器即利用Docker构建出来的虚拟环境,使得用户能够自己构建一个满足自己工作的Linux环境,而且构建的Linux环境在功能上,是一种开放性的运行环境,这种经过镜像的环境与一个完整的Linux功能环境大致相同,采用Docker技术构建的镜像环境可以根据需要还原构建的容器,这样能够方便用户对其中的数据进行管理,它一般具有基础镜像(baseimage)的功能,用户可以根据自己的需要要求构建自己的镜像系统,并对一些环境变量进行设置,同时还能够对基础镜像的一些管理功能进行修改,以满足自己的需求。
2DockerSwarm集群性能优化
DockerSwarm集群性能需要通过Swarm工具中的装箱、随机与扩散三个调度策略达到集群负载均衡,因此DockerSwarm集群性能优化主要是对Swarm工具调度策略进行优化。Swarm工具调度策略中的随机调度策略是由随机选择容器生成,在试调集群方面应用较多。在进行装箱调度策略与扩散调度策略应用前,首先需要通过Swarm进行物理节点CPU分配与内存分配数据统计,根据统计结果合理使用调度策略。
Swarm工具中的装箱调度策略与扩散调度策略适用于工作效率要求不高DockerSwarm集群中,技术人员通过装箱调度策略将容器集中于少量物理集中,避免不必要的资源浪费。在实际DockerSwarm集群性能应用方面,Swarm不会对Node节点已经分配的资源或者实际可利用资源进行考虑,只能对资源划分情况进行简单的统计。虽然Docker虚拟化技术中的各个容器拥有足够的资源,但集群整体依然存在资源浪费现象。本研究主要通过权值调度算法优化DockerSwarm集群调度策略,从而将Docker虚拟化技术集群性能充分发挥出来。在DockerSwarm集群容器与镜像管理方面,需要重新设计权值调度模块进行新建容器调度管理,便于集群整体容器与镜像管理。当技术人员需要应用DockerClient创建容器时,必须调动权值调度模块,然后结合调度结果在Node节点上创建新的容器。
期刊文章分类查询,尽在期刊图书馆
在DockerSwarm集群系统负载描述方面,需要将平均网络负载、CPU利用率、节点容器未用内存资源及内存利用率作为参数进行集群各节点负载描述。在Node节点权值计算方面,首先赋予参数权重,计算出来的权值越大表明节点负载越重。因为Node节点参数指标都已经加权,所以可能会存在节点参数指标占有率偏高却没有出现节点权值现象,这对容器调度可能会造成一定不良影响。因此,需要结合节点负载情况进行参数权重动态地震,便于评估DockerSwarm集群节点处理能力。首先需要对节点指标设限,当节点参数指标超过上限时则当前参数权重需要在之前权重基础上增加50%,确保调度结果的合理性。若节点参数指标超过上限,则该节点不可在创建新的Docker容器。在网络平衡负载计算方面,首先需要通过性能收集程序将流入与流出数据包数初始值进行记录。每当获取流入、流出数据包数数值时需要将初始值减去,主要是对DockerSwarm集群启动后Node节点通过数据包进行数据统计。在利用调度算法进行CPU使用率计算时,首先需要通过命令vmstat返回值中提取CPU状态,包括空闲态、内核态与用户态,然后通过CPU使用率计算公式进行求解。
C(Ni)=[(us+sy)/(us+sy+id)]×100%
其中μs代表用户态提取值,sy表示内核态提取值,id表示用户态提取值。
3Docker服务端性能优化
在Docker服务端性能优化方面,需要对服务端数据存储结构进行分析。每个Docker服务器节点都会配对相应的默认运行目录,在服务端客户端操作请求处理方面需要应用到目录场所,通过目录场所进行Docker服务端容器元数据、保存数据、已建容器数据信息等存储。若对Docker服务器中运行目录进行拷贝,则会在另一个虚拟化服务器中形成服务端守护进程,其容器和镜像与之前Docker服务器相同。在Docker守护进程隔离性参数设置方面,需要将Docker服务端口号、运行目录与进程号文件作为Docker服务参数,通过参数确定Docker服务,以防Docker守护进程在RBD挂载恢复启动期间出现冲突。因为Docker服务端需要访问运行目录中的数据和配置文件执行客户端发布命令,而目录中的数据却不是由本地存储记录的,所以上述方案可能会影响到Docker技术重要特性。因此,必须对Docker技术重要特性是否受到影响进行验证。
在Docker服务端读写性能优化方面,首先需要对其原理进行了解,即Docker容器读写性能应用主要是对多快Osd对象进行读写,从而形成条带化存储。从条带化层面来看,Docker服务端磁盘读写性能可能会受到条带深度和宽度影响,即Osd数据对象大小和个数大小,因此在容器读写性能优化方面可改变条带深度和条带宽度达到优化目标。在Docker服务端性能优化效果分析方面,可利用FIO性能测试软件进行读写性能测试,性能评价指标为每秒读写次数,读写次数越多则表明读写性能越好。
4结语
综合上述内容可知,Docker虚拟化技术虽然与传统虚拟化技术之间存在一定的相似比例,但本质上是对传统技术缺陷的弥补,将虚拟化技术性能有效发挥出来,提高其在云计算领域中的应用价值。Docker虚拟化技术将会逐渐替代传统虚拟化技术在云计算领域中的地位,成为未来云服务中不可缺少的核心技术。
参考文献:
[1]唐红梅,郑刚.基于KVM的虚拟桌面基础架构设计与优化[J].计算机科学,2017,44(6A):560-562.
[2]陈俊,黎协铷.虚拟化桌面云教学平台的规模化部署与优化[J].电子技术与软件工程,2017,(10):15-16.
论文作者:杨大伟,杨恒翔,马军,常春雷,王燕军
论文发表刊物:《基层建设》2018年第36期
论文发表时间:2019/1/23
标签:容器论文; 节点论文; 技术论文; 集群论文; 性能论文; 镜像论文; 服务端论文; 《基层建设》2018年第36期论文;