CN107800779A - 优化负载均衡的方法及*** - Google Patents

优化负载均衡的方法及*** Download PDF

Info

Publication number
CN107800779A
CN107800779A CN201710927691.3A CN201710927691A CN107800779A CN 107800779 A CN107800779 A CN 107800779A CN 201710927691 A CN201710927691 A CN 201710927691A CN 107800779 A CN107800779 A CN 107800779A
Authority
CN
China
Prior art keywords
container
load balancer
identification information
control group
file
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
Application number
CN201710927691.3A
Other languages
English (en)
Other versions
CN107800779B (zh
Inventor
李国超
刘海锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710927691.3A priority Critical patent/CN107800779B/zh
Publication of CN107800779A publication Critical patent/CN107800779A/zh
Application granted granted Critical
Publication of CN107800779B publication Critical patent/CN107800779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种优化负载均衡的方法,包括:在第一容器启动后,将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联,其中,负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及在第二容器启动后,将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联,其中,控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。本公开还提供了一种优化负载均衡的***、一种计算机***以及一种计算机可读存储介质。

Description

优化负载均衡的方法及***
技术领域
本公开涉及计算机技术领域,具体涉及一种优化负载均衡的方法及***,一种计算机***以及一种计算机可读存储介质。
背景技术
对于一个完整的负载均衡***(LoadBalance System)而言,其所在的宿主机必定会运行一些管理进程,这些管理进程会与负载均衡(LoadBalance)进程有一定的数据交互。
在实现本发明构思的过程中,发明人发现相关技术中至少存在如下缺陷:在宿主机高负荷运行的情况下,宿主机上的管理进程可能会与LoadBalance进程竞争硬件资源,造成LoadBalance进程性能抖动。
发明内容
有鉴于此,本公开提供了一种能够通过将负载均衡进程和管理进程放到不同的容器中进行隔离,以达到防止负载均衡进程与管理进程竞争硬件资源的目的,进而实现避免负载均衡进程性能抖动的技术效果的优化负载均衡的方法及其***。
本公开的一个方面提供了一种优化负载均衡的方法,包括:在第一容器启动后,将上述第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将上述负载均衡进程与上述第一任务文件关联,其中,上述负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及在第二容器启动后,将上述第二容器中的管理进程的标识信息添加到上述控制族群的第二任务文件中,以将上述管理进程与上述第二任务文件关联,其中,上述控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
根据本公开的实施例,在上述第一容器启动后,通过Docker引擎将上述第一容器中的上述负载均衡进程的标识信息添加到上述控制族群的上述第一任务文件中,以将上述负载均衡进程与上述第一任务文件关联;以及在上述第二容器启动后,通过上述Docker引擎将上述第二容器中的上述管理进程的标识信息添加到上述控制族群的上述第二任务文件中,以将上述管理进程与上述第二任务文件关联。
根据本公开的实施例,在上述第一容器启动后,通过Docker引擎将上述第一容器中的上述负载均衡进程的标识信息添加到上述控制族群的上述第一任务文件中包括:在上述Docker引擎启动上述第一容器后,通过上述Docker引擎在上述控制族群的相关目录下的各个资源目录下生成以上述第一容器的标识信息为名字的目录;在以上述第一容器的标识信息为名字的目录中存储上述负载均衡进程;以及通过上述Docker引擎将存储在以上述第一容器标识信息为名字的目录中的上述负载均衡进程对应的标识信息写入上述控制族群的上述第一任务文件中。
根据本公开的实施例,在第二容器启动后,且将上述第二容器中的管理进程的标识信息添加到上述控制族群的第二任务文件中之后,上述方法还包括:控制上述负载均衡进程和上述管理进程共享网络协议栈。
根据本公开的实施例,控制上述负载均衡进程和上述管理进程共享网络协议栈包括:控制上述第一容器和上述第二容器使用同一个网络入口。
根据本公开的实施例,控制上述第一容器和上述第二容器使用同一个网络入口包括:生成作为上述网络入口的休眠容器;以及针对上述第一容器和上述第二容器,同时指定其网络模式为上述休眠容器,以实现上述第一容器和上述第二容器使用上述休眠容器作为同一个网络入口。
根据本公开的实施例,在生成作为上述网络入口的休眠容器之后,上述方法还包括:生成与上述休眠容器对应的网络命名空间,其中,上述网络命名空间是用于隔离与网络有关的资源的。
根据本公开的实施例,上述硬件资源至少包括以下资源中的一种或几种:CPU、内存、IO接口。
根据本公开的实施例,上述第二容器至少包括一个;上述管理进程至少包括以下进程中的一种或几种:驱动进程、代理进程、上报进程;以及将上述管理进程中的每个进程分别存储到上述第二容器中的一个容器中。
本公开的另一个方面提供了一种优化负载均衡的***,包括:第一添加模块,用于在第一容器启动后,将上述第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将上述负载均衡进程与上述第一任务文件关联,其中,上述负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及第二添加模块,用于在第二容器启动后,将上述第二容器中的管理进程的标识信息添加到上述控制族群的第二任务文件中,以将上述管理进程与上述第二任务文件关联,其中,上述控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
根据本公开的实施例,上述第一添加模块,还用于在上述第一容器启动后,通过Docker引擎将上述第一容器中的上述负载均衡进程的标识信息添加到上述控制族群的上述第一任务文件中,以将上述负载均衡进程与上述第一任务文件关联;以及上述第二添加模块,还用于在上述第二容器启动后,通过上述Docker引擎将上述第二容器中的上述管理进程的标识信息添加到上述控制族群的上述第二任务文件中,以将上述管理进程与上述第二任务文件关联。
根据本公开的实施例,上述第二添加模块包括:第一生成单元,用于在上述Docker引擎启动上述第一容器后,通过上述Docker引擎在上述控制族群的相关目录下的各个资源目录下生成以上述第一容器的标识信息为名字的目录;存储单元,用于在以上述第一容器的标识信息为名字的目录中存储上述负载均衡进程;以及写操作单元,用于通过上述Docker引擎将存储在以上述第一容器标识信息为名字的目录中的上述负载均衡进程对应的标识信息写入上述控制族群的上述第一任务文件中。
根据本公开的实施例,上述***还包括:控制模块,用于在第二容器启动后,且将上述第二容器中的管理进程的标识信息添加到上述控制族群的第二任务文件中之后,控制上述负载均衡进程和上述管理进程共享网络协议栈。
根据本公开的实施例,上述控制模块,还用于:控制上述第一容器和上述第二容器使用同一个网络入口。
根据本公开的实施例,上述控制模块包括:第二生成单元,用于生成作为上述网络入口的休眠容器;以及定义单元,用于针对上述第一容器和上述第二容器,同时指定其网络模式为上述休眠容器,以实现上述第一容器和上述第二容器使用上述休眠容器作为同一个网络入口。
根据本公开的实施例,上述***还包括:生成模块,用于在生成作为上述网络入口的休眠容器之后,生成与上述休眠容器对应的网络命名空间,其中,上述网络命名空间是用于隔离与网络有关的资源的。
根据本公开的实施例,上述硬件资源至少包括以下资源中的一种或几种:CPU、内存、IO接口。
根据本公开的实施例,上述第二容器至少包括一个;上述管理进程至少包括以下进程中的一种或几种:驱动进程、代理进程、上报进程;以及将上述管理进程中的每个进程分别存储到上述第二容器中的一个容器中。
本公开的另一方面提供了一种计算机***,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现上述实施例中任一项所述的优化负载均衡的方法。
本公开的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现上述实施例中任一项所述的优化负载均衡的方法。
根据本公开的实施例,因为采用了通过将负载均衡进程和管理进程放到不同的容器中进行隔离的技术手段,所以至少部分地克服了相关技术中未隔离的负载均衡进程和管理进程会竞争硬件资源的技术问题,进而可以优化负载均衡进程的性能以实现避免负载均衡进程间歇性性能抖动的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用优化负载均衡的方法及***的***架构;
图2A示意性示出了根据本公开实施例的优化负载均衡的方法的流程图;
图2B示意性示出了根据相关技术的负载均衡方法的示意图;
图2C示意性示出了根据另一相关技术的负载均衡方法的示意图;
图3A示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图;
图3B示意性示出了根据本公开实施例的优化负载均衡的示意图;
图3C示意性示出了根据本公开实施例的在第一容器启动后通过Docker引擎将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中的流程图;
图3D示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图;
图3E示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图;
图3F示意性示出了根据本公开实施例的控制第一容器和第二容器使用同一个网络入口的流程图;
图3G示意性示出了根据本公开实施例的实现不同容器使用同一个网络入口的示意图;
图3H示意性示出了根据本公开另一实施例的控制第一容器和第二容器使用同一个网络入口的流程图;
图4示意性示出了根据本公开实施例的优化负载均衡的***的框图;
图5A示意性示出了根据本公开实施例的第二添加模块的框图;
图5B示意性示出了根据本公开另一实施例的优化负载均衡的***的框图;
图5C示意性示出了根据本公开实施例的控制模块的框图;
图5D示意性示出了根据本公开另一实施例的优化负载均衡的***的框图;以及
图6示意性示出了根据本公开实施例的适于实现优化负载均衡的方法的计算机***的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
本公开的实施例提供了一种用于通过将负载均衡进程和管理进程放到不同的容器中进行隔离来防止负载均衡进程性能抖动的优化负载均衡的方法以及能够应用该方法的优化负载均衡的***。该方法包括在第一容器启动后,将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联,其中,负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及在第二容器启动后,将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联,其中,控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
图1示意性示出了根据本公开实施例的可以应用优化负载均衡的方法及***的***架构。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的优化负载均衡的方法一般可以由服务器105执行。相应地,本公开实施例所提供的优化负载均衡的***一般可以设置于服务器105中。本公开实施例所提供的优化负载均衡的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的优化负载均衡的***也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2A示意性示出了根据本公开的实施例的优化负载均衡的方法的流程图。
如图2A所示,该优化负载均衡的方法可以包括操作S201~S202,其中:
在操作S201,在第一容器启动后,将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联,其中,负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上。
需要说明的是,一般地,容器(可以是虚拟化容器)创建完成之后就可以启动了。由于控制族群(Control Group,CGroup)能够将自身的任务文件(tasks,如第一任务文件(tasks1))与子***进程(比如负载均衡进程(LoadBalance Process))关联,从而实现对子***进程所使用的硬件资源进行限制,因此在第一容器启动后,为了实现对负载均衡进程所使用的硬件资源进行限制,可以从存放进程的第一容器中找到该负载均衡进程,并确定该负载均衡进程的标识信息,然后自动将确定出的标识信息写入控制族群的一个任务文件来关联该任务文件与该负载均衡进程,最终达到对负载均衡进程所使用的硬件资源进行限制的目的。
应该理解,对负载均衡进程所使用的硬件资源进行限制,即通过将任务文件与负载均衡进程进行关联,实现对负载均衡进程所使用的硬件资源进行分配的目的。
需要说明的是,硬件资源至少包括CPU、内存、IO接口中的一种或几种,在此不做限定。
例如,负载均衡进程的标识信息PID1为“12345”,在第一容器启动后,从第一容器中找到该负载均衡进程,并确定该负载均衡进程的标识信息“12345”,然后自动的将“12345”写入到控制族群的第一任务文件tasks1中,以此来实现将负载均衡进程和第一任务文件tasks1相关联,即控制族群将标识信息PID1为“12345”的负载均衡进程所使用的硬件资源进行限制。
在操作S202,在第二容器启动后,将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联。其中,控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
需要说明的是,管理进程至少包括驱动进程(Driver Process)、代理进程(AgentProcess)、上报进程(Report Process)中的一种或几种,在此不做限定。另外,在本公开实施例中,第二容器可以包括一个或者多个。若第二容器仅仅包括一个,则可以将所有的管理进程全部放在这一个第二容器中,此种情况下,各管理进程之间由于没有进行资源限制,因此它们之间依然会竞争硬件资源;若第二容器包括多个,则可以将不同的管理进程分别放在不同的第二容器中,此种情况下,各管理进程之间由于也进行了资源限制,因此它们之间也不会竞争硬件资源。
例如,在管理进程包括代理进程时,该代理进程的标识信息PID2为“12346”,在第二容器启动后,从第二容器中找到该代理进程,并确定该代理进程的标识信息“12346”,然后自动的将“12346”写入到控制族群的第二任务文件tasks2中,以此来实现代理进程和第二任务文件tasks2相关联,即控制族群将标识信息PID2为“12346”的代理进程所使用的硬件资源进行限制。
与本公开实施例所提供的技术方案不同,目前,在相关技术中,主流的基于软件的负载均衡是以反向代理的方式实现的,具体如下:在外部发出请求时,负载均衡进程所在的宿主机接受该请求,然后将该请求转发给后端操作服务器,再由后端操作服务器响应于该请求并返回对应的结果,最终将返回的结果发送给发出该请求的客户端,此时该宿主机对外就表现为一个提供对应服务的服务器,而实际上该宿主机充当了代理服务器的角色。同时,宿主机上运行的管理进程会与负载均衡进程进行数据交互,形成完整的一套负载均衡***。如图2B所示,在一种相关技术方案中,由于没有将负载均衡进程与其宿主机上运行的管理进程进行资源限制,因而就会导致在宿主机高负荷的情况下,负载均衡进程和管理进程之间由于竞争资源,而引起负载均衡进程间歇性性能抖动。如图2C所示,在另一种相关技术方案中,虽然将负载均衡进程和管理进程分别与不同的tasks关联了,但是,这种关联必须由用户手动将负载均衡进程的标识信息写入到控制族群的一个任务文件中,并将管理进程的标识信息写入到控制族群的另一个任务文件中,操作非常不便,而且使用原生的控制族群,操作过于冗长繁杂。
而在本公开的实施例中,由于将负载均衡进程和管理进程存放在不同的容器中,并自动将负载均衡进程的标识信息和管理进程的标识信息分别写入控制族群对应的任务文件中,实现了负载均衡进程和管理进程所使用的硬件资源的隔离,避免了不同进程对相同硬件资源的竞争,达到了防止负载均衡进程性能抖动的目的。
下面参考图3A~图3H,结合具体实施例对图2A所示的方法做进一步说明。
图3A示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图。
在该实施例中,对于该优化负载均衡的方法包括的上文参考图2A描述的操作S201~S202,其中,操作S201可以替换为操作S301,操作S202可以替换为操作S302。为了描述的简洁起见,这里省略对图2A中操作S201~S202的描述。如图3A所示,其中:
在操作S301,在第一容器启动后,通过Docker引擎将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联;
在操作S302,在第二容器启动后,通过Docker引擎将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联。
需要说明的是,启动容器的方式可以包括多种,在此不做限定,例如,可以通过Docker引擎启动。具体地,Docker引擎可以利用命名空间(Namespace)、控制族群等Linux(一套开源的、基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作***)内核特性,为应用创建轻量级、可移植、资源隔离的虚拟化容器。
例如,如图3B所示,通过Docker启动容器后,将负载均衡进程和管理进程(如代理进程和上报进程)放入到对应的第一容器(如负载均衡容器(LoadBalance Container))和第二容器(如代理容器(Agent Container)和上报容器(Report Container))中,负载均衡容器、代理容器和上报容器中分别存放负载均衡进程、代理进程和上报进程,这些进程的标识信息依次确定为标识信息PID1、标识信息PID2和标识信息PID3,然后Docker引擎自动将PID1写入控制族群的第一任务文件tasks1中,并将PID2和PID3写入控制族群的第二任文件tasks2中,从而实现对不同进程所使用的硬件资源进行隔离。
通过本公开的实施例,由Docker引擎生成虚拟化容器,并将不同的进程分别放入不同的容器中运行,避免了不同进程间竞争相同的硬件资源,进而可以防止负载均衡进程性能抖动。
图3C示意性示出了根据本公开实施例的在第一容器启动后通过Docker引擎将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中的流程图。
在该实施例中,该优化负载均衡的方法除了可以包括上文参考图2A和图3A描述的操作S201~S202和S302之外,还可以包括操作S401~S403(即操作S301可以包括操作S401~S403)。为了描述的简洁起见,这里省略对图2A和图3A中操作S201~S202和S302的描述。如图3C所示,其中:
在操作S401,在Docker引擎启动第一容器后,通过Docker引擎在控制族群的相关目录下的各个资源目录下生成以第一容器的标识信息为名字的目录;
在操作S402,在以第一容器的标识信息为名字的目录中存储负载均衡进程;以及
在操作S403,通过Docker引擎将存储在以第一容器标识信息为名字的目录中的负载均衡进程对应的标识信息写入控制族群的第一任务文件中。
需要说明的是,在本公开的实施例中,控制族群的相关目录可以是“/sys/fs/cgroup目录”,以此为例,在Docker引擎启动第一容器后,通过Docker引擎在“/sys/fs/cgroup目录”下的各个资源目录下生成关于该容器的目录,此处生成的目录可以以第一容器的标识信息来命名的,将负载均衡进程存储到该容器中,并确定出该负载均衡进程的标识信息,然后通过Docker引擎自动将确定出的标识信息写入控制族群的一个任务文件(如第一任务文件)来关联该任务文件与该负载均衡进程,最终达到对负载均衡进程所使用的硬件资源进行限制的目的。
例如,第一容器(可以称为负载均衡容器)的标识信息ID1为“111”,通过Docker引擎启动第一容器后,确定出第一容器的标识信息“111”,然后Docker引擎会在/sys/fs/cgroup目录下的各个资源目录下,生成名字为“111”的新目录,同时,Docker引擎会自动将负载均衡进程存储到名字为“111”的目录中,进一步,确定出该负载均衡进程的标识信息PID1(如“12345”),并将该标识信息“12345”自动的写入控制族群的第一任务文件中,从而将负载均衡进程与其他进程相隔离。
应该理解,在第二容器启动后,且通过Docker引擎将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中的执行方式,与操作S401~S403类似,在此不再赘述。
通过本公开的实施例,将不同的进程放入不同的容器中运行,实现了负载均衡进程与其它管理进程不会竞争相同硬件资源的目的,达到了防止负载均衡进程性能抖动的技术效果。
图3D示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图。
在上述实施例中,直接通过容器和控制族群的任务文件将负载均衡进程和管理进程隔离,不仅会将负载均衡进程所使用的硬件资源与管理进程所使用的硬件资源相隔离,同时还会将它们所使用的网络协议栈一并隔离了,从而导致原本可以通过网络协议栈在本地实现的通信必须绕到外部借助于外部通信才能实现,这样不仅会造成资源浪费,而且会导致通信时效性变差,为了克服该技术缺陷,本公开还提供了一种优选的实施例。在该优选的实施例中,该优化负载均衡的方法除了可以包括上文参考图2A描述的操作S201~S202之外,还可以包括操作S501。为了描述的简洁起见,这里省略对图2A中操作S201~S202的描述。如图3D所示,其中:
在操作S501,控制负载均衡进程和管理进程共享网络协议栈。
需要说明的是,控制负载均衡进程和管理进程共享网络协议栈(即网络中各层协议的总和)的方式可以包括多种,在此不做限定。例如,可以通过引入Linux的命名空间的方式来实现。
在本公开的实施例中,Linux中可以实现6种命名空间,其中,每一种命名空间都包含了一些全局***资源的抽象集合。而对于共享网络协议栈,则需要使用网络命名空间(Network Namespace),其中,网络命名空间用于隔离和网络有关的资源。一般情况下,每个生成的虚拟化容器都会拥有自己独立的网络命名空间。
通过本公开的实施例,控制负载均衡进程和管理进程共享网络协议栈,实现了在隔离它们所使用的硬件资源的同时,还能保证负载均衡进程和管理进程可以在其宿主机上进行本地通信,达到了充分利用内部资源,以及改善通信时效性的目的。
图3E示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图。
在该实施例中,该优化负载均衡的方法除了可以包括上文参考图2A和图3D描述的操作S201~S202和S501之外,图3D描述的操作S501还可以包括操作S601。为了描述的简洁起见,这里省略对图2A和图3D中操作S201~S202和S501的描述。如图3E所示,其中:
在操作S601,控制第一容器和第二容器使用同一个网络入口。
需要说明的是,控制第一容器和第二容器使用同一个网络入口的方式可以包括多种,在此不做限定。具体地,可以将第一容器和第二容器的网络模式,设置为该网络入口对应的容器。
通过本公开的实施例,控制第一容器和第二容器使用同一个网络入口,实现了负载均衡进程和管理进程,通过该网络入口在宿主机上进行互相通信的前提下,进一步达到了防止负载均衡进程性能抖动的技术效果。
图3F示意性示出了根据本公开实施例的控制第一容器和第二容器使用同一个网络入口的流程图。
在该实施例中,该优化负载均衡的方法除了可以包括上文参考图2A和图3E描述的操作S201~S202和S601之外,图3E描述的操作S601还可以包括操作S701~S702。为了描述的简洁起见,这里省略对操作S201~S202和S601的描述。如图3F所示,其中:
在操作S701,生成作为网络入口的休眠容器;
在操作S702,针对第一容器和第二容器,同时指定其网络模式为休眠容器,以实现第一容器和第二容器使用休眠容器作为同一个网络入口。
需要说明的是,生成作为网络入口的休眠容器的方式可以包括多种,在此不做限定。例如,可以通过Docker引擎生成一个虚拟化容器作为该休眠容器。
在本公开的实施例中,休眠容器(do_no_thing_container)可以表示为一个什么都不做的容器,在生成休眠容器后,将该休眠容器作为上述第一容器和第二容器的网络入口。其中,如果该休眠容器表示为“container1”),则指定第一容器和第二容器的网络模式均为“container1”,即如图3G中所示的,就可以实现控制第一容器和第二容器使用该休眠容器作为同一个网络入口的目的。
通过本公开的实施例,控制第一容器和第二容器使用同一个网络入口,实现了负载均衡进程和管理进程在共享网络协议栈的前提下,对各自所使用的硬件资源做出了隔离,达到了防止负载均衡进程性能抖动的目的。
图3H示意性示出了根据本公开另一实施例的优化负载均衡的方法的流程图。
在该实施例中,该优化负载均衡的方法除了可以包括上文参考图2A和图3F描述的操作S201~S202和S701~S702之外,还可以包括操作S801。为了描述的简洁起见,这里省略对操作S201~S202和S701~S702的描述。如图3H所示,其中:
在操作S801,生成与休眠容器对应的网络命名空间。其中,网络命名空间是用于隔离与网络有关的资源的。
需要说明的是,网络命名空间至少包括网络设备、IP设备、路由表、端口号中的一种或几种,在此不做限定。
在本公开的实施例中,在生成休眠容器后,Docker引擎会自动生成该休眠容器对应的网络命名空间,换言之,第一容器和第二容器最终会使用相同的网络命名空间,实现在宿主机上的本地通信。
通过本公开的实施例,指定第一容器和第二容器使用相同的网络命名空间,最终实现了负载均衡进程个管理进程在共享网络协议栈的同时,还隔离了它们所使用的硬件资源,达到了防止负载均衡进程性能抖动的技术效果。
根据本公开的实施例,上述硬件资源至少包括以下资源中的一种或几种:CPU、内存、IO接口。
根据本公开的实施例,上述第二容器至少包括一个,管理进程至少包括以下进程中的一种或几种:驱动进程、代理进程、上报进程,以及将管理进程中的每个进程分别存储到第二容器中的一个容器中。
在本公开的实施例中,将每一种管理进程分别存放到不同的虚拟化容器中,实现不同进程间在共享网络协议栈的前提下,隔离了不同进程间的硬件资源,进一步防止了负载均衡间歇性的性能抖动,优化了负载均衡的性能。
图4示意性示出了根据本公开实施例的优化负载均衡的***的框图。
在该实施例中,该优化负载均衡的***400可以包括第一添加模块410,用于在第一容器启动后,将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联,其中,负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上,以及第二添加模块420,用于在第二容器启动后,将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联,其中,控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
通过本公开的实施例中,由于将负载均衡进程和管理进程存放在不同的容器中,并自动将负载均衡进程的标识信息和管理进程的标识信息分别写入控制族群对应的任务文件中,实现了负载均衡进程和管理进程所使用的硬件资源的隔离,避免了不同进程对相同硬件资源的竞争,达到了防止负载均衡进程性能抖动的目的。
根据本公开的实施例,第一添加模块,还用于在第一容器启动后,通过Docker引擎将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联,以及第二添加模块,还用于在第二容器启动后,通过Docker引擎将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联。
通过本公开的实施例中,由Docker引擎生成虚拟化容器,并将不同的进程分别放入不同的容器中运行,避免了不同进程间竞争相同的硬件资源,进而可以防止负载均衡进程性能抖动。
图5A示意性示出了根据本公开实施例的第二添加模块的框图;
在该实施例中,该优化负载均衡的***400除了可以包括上文参考图4描述的相应模块之外,第二添加模块420还可以包括第一生成单元421、存储单元422和写操作单元423。为了描述的简洁起见,这里省略对图4中相应模块的描述。如图5A所示,其中:第二添加模块420可以包括第一生成单元421,用于在Docker引擎启动第一容器后,通过Docker引擎在控制族群的相关目录下的各个资源目录下生成以第一容器的标识信息为名字的目录,存储单元422,用于在以第一容器的标识信息为名字的目录中存储负载均衡进程,以及写操作单元423,用于通过Docker引擎将存储在以第一容器标识信息为名字的目录中的负载均衡进程对应的标识信息写入控制族群的第一任务文件中。
通过本公开的实施例,将不同的进程放入不同的容器中运行,实现了负载均衡进程与其它管理进程不会竞争相同硬件资源的目的,达到了防止负载均衡进程性能抖动的技术效果。
图5B示意性示出了根据本公开另一实施例的优化负载均衡的***的框图;
在该实施例中,该优化负载均衡的***400除了可以包括上文参考图4描述的相应模块之外,还可以包括控制模块510。为了描述的简洁起见,这里省略对图4中相应模块的描述。如图5B所示,其中:控制模块510,用于在第二容器启动后,且将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中之后,控制负载均衡进程和管理进程共享网络协议栈。
通过本公开的实施例,控制负载均衡进程和管理进程共享网络协议栈,实现了在隔离它们所使用的硬件资源的同时,还能保证负载均衡进程和管理进程可以在其宿主机上进行本地通信,达到了充分利用内部资源,以及改善通信时效性的目的。
根据本公开的实施例,控制模块,还用于控制第一容器和第二容器使用同一个网络入口。
通过本公开的实施例,控制第一容器和第二容器使用同一个网络入口,实现了负载均衡进程和管理进程,通过该网络入口在宿主机上进行互相通信的前提下,进一步达到了防止负载均衡进程性能抖动的技术效果。
图5C示意性示出了根据本公开实施例的控制模块的框图;
在该实施例中,该优化负载均衡的***400除了可以包括上文参考图4和图5B描述的相应模块之外,控制模块510还可以包括第二生成单元511和定义单元512。为了描述的简洁起见,这里省略对图4和图5B中相应模块的描述。如图5C所示,其中:控制模块510可以包括第二生成单元511,用于生成作为网络入口的休眠容器,以及定义单元512,用于针对第一容器和第二容器,同时指定其网络模式为休眠容器,以实现第一容器和第二容器使用休眠容器作为同一个网络入口。
通过本公开的实施例,控制第一容器和第二容器使用同一个网络入口,实现了负载均衡进程和管理进程在共享网络协议栈的前提下,对各自所使用的硬件资源做出了隔离,达到了防止负载均衡进程性能抖动的目的。
图5D示意性示出了根据本公开另一实施例的优化负载均衡的***的框图;
在该实施例中,该优化负载均衡的***400除了可以包括上文参考图4和图5C描述的相应模块之外,还可以包括生成模块610。为了描述的简洁起见,这里省略对图4和图5C中相应模块的描述。如图5D所示,其中:生成模块610,用于在生成作为网络入口的休眠容器之后,生成与休眠容器对应的网络命名空间,其中,网络命名空间是用于隔离与网络有关的资源的。
通过本公开的实施例,指定第一容器和第二容器使用相同的网络命名空间,最终实现了负载均衡进程个管理进程在共享网络协议栈的同时,还隔离了它们所使用的硬件资源,达到了防止负载均衡进程性能抖动的技术效果。
根据本公开的实施例,上述硬件资源至少包括以下资源中的一种或几种:CPU、内存、IO接口。
根据本公开的实施例,上述第二容器至少包括一个,管理进程至少包括以下进程中的一种或几种:驱动进程、代理进程、上报进程,以及将管理进程中的每个进程分别存储到第二容器中的一个容器中。
在本公开的实施例中,将每一种管理进程分别存放到不同的虚拟化容器中,实现不同进程间在共享网络协议栈的前提下,隔离了不同进程间的硬件资源,进一步防止了负载均衡间歇性的性能抖动,优化了负载均衡的性能。
图6示意性示出了根据本公开实施例的适于实现优化负载均衡的方法的计算机***的框图。图6示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,根据本公开实施例的计算机***600包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器710还可以包括用于缓存用途的板载存储器。处理器710可以包括用于执行参考图2A、图3A~图3H描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有计算机***600操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行以上参考图2A、图3A~图3H描述的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行以上参考图2A、图3A~图3H描述的各种操作。
根据本公开的实施例,计算机***600还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。计算机***600还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,上文参考流程图描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。根据本公开的实施例,计算机可读介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本公开还提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器701执行时使处理器701实现上述方法实施例中任一项所述的优化负载均衡的方法。该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行:在第一容器启动后,将第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将负载均衡进程与第一任务文件关联,其中,负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及在第二容器启动后,将第二容器中的管理进程的标识信息添加到控制族群的第二任务文件中,以将管理进程与第二任务文件关联,其中,控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (20)

1.一种优化负载均衡的方法,包括:
在第一容器启动后,将所述第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将所述负载均衡进程与所述第一任务文件关联,其中,所述负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及
在第二容器启动后,将所述第二容器中的管理进程的标识信息添加到所述控制族群的第二任务文件中,以将所述管理进程与所述第二任务文件关联,其中,所述控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
2.根据权利要求1所述的方法,其中:
在所述第一容器启动后,通过Docker引擎将所述第一容器中的所述负载均衡进程的标识信息添加到所述控制族群的所述第一任务文件中,以将所述负载均衡进程与所述第一任务文件关联;以及
在所述第二容器启动后,通过所述Docker引擎将所述第二容器中的所述管理进程的标识信息添加到所述控制族群的所述第二任务文件中,以将所述管理进程与所述第二任务文件关联。
3.根据权利要求2所述的方法,其中,在所述第一容器启动后,通过Docker引擎将所述第一容器中的所述负载均衡进程的标识信息添加到所述控制族群的所述第一任务文件中包括:
在所述Docker引擎启动所述第一容器后,通过所述Docker引擎在所述控制族群的相关目录下的各个资源目录下生成以所述第一容器的标识信息为名字的目录;
在以所述第一容器的标识信息为名字的目录中存储所述负载均衡进程;以及
通过所述Docker引擎将存储在以所述第一容器标识信息为名字的目录中的所述负载均衡进程对应的标识信息写入所述控制族群的所述第一任务文件中。
4.根据权利要求1所述的方法,其中,在第二容器启动后,且将所述第二容器中的管理进程的标识信息添加到所述控制族群的第二任务文件中之后,所述方法还包括:
控制所述负载均衡进程和所述管理进程共享网络协议栈。
5.根据权利要求4所述的方法,其中,控制所述负载均衡进程和所述管理进程共享网络协议栈包括:
控制所述第一容器和所述第二容器使用同一个网络入口。
6.根据权利要求5所述的方法,其中,控制所述第一容器和所述第二容器使用同一个网络入口包括:
生成作为所述网络入口的休眠容器;以及
针对所述第一容器和所述第二容器,同时指定其网络模式为所述休眠容器,以实现所述第一容器和所述第二容器使用所述休眠容器作为同一个网络入口。
7.根据权利要求6所述的方法,其中,在生成作为所述网络入口的休眠容器之后,所述方法还包括:
生成与所述休眠容器对应的网络命名空间,其中,所述网络命名空间是用于隔离与网络有关的资源的。
8.根据权利要求1至7中任一项所述的方法,其中,所述硬件资源至少包括以下资源中的一种或几种:CPU、内存、IO接口。
9.根据权利要求1至7中任一项所述的方法,其中:
所述第二容器至少包括一个;
所述管理进程至少包括以下进程中的一种或几种:驱动进程、代理进程、上报进程;以及
将所述管理进程中的每个进程分别存储到所述第二容器中的一个容器中。
10.一种优化负载均衡的***,包括:
第一添加模块,用于在第一容器启动后,将所述第一容器中的负载均衡进程的标识信息添加到控制族群的第一任务文件中,以将所述负载均衡进程与所述第一任务文件关联,其中,所述负载均衡进程用于将针对其宿主机的连接请求和/或数据请求均衡分配给分布式架构中的对应的服务器上;以及
第二添加模块,用于在第二容器启动后,将所述第二容器中的管理进程的标识信息添加到所述控制族群的第二任务文件中,以将所述管理进程与所述第二任务文件关联,其中,所述控制族群用于通过将不同的进程与不同的任务文件关联来隔离不同的进程所使用的硬件资源。
11.根据权利要求10所述的***,其中:
所述第一添加模块,还用于在所述第一容器启动后,通过Docker引擎将所述第一容器中的所述负载均衡进程的标识信息添加到所述控制族群的所述第一任务文件中,以将所述负载均衡进程与所述第一任务文件关联;以及
所述第二添加模块,还用于在所述第二容器启动后,通过所述Docker引擎将所述第二容器中的所述管理进程的标识信息添加到所述控制族群的所述第二任务文件中,以将所述管理进程与所述第二任务文件关联。
12.根据权利要求11所述的***,其中,所述第二添加模块包括:
第一生成单元,用于在所述Docker引擎启动所述第一容器后,通过所述Docker引擎在所述控制族群的相关目录下的各个资源目录下生成以所述第一容器的标识信息为名字的目录;
存储单元,用于在以所述第一容器的标识信息为名字的目录中存储所述负载均衡进程;以及
写操作单元,用于通过所述Docker引擎将存储在以所述第一容器标识信息为名字的目录中的所述负载均衡进程对应的标识信息写入所述控制族群的所述第一任务文件中。
13.根据权利要求10所述的***,其中,所述***还包括:
控制模块,用于在第二容器启动后,且将所述第二容器中的管理进程的标识信息添加到所述控制族群的第二任务文件中之后,控制所述负载均衡进程和所述管理进程共享网络协议栈。
14.根据权利要求13所述的***,其中,所述控制模块,还用于:
控制所述第一容器和所述第二容器使用同一个网络入口。
15.根据权利要求14所述的***,其中,所述控制模块包括:
第二生成单元,用于生成作为所述网络入口的休眠容器;以及
定义单元,用于针对所述第一容器和所述第二容器,同时指定其网络模式为所述休眠容器,以实现所述第一容器和所述第二容器使用所述休眠容器作为同一个网络入口。
16.根据权利要求15所述的***,其中,所述***还包括:
生成模块,用于在生成作为所述网络入口的休眠容器之后,生成与所述休眠容器对应的网络命名空间,其中,所述网络命名空间是用于隔离与网络有关的资源的。
17.根据权利要求10至16中任一项所述的***,其中,所述硬件资源至少包括以下资源中的一种或几种:CPU、内存、IO接口。
18.根据权利要求10至16中任一项所述的***,其中:
所述第二容器至少包括一个;
所述管理进程至少包括以下进程中的一种或几种:驱动进程、代理进程、上报进程;以及
将所述管理进程中的每个进程分别存储到所述第二容器中的一个容器中。
19.一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至9任一项所述的优化负载均衡的方法。
20.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使所述处理器实现权利要求1至9任一项所述的优化负载均衡的方法。
CN201710927691.3A 2017-09-30 2017-09-30 优化负载均衡的方法及*** Active CN107800779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710927691.3A CN107800779B (zh) 2017-09-30 2017-09-30 优化负载均衡的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710927691.3A CN107800779B (zh) 2017-09-30 2017-09-30 优化负载均衡的方法及***

Publications (2)

Publication Number Publication Date
CN107800779A true CN107800779A (zh) 2018-03-13
CN107800779B CN107800779B (zh) 2020-09-29

Family

ID=61534020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710927691.3A Active CN107800779B (zh) 2017-09-30 2017-09-30 优化负载均衡的方法及***

Country Status (1)

Country Link
CN (1) CN107800779B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110087107A (zh) * 2019-04-25 2019-08-02 视联动力信息技术股份有限公司 一种提高***自适应能力的方法和视联网***
CN111127657A (zh) * 2019-11-29 2020-05-08 重庆顺泰铁塔制造有限公司 基于Unreal Engine引擎的虚拟制造方法及***
CN111399999A (zh) * 2020-03-05 2020-07-10 腾讯科技(深圳)有限公司 计算机资源处理方法、装置、可读存储介质和计算机设备
CN112948127A (zh) * 2021-03-30 2021-06-11 北京滴普科技有限公司 云平台容器平均负载监视方法、终端设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122175A1 (en) * 2008-11-12 2010-05-13 Sanjay Gupta Tool for visualizing configuration and status of a network appliance
CN103092675A (zh) * 2012-12-24 2013-05-08 北京伸得纬科技有限公司 一种虚拟环境的构建方法
CN104268022A (zh) * 2014-09-23 2015-01-07 浪潮(北京)电子信息产业有限公司 一种操作***中进程的资源分配方法及***
CN106209741A (zh) * 2015-05-06 2016-12-07 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
US20170126469A1 (en) * 2015-11-03 2017-05-04 Rancher Labs, Inc. Cloud Computing Service Architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122175A1 (en) * 2008-11-12 2010-05-13 Sanjay Gupta Tool for visualizing configuration and status of a network appliance
CN103092675A (zh) * 2012-12-24 2013-05-08 北京伸得纬科技有限公司 一种虚拟环境的构建方法
CN104268022A (zh) * 2014-09-23 2015-01-07 浪潮(北京)电子信息产业有限公司 一种操作***中进程的资源分配方法及***
CN106209741A (zh) * 2015-05-06 2016-12-07 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
US20170126469A1 (en) * 2015-11-03 2017-05-04 Rancher Labs, Inc. Cloud Computing Service Architecture

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110087107A (zh) * 2019-04-25 2019-08-02 视联动力信息技术股份有限公司 一种提高***自适应能力的方法和视联网***
CN111127657A (zh) * 2019-11-29 2020-05-08 重庆顺泰铁塔制造有限公司 基于Unreal Engine引擎的虚拟制造方法及***
CN111399999A (zh) * 2020-03-05 2020-07-10 腾讯科技(深圳)有限公司 计算机资源处理方法、装置、可读存储介质和计算机设备
CN112948127A (zh) * 2021-03-30 2021-06-11 北京滴普科技有限公司 云平台容器平均负载监视方法、终端设备及可读存储介质
CN112948127B (zh) * 2021-03-30 2023-11-10 北京滴普科技有限公司 云平台容器平均负载监视方法、终端设备及可读存储介质

Also Published As

Publication number Publication date
CN107800779B (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN109032760A (zh) 用于部署应用的方法和装置
CN107800779A (zh) 优化负载均衡的方法及***
CN110096344A (zh) 任务管理方法、***、服务器集群和计算机可读介质
CN109922158A (zh) 基于微服务的数据处理方法、装置、介质及电子设备
CN107844371A (zh) 任务处理方法、***及电子设备
US9459897B2 (en) System and method for providing data analysis service in cloud environment
CN107656768A (zh) 控制页面跳转的方法及其***
CN105659209B (zh) 在客户端设备上托管的云服务
CN110019125A (zh) 数据库管理的方法和装置
CN107423085A (zh) 用于部署应用的方法和装置
CN107862044A (zh) 展示页面的方法和装置
CN109408214A (zh) 一种数据的并行处理方法、装置、电子设备及可读介质
CN104937581A (zh) 横跨多个计算装置提供对信息的接入
CN108804295A (zh) 日志信息记录方法和装置
CN110019310A (zh) 数据处理方法及***、计算机***、计算机可读存储介质
CN110007936A (zh) 数据处理方法和装置
CN107347093A (zh) 用于分布式服务器***的配置方法和装置
CN107357526A (zh) 用于处理网络数据的方法和装置、服务器和存储介质
CN110223179A (zh) 资金的数据处理方法、装置、***、介质
CN109783201A (zh) 数据交换方法及其***
CN109981546A (zh) 获取应用模块间的远程调用关系的方法和装置
CN110110184A (zh) 信息查询方法、***、计算机***及存储介质
CN109977982A (zh) 用户分类方法、***、电子设备及计算机可读介质
CN109710604A (zh) 数据处理方法、装置、***、计算机可读存储介质
CN109783409A (zh) 用于处理数据的方法和装置

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