CN112306670A - 一种Docker虚拟化场景下的服务器集群优化方法 - Google Patents
一种Docker虚拟化场景下的服务器集群优化方法 Download PDFInfo
- Publication number
- CN112306670A CN112306670A CN201911005348.9A CN201911005348A CN112306670A CN 112306670 A CN112306670 A CN 112306670A CN 201911005348 A CN201911005348 A CN 201911005348A CN 112306670 A CN112306670 A CN 112306670A
- Authority
- CN
- China
- Prior art keywords
- server
- cluster
- time
- total
- docker
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000005457 optimization Methods 0.000 title claims abstract description 9
- 230000002452 interceptive effect Effects 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims abstract description 3
- 239000011159 matrix material Substances 0.000 description 13
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000953561 Toia Species 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Abstract
本发明公开了一种Docker虚拟化场景下的服务器集群优化方法,包括以下步骤:(1)通过Docker与操作系统的交互接口函数,收集Docker容器的服务器资源使用情况;(2)通过服务器操作系统和集群总控系统的交互接口函数,收集服务器集群的资源使用和任务情况;(3)在集群总控服务器,建立服务器、容器、进程表、集群进程总时间表,计算方法为所有进程按照某种组合执行,将进程运行时间、载入时间和退出时间进行线性加和;穷举所有组合形式,计算所有可能进程执行序列的总执行时间,输入到集群进程总时间表;(4)选取集群总执行时间最短的方案作为最优方案执行;(5)更新集群总控服务器表,服务器,容器和进程表;(6)重复执行步骤(4)和步骤(5),直至所有进程执行完毕。本发明的方法在服务器集群的层面进行优化,不单独关注某个服务器的需求响应,通过合理控制不同服务器、不同容器间的切换,提升了集群处理多个任务的能力,减少了集群总运行时间,区域内运行较为平稳。
Description
技术领域
本发明涉及一种服务器集群优化方法,尤其涉及一种Docker虚拟化场景下的服务器集群优化方法,属于信息技术领域。
背景技术
Docker是一种常用的在Linux系统中运行Windows应用程序容器,可用来虚拟化服务器应用,使得客户端在和Linux服务器交互时感觉不到容器外的操作系统属性。Docker容器提供的跨平台特性被用作Linux服务器集群应用程序托管服务。但Docker容器的存在,相当于在Linux操作系统和Windows应用程序之间加了一个中间层,不仅降低了单个服务器的效率,还有可能降低服务器集群系统效率。如何在应用程序Docker环境的虚拟化场景下调度服务器集群,成为集群运营商面临的难题。
现有的Linux集群的调度系统主要采用LVS架构,包含负载均衡层(Loadbalancer),服务器群层(Server array)和数据共享层(Shared data),LVS架构是上述三层架构首字母的缩写。现有的LVS架构提供多种调度方法,与单个服务器调度算法类似。
但其存在以下不足:集群内多个服务器运行着多个Docker容器,目前LVS架构下,不同服务器间调度算法没有考虑Docker容器的特点,使得服务器、容器和进程(线程)在频繁切换时可能导致系统效率降低。
发明内容
针对上述问题,本发明的目的在于提供一种通过合理控制不同服务器、不同容器间的切换,提升集群处理多个任务的能力,减少集群总运行时间的Docker虚拟化场景下的服务器集群优化方法。
本发明的目的是通过以下技术方案来实现的:
一种Docker虚拟化场景下的服务器集群优化方法,包括以下步骤:
(1)通过Docker与操作系统的交互接口函数,收集Docker容器的服务器资源使用情况;
(2)通过服务器操作系统和集群总控系统的交互接口函数,收集服务器集群的资源使用和任务情况;
(3)在集群总控服务器,建立服务器、容器、进程表、集群进程总时间表,计算方法为所有进程按照某种组合执行,将进程运行时间、载入时间和退出时间进行线性加和;穷举所有组合形式,计算所有可能进程执行序列的总执行时间,输入到集群进程总时间表;
(4)选取集群总执行时间最短的方案作为最优方案执行;
(5)更新集群总控服务器表,服务器,容器和进程表;
(6)重复执行步骤(4)和步骤(5),直至所有进程执行完毕。
步骤(3)中所述的进程表包含进程运行时间、载入时间、退出时间和服务器负载率表。
本发明的优点:本发明的方法在服务器集群的层面进行优化,不单独关注某个服务器的需求响应,通过合理控制不同服务器、不同容器间的切换,提升了集群处理多个任务的能力,减少了集群总运行时间,区域内运行较为平稳。
附图说明
图1是本发明方法初始时刻程序执行时间随机化矩阵图。
图2是本发明方法与全随机方法的系统平均执行时间对比图。
图3是本发明系统总执行时间对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图并通过具体实施例进一步说明本发明。
实施例1:
首先对业务场景进行数学描述。对于服务器,容器,任务(进程或线程)进行如下定义:
服务器集群系统中包含i个服务器,每个服务器的id为s i ;每个服务器包含j个docker容器,每个docker容器的id为d i, j ;每个docker容器中有k个进程(或线程),记为p i, j, k ;服务器集群主控制服务器中存储着一个进程矩阵M(i, j, k),三个时间矩阵:分别为运行时间矩阵tr(i, j, k),载入时间矩阵tl(i, j, k),退出时间矩阵te(i, j, k),其中i, j, k分别代表服务器、容器、进程。
例如,tr(i, j, k)代表第一个服务器的第j个docker容器中的第k个进程的运行时间。
服务器效率矩阵f(i),代表集群中服务器i的效率,在集群轻载时候接近1,在重载时可由系统管理员设置规则,如单个服务器效率与服务器中所有进程运行时间成反比。
假设总共有N个进程需要执行,总共有I个服务器在集群中,总共有J个容器在服务器i中,总共有K个进程在容器中,N远大于I×J×K。方法的目标函数是系统运行时间t最小。
本发明方法的具体流程如下:
第一步:初始化进行矩阵和时间矩阵、进程表、时间片。在集群系统开始运行的时候或者启动本方法的时候执行。此时,进程表可能为0(集群系统开始运行时,或者已经将所有服务运行结束),也可能非零(集群系统已运行一段时间,很多程序在执行);
第二步:如果进程表为零,程序进入等待状态;如果进程表非零,需要将服务器资源分别分配给各个进程。遍历进程矩阵M(i, j, k)和运行时间矩阵tr(i, j, k),获得f (i)(tr(i, j, k)+tl(i, j, k)+te(i, j, k))最短的前I个进程执行,分别给I个服务器;
第三步:运算结束后将这前I个进程按照执行完成时间顺序依次移除。每次移除之后,遍历进程表,计算f (i) (tr(i, j, k)+tl(i, j, k)+te(i, j, k)),获取最小的f (i)(tr(i, j, k)+tl(i, j, k)+te(i, j, k)),执行第I+1个进程。重复这个步骤直至进程表为零。
发明效果的比较例:
因服务器集群处理的进程数一般都是以万为单位,进程表和时间表不方便以表格形式展示,本发明在matlab中实现了本方法,以随机生成的进程表和时间表为输入,总运行时间为输出,对比本方法和随机分配服务器,容器及进程的方法的总运行时间。
假设集群中共有100个服务器,每个服务器有100个Docker,每个Docker可容纳100个进程。初始时刻共有10000000个进程需要处理,他们的处理时间矩阵,载入时间矩阵和退出时间矩阵为0-1秒的随机数,如图1所示,系统效率为1。
第一步,时间最短的,前1000000个进程开始执行。然后,将已执行的1000000个进程,按照退出时间顺序依次移除,每移除第x个,将排序为1000000+x个的进行载入。按照方法描述中的步骤循环执行,直至10000000个进程执行完毕。
选取1000000,2000000,…,100000000个进程处理的总时间和全随机不使用调度算法的结果对比,平均执行时间如图2所示,灰色代表本发明方法的平均执行时间,黑色代表全随机方法的平均执行时间。可见本发明方法的平均执行时间接近线性上升,较全随机方法平稳。
总执行时间如图3所示,灰线为本发明所用的总执行时间,黑线是全随机方法所用的总执行时间,可见本发明的系统平均执行时间较全随机方法短。
通过两种方法的对比可见,本发明的方法在处理多容器多任务时系统总运行时间较小,区域内运行较为平稳。
上述实施实例仅说明本设计的原理和方法,并非用于限制本发明。任何对此技术和原理了解的人士都可在不违背本发明的精神和范畴下,对上述实施例进行修饰和改变。因此,凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神和技术思想下所完成的一切等效修饰和改变,仍应由本发明的权利要求所涵盖。
Claims (2)
1.一种Docker虚拟化场景下的服务器集群优化方法,其特征在于包括以下步骤:
(1)通过Docker与操作系统的交互接口函数,收集Docker容器的服务器资源使用情况;
(2)通过服务器操作系统和集群总控系统的交互接口函数,收集服务器集群的资源使用和任务情况;
(3)在集群总控服务器,建立服务器、容器、进程表、集群进程总时间表,计算方法为所有进程按照某种组合执行,将进程运行时间、载入时间和退出时间进行线性加和;穷举所有组合形式,计算所有可能进程执行序列的总执行时间,输入到集群进程总时间表;
(4)选取集群总执行时间最短的方案作为最优方案执行;
(5)更新集群总控服务器表,服务器,容器和进程表;
(6)重复执行步骤(4)和步骤(5),直至所有进程执行完毕。
2.如权利要求1所述的服务器集群优化方法,其特征在于步骤(3)中所述的进程表包含进程运行时间、载入时间、退出时间和服务器负载率表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005348.9A CN112306670B (zh) | 2019-10-22 | 2019-10-22 | 一种Docker虚拟化场景下的服务器集群优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005348.9A CN112306670B (zh) | 2019-10-22 | 2019-10-22 | 一种Docker虚拟化场景下的服务器集群优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306670A true CN112306670A (zh) | 2021-02-02 |
CN112306670B CN112306670B (zh) | 2023-12-19 |
Family
ID=74485592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911005348.9A Active CN112306670B (zh) | 2019-10-22 | 2019-10-22 | 一种Docker虚拟化场景下的服务器集群优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306670B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286675A (zh) * | 2019-12-29 | 2021-01-29 | 中建材信息技术股份有限公司 | 一种Docker虚拟服务网络负载均衡方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185408A1 (en) * | 2012-01-18 | 2013-07-18 | Dh2I Company | Systems and Methods for Server Cluster Application Virtualization |
US20170017521A1 (en) * | 2015-07-13 | 2017-01-19 | Palo Alto Research Center Incorporated | Dynamically adaptive, resource aware system and method for scheduling |
CN106776029A (zh) * | 2016-12-21 | 2017-05-31 | 上海爱数信息技术股份有限公司 | 一种优化服务器内存资源利用率的方法及系统 |
CN107888708A (zh) * | 2017-12-25 | 2018-04-06 | 山大地纬软件股份有限公司 | 一种基于Docker容器集群的负载均衡算法 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
-
2019
- 2019-10-22 CN CN201911005348.9A patent/CN112306670B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185408A1 (en) * | 2012-01-18 | 2013-07-18 | Dh2I Company | Systems and Methods for Server Cluster Application Virtualization |
US20170017521A1 (en) * | 2015-07-13 | 2017-01-19 | Palo Alto Research Center Incorporated | Dynamically adaptive, resource aware system and method for scheduling |
CN106776029A (zh) * | 2016-12-21 | 2017-05-31 | 上海爱数信息技术股份有限公司 | 一种优化服务器内存资源利用率的方法及系统 |
CN107888708A (zh) * | 2017-12-25 | 2018-04-06 | 山大地纬软件股份有限公司 | 一种基于Docker容器集群的负载均衡算法 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286675A (zh) * | 2019-12-29 | 2021-01-29 | 中建材信息技术股份有限公司 | 一种Docker虚拟服务网络负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112306670B (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4387174B2 (ja) | 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法 | |
Chin et al. | A fast parallel stochastic gradient method for matrix factorization in shared memory systems | |
Desai et al. | A survey of various load balancing techniques and challenges in cloud computing | |
US9367359B2 (en) | Optimized resource management for map/reduce computing | |
US8443366B1 (en) | Techniques for establishing a parallel processing framework for a multi-tenant on-demand database system | |
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理系统 | |
US20100325633A1 (en) | Searching Regular Expressions With Virtualized Massively Parallel Programmable Hardware | |
US11392414B2 (en) | Cooperation-based node management protocol | |
Wu et al. | Heuristic algorithms for task assignment and scheduling in a processor network | |
US20190384633A1 (en) | On-demand validated execution of specific tasks in isolation | |
Ghosh et al. | Dynamic time quantum priority based round robin for load balancing in cloud environment | |
Swarnkar et al. | A survey of load balancing techniques in cloud computing | |
CN115827183A (zh) | 一种基于组合优化的混合容器云环境下Serverless服务调度系统 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN112306670A (zh) | 一种Docker虚拟化场景下的服务器集群优化方法 | |
US20230037293A1 (en) | Systems and methods of hybrid centralized distributive scheduling on shared physical hosts | |
CN113254200B (zh) | 资源编排方法及智能体 | |
CN115629854A (zh) | 分布式任务调度方法、系统、电子设备和存储介质 | |
Sekaran et al. | SIQ algorithm for efficient load balancing in cloud | |
TWI742774B (zh) | 運算系統及其主機資源分配方法 | |
CN112346852A (zh) | 矩阵求和运算的分布式物理处理 | |
CN109739649B (zh) | 资源管理方法、装置、设备及计算机可读存储介质 | |
KR102248978B1 (ko) | 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치 | |
US7937708B2 (en) | Computer system and method for allocating computational power based on a two stage process | |
Trejo-Sánchez et al. | A multi-agent architecture for scheduling of high performance services in a GPU cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |