CN113037791B - 运维方法和系统、计算机可读存储介质 - Google Patents

运维方法和系统、计算机可读存储介质 Download PDF

Info

Publication number
CN113037791B
CN113037791B CN201911342989.3A CN201911342989A CN113037791B CN 113037791 B CN113037791 B CN 113037791B CN 201911342989 A CN201911342989 A CN 201911342989A CN 113037791 B CN113037791 B CN 113037791B
Authority
CN
China
Prior art keywords
node
physical server
server node
hash ring
virtual
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.)
Active
Application number
CN201911342989.3A
Other languages
English (en)
Other versions
CN113037791A (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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201911342989.3A priority Critical patent/CN113037791B/zh
Publication of CN113037791A publication Critical patent/CN113037791A/zh
Application granted granted Critical
Publication of CN113037791B publication Critical patent/CN113037791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及一种运维方法和系统、计算机可读存储介质。该运维方法包括:构建服务器集群的一致性哈希环;在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理。本公开通过分析计算各服务器资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡。

Description

运维方法和系统、计算机可读存储介质
技术领域
本公开涉及云计算与互联网领域,特别涉及一种运维方法和系统、计算机可读存储介质。
背景技术
2019年是5G网络商业元年,5G时代的来临不仅带来了网络的飞速提升,更加使得网络渗透到社会生活的各个角落。然而,从5G的测试验证到真正的大规模部署不是一蹴而就的。从4G到5G的转变过程中,网络系统的运维面临着具大的挑战。一方面,过渡时期,为同时支撑4G和5G网络,运维系统集群的异构性凸显;另一反面,网络更趋复杂化,同时接入终端类型多数量大,由此产生的海量数据对运维系统的效率和智能化程度都提出了新的要求。
发明内容
发明人通过研究发现:应对5G网络的运维挑战,急需更高效并可靠的异构云运维系统来支持5G网络的全面部署。而负载均衡则是高效且可靠的异构云运维系统的基础。
相关技术的负载均衡的几种常用方式:1)轮询法:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,能自动剔除。但如果后台服务器性能不一致,该方法使得性能好的服务器和性能差的服务器处理请求数的相同。当请求数进一步增加时,性能差的服务器就可能先宕机,从而引起连锁反应,使得整个集群不能正常工作。因而,该方案不适应于性能不一致的异构集群。2)权重法:权重和访问比率成正比,用于后端服务器性能不均的情况。一方面目前缺乏很好的方法定义服务器的权重,另一方面,当服务器性能发生变化或者有新的服务器加入集群时,权重法不能动态的调整节点权重。由此,可能导致整个服务器集群停机,重置节点权重。此外,上述两种方法均是根据用户请求的时间随机分配服务器,不能保证相同用户的两次请求交由同一个服务器处理,因而需要建立多次http链接,增加了请求的时延,降低了集群的效率。
鉴于以上技术问题中的至少一项,本公开提供了一种运维方法和系统、计算机可读存储介质,可以达到最优化服务器负载均衡。
根据本公开的一个方面,提供一种运维方法,包括:
构建服务器集群的一致性哈希环;
在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理。
在本公开的一些实施例中,所述运维方法还包括:
以预定周期采集各节点资源的使用率,动态更新虚拟节点数目,建立虚拟节点与物理服务器节点的对应关系。
在本公开的一些实施例中,所述将用户请求自动定位到服务器集群下的物理服务器节点来处理包括:
计算各服务器资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡。
在本公开的一些实施例中,所述构建服务器集群的一致性哈希环包括:
对服务器集群各个物理服务器节点进行压力测试,得到各个物理服务器节点的请求峰值,饱和状态下的CPU、内存和网卡的占用率;
设置一致性哈希环;
根据请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算各个物理服务器节点在哈希环上对应的虚拟节点数目;
将所有虚拟节点通过哈希函数映射到哈希环上。
在本公开的一些实施例中,所述将用户请求自动定位到服务器集群下的物理服务器节点来处理包括:
获取用户标识信息;
将用户标识信息输入预定函数,得到用户请求在哈希环上的对应位置;
在哈希环顺时针查找确定该对应位置后的第一个虚拟系节点;
将用户请求由所述第一个虚拟系节点对应的物理服务器节点处理。
在本公开的一些实施例中,所述以预定周期采集各节点资源的使用率,动态更新虚拟节点数目包括:
根据各个物理服务器节点的当前CPU、内存、网卡的占用率、和当前虚拟节点数目,确定各个物理服务器节点的虚拟节点数增量;
根据各个物理服务器节点的虚拟节点数增量,增删哈希环上的虚拟节点。
在本公开的一些实施例中,所述运维方法还包括:
在新增物理服务器节点的情况下,对该物理服务器节点进行压力测试,得到该物理服务器节点的请求峰值、饱和状态下的CPU、内存和网卡的占用率;
根据该物理服务器节点的请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算该物理服务器节点在哈希环上对应的虚拟节点数目;
将该物理服务器节点对应的虚拟节点通过哈希函数映射到哈希环上。
在本公开的一些实施例中,所述运维方法还包括:
在删除物理服务器节点的情况下,删除该物理服务器节点在哈希环上对应的所有虚拟节点。
根据本公开的另一方面,提供一种运维系统,包括:
哈希环构建模块,用于构建服务器集群的一致性哈希环;
节点定位模块,用于在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理。
在本公开的一些实施例中,所述运维系统用于执行实现如上述任一实施例所述的运维方法的操作。
根据本公开的另一方面,提供一种运维系统,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述运维系统执行实现如上述任一实施例所述的运维方法的操作。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的运维方法。
本公开通过分析计算各服务器资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开运维方法一些实施例的示意图。
图2为本公开运维方法另一些实施例的示意图。
图3为本公开运维方法又一些实施例的示意图。
图4为本公开一些实施例中服务器接收请求数与响应请求数的关系图。
图5为本公开一些实施例中一致性哈希环的示意图。
图6为三种方法响应时间的对比图。
图7为三种方法命中率的对比图。
图8为本公开运维系统一些实施例的示意图。
图9为本公开运维系统另一些实施例的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为解决未来面对多终端、多层次复杂网络,需要高效的自动化运维实施方案,运维实施方案又需要面对海量数据处理,这对异构服务器集群环境下的负载均衡提出了更高要求。
鉴于此,本公开提供一种基于动态一致性哈希的运维方法和系统,下面结合实施例进行说明。
图1为本公开运维方法一些实施例的示意图。优选的,本实施例可由本公开运维系统执行。该方法包括以下步骤:
步骤11,构建服务器集群的一致性哈希环。
在本公开的一些实施例中,步骤11可以包括:
步骤111,对服务器集群各个物理服务器节点进行压力测试,得到各个物理服务器节点的请求峰值,饱和状态下的CPU、内存和网卡的占用率。
步骤112,设置一致性哈希环。
步骤113,根据请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算各个物理服务器节点在哈希环上对应的虚拟节点数目。
步骤114,将所有虚拟节点通过哈希函数映射到哈希环上。
步骤12,在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理。
在本公开的一些实施例中,步骤12中,所述将用户请求自动定位到服务器集群下的物理服务器节点来处理的步骤可以包括:
步骤121,获取用户标识信息。
步骤122,将用户标识信息输入预定函数,得到用户请求在哈希环上的对应位置。
步骤123,在哈希环顺时针查找确定该对应位置后的第一个虚拟系节点。
步骤124,将用户请求由所述第一个虚拟系节点对应的物理服务器节点处理。
基于本公开上述实施例提供的运维方法,是一种基于动态一致性哈希的运维方法,该方法通过分析计算各服务器资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡,保障了运维系统高效稳定运行的目的。
图2为本公开运维方法另一些实施例的示意图。优选的,本实施例可由本公开运维系统执行。该方法包括以下步骤21-步骤26,其中:
步骤21,集群节点压力测试。
在本公开的一些实施例中,步骤21可以包括:
步骤211,在固定时间段内,向服务器集群各个物理服务器节点发送同类请求,绘制服务器接收请求数与响应请求数的关系图。
步骤212,初始时,响应请求数随着发送HTTP请求数的增加而增加,当请求数的增加到峰值Rs时,节点i响应请求数急剧下降,记节点编号i对应的请求峰值为
Figure BDA0002332573920000061
记录节点i处于请求峰值/>
Figure BDA0002332573920000062
时的CPU、内存和网卡的占用率,依次用符号/>
Figure BDA0002332573920000063
表示。
步骤22,构建初始一致性哈希环。
在本公开的一些实施例中,步骤22可以包括:
步骤221,定义该哈希空间大小为232,该哈希环由0到232-1的无符整型数构成,这些数字从0到232-1顺时针组成一个环,即,数字0与232重合。
步骤222,计算各物理服务器节点在哈希环上对应的虚拟节点数目。
记初始时,物理服务器节点i的CPU、内存和网卡的占用率分别为
Figure BDA0002332573920000071
利用步骤(1)所述各个节点的请求峰值/>
Figure BDA0002332573920000072
和饱和状态的CPU、内存和网卡的占用率/>
Figure BDA0002332573920000073
计算各节点在哈希环上对应的虚拟节点数目Vi如公式(1)所示:
Figure BDA0002332573920000074
公式(1)中,Vi表示节点i对应的虚拟节点数目,wcpu,wmem,wnet分别表示CPU、内存和网卡占有率的权重,wcpu,wmem,wnet均不小于0,且wcpu+wmem+wnet=1。wcpu,wmem和wnet由用户根据业务类型对CPU、内存、和网络资源的不同需求自行定义。
步骤223,将所有虚拟节点通过哈希函数映射到哈希环上。
将节点i对应的IP地址和虚拟节点编号构成的字符串作为DJBhash函数的输入,得到节点i(0≤i<N)的第k(0≤k<Vi)个虚拟节点在哈希环上的位置;
步骤23,处理用户请求。
在本公开的一些实施例中,步骤23可以包括:
步骤231,根据接收到的用户请求信息,获取用户标识信息,利用DJBhash函数,将用户请求URL(Uniform Resource Locator,统一资源定位符)和用户IP地址作为输入,输出结果记为DJBhashreq(0≤DJBhashreq<232),确定其在哈希环上的对应位置。
步骤232,从DJBhashreq出发,在哈希环上顺时针查找到的第一个虚拟节点,将该用户请求交由找到的虚拟节点对应的物理服务器节点处理该请求。
步骤24,服务器虚拟节点的动态调节。
由于各服务器节点的负载能力实时变化,因此需要根据节点的实时负载能力调节其在哈希环上的虚拟节点数目。
在本公开的一些实施例中,步骤24可以包括:
步骤241,首先定义动态调整的周期为T,参数T由用户根据时间情况自行设定。
步骤242,计算各个物理服务器节点n*T(n为1,2,3,...)时刻的虚拟节点数的增量:
首先,记物理服务器节点i当前CPU、内存、网卡的占用率分别为
Figure BDA0002332573920000081
当前对应的虚拟节点数目为Vi,则i节点对应的虚拟节点数的增量为如公式(2)所示:
Figure BDA0002332573920000082
公式(2)中,wcpu,wmem,wnet分别表示CPU、内存和网卡占有率的权重,其中,wcpu,wmem,wnet均不小于0,且wcpu+wmem+wnet=1;
Figure BDA0002332573920000083
Figure BDA0002332573920000084
分别为饱和状态的CPU、内存和网卡的占用率;
步骤243,根据各个物理服务器节点i对应的虚拟节点数的增量,增删哈希环上的虚拟节点:
若△Vi>0,则表明该服务器节点需在哈希环上增加△Vi个虚拟节点,即增加编号为Vi,Vi+1,...,Vi+△Vi-1的△Vi个虚拟节点;
若△Vi<0,则表明该服务器节点需在哈希环上删除△Vi个虚拟节点,即依次删除编号为Vi,Vi-1,...,Vi-△Vi的△Vi个虚拟节点;
若△Vi=0,则表明该服务器节点的虚拟节点无需调节。
步骤25,新增物理服务器节点。
在本公开的一些实施例中,步骤25可以包括:
步骤251,当服务器有新的物理服务器节点q加入时,首先根据步骤21所述方法对物理该服务器节点进行压力测试,得到该节点q的请求峰值
Figure BDA0002332573920000091
集群对应的CPU、内存和网卡的占用率,依次用符号/>
Figure BDA0002332573920000092
表示。
步骤252,计算节点q在哈希环上对应的虚拟节点数目。
记初始时,节点q的CPU、内存和网卡的占用率分别为
Figure BDA0002332573920000093
Figure BDA0002332573920000094
则节点q在哈希环上对应的虚拟节点数目为如公式(3)所示。
Figure BDA0002332573920000095
公式(3)中,wcpu,wmem,wnet分别表示CPU、内存和网卡占有率的权重,其中,wcpu,wmem,wnet均不小于0,且wcpu+wmem+wnet=1;
Figure BDA0002332573920000096
Figure BDA0002332573920000097
分别为饱和状态的CPU、内存和网卡的占用率。
步骤253,采用步骤223所述方法将节点q的所有虚拟节点通过哈希函数映射到哈希环上。
步骤26,删除物理服务器节点。直接删除该物理服务器节点在哈希环上对应的所有虚拟节点。
本公开上述实施例采用一致性哈希算法,针对于Nginx服务器集群构建其一致性哈希环,当用户访问时,会将该请求通过特有的哈希算法,自动定位到服务器集群下的节点来处理,每个请求按访问节点的hash结果分配。与一般的哈希算法相比,该方法可适应异构集群中节点数目的变化,能根据实时的资源占用情况,调整哈希环上的节点权重分配,分布更为均匀,从而提高负载均衡的能力。
本公开上述实施例通过压力测试首先确定了各节点进入饱和的精确状态,用于初始化哈希环上的节点权重,避免为饱和节点分配请求,从而防止节点进入假死状态,提供了系统可靠性。
本公开上述实施例的动态一致性哈希方法,通过周期性采集各节点资源的使用率,动态更新虚拟节点数目,建立虚拟节点与物理节点的对应关系,提高了权重设置的精确性。
图3为本公开运维方法又一些实施例的示意图。优选的,本实施例可由本公开运维系统执行。该方法包括以下步骤301-步骤303,其中:
步骤301,集群节点进行压力测试
本公开一些实施例中,集群中物理服务器节点数目为3,编号依次为0,1,2。
首先利用诸如Jmeter的压力测试工具测试各物理服务器节点的性能,得到的0号节点响应请求数随着发送HTTP请求数的变化情况,参见图4。
图4为本公开一些实施例中服务器接收请求数与响应请求数的关系图。从图4可知,初始时,响应请求数随着发送HTTP请求数的增加而增加,随着请求数的增加到峰值
Figure BDA0002332573920000101
响应请求数急剧下降,即服务器进入假死状态,记录节点0处于请求峰值。
用相同的方法对1号和2号服务器进行压力测试,物理服务器节点0,1,2的压力测试结果见表1:
表1
Figure BDA0002332573920000102
步骤302,定义一致性哈希环。
定义该哈希空间大小为232,所述哈希环由0到232-1的无符整型数构成,这些数字从0到232-1顺时针组成一个环,即,数字0与232重合,如图5所示。图5为本公开一些实施例中一致性哈希环的示意图。
步骤303,计算各节点在哈希环上对应的虚拟节点数目。
记初始时,节点的CPU、内存和网卡的占用率如表2所示,表2为节点初始时刻资源占用率表。
表2
Figure BDA0002332573920000103
Figure BDA0002332573920000111
设置,wcpu=0.4,wmem=0.4,wnet=0.2,根据如下公式(1)确定各节点在哈希环上对应的虚拟节点数目,公式(1)中,Vi表示节点i对应的虚拟节点数目,wcpu,wmem,wnet分别表示CPU、内存和网卡占有率的权重,wcpu,wmem,wnet均不小于0,且wcpu+wmem+wnet=1。wcpu,wmem和wnet由用户更加业务需求自行定义,如高计算类业务可适当增加wcpu的权重值,下载类业务可增加wnet的权重值。
计算各节点初始对应的虚拟节点数目,得到结果如表3所示。
表3
节点编号 0 1 2
虚拟节点数目 307 298 395
步骤304,将所有虚拟节点通过哈希函数映射到哈希环上。
利用DJBhash函数计算各虚拟节点在哈希环上的位置,如节点0的IP地址为:192.168.1.1,虚拟节点的编号为:0,则该节点在哈希环上位置为DJBhash(“192.168.1.1#0”),输出结果为0到232-1的无符整型数。如图5所示,通过DJBhash函数,建立了虚拟节点与物理节点在哈希环上的对应关系。
步骤305,在接收到用户请求的情况下,开始计时。
步骤306,根据接收到的用户请求信息,获取用户标识信息,如请求URL,用户IP地址等。
步骤307,利用DJBhash函数,将用户请求URL和用户IP地址作为输入,输出结果记为DJBhashreq(0≤DJBhashreq<232),从而确定其在哈希环上的对应位置。
步骤308,从DJBhashreq出发,在哈希环上顺时针查找到的第一个虚拟节点。
步骤309,将该用户请求交由找到的虚拟节点对应的物理服务器节点处理该请求。
图5还给出了某个请求的哈希值在哈希环上的位置,从该位置出发,顺时针查找与之最近的虚拟节点,得到0号物理服务器节点对应的一个虚拟节,该请求交由0号物理服务器节点进行处理。
步骤310,判断计时器是否到达预定时间T。在计时器到达预定时间T的情况下,执行步骤311;否则,在计时器未到达预定时间T的情况下,执行步骤312。
步骤311,更新服务器虚拟节点的数目;之后执行步骤304,即,根据虚拟节点数增量,增加或删除哈希环上的虚拟节点。
由于各服务器节点的负载能力实时变化,因此需要动态地调节节点在哈希环上的虚拟节点数目,即,每隔T时刻,更新各个服务器节点的虚拟节点数目的。
在本公开的一些实施例中,步骤311可以包括:
步骤3111,获取T时刻节点的资源占用率。如表4所示为T时刻节点的资源占用率。
表4
节点编号 CPU 内存 网卡
0 0.8 0.6 0.5
1 0.4 0.3 0.4
2 0.6 0.4 0.7
步骤3112,利用公式(2)计算得到各个节点对应的虚拟节点数增量,如表5所示。
表5
节点编号 0 1 2
虚拟节点增量 -114 94 20
之后,执行步骤304,根据虚拟节点数增量,增加或删除哈希环上的虚拟节点。在哈希环上,删除0号节点对应的后114个虚拟节点,分别增加1号对应的虚拟节点94个,2号对应的虚拟节点20个,增加的方式同步骤304。
在本公开的一些实施例中,图3实施例的运维方法也可以包括新增物理服务器节点和删除物理服务器节点的步骤。新增物理服务器节点和删除物理服务器节点的步骤于图3实施例的描述相同或类似,这里不再详述。
步骤312,判断是否接收到新的用户请求信息。在接收到新的用户请求信息的情况下,针对新的用户请求信息执行步骤306;否则,在未接收到新的用户请求信息的情况下,结束。
针对上述3个节点的集群系统,发明人比较了轮询法、权重法和本公开上述实施例的运维方法在吞吐量上的比较(如图6所示)。图6为三种方法响应时间的对比图。从图6中可以看出,当请求数较少时,本公开上述实施例运维方法与权重法的响应时间基本接近,略高于轮询法,但随着请求数的增加,本公开上述实施例运维方法响应时间会低于其他两种方法。因此,本公开上述实施例更适应于请求数较多的大规模集群。
为尽可能使同一个服务器处理相同用户的请求,发明人定义请求的命中率来评价这一需求。在固定时间段内,来自相同用户(编号为j,总用户数为M)的请求总数为Qj(所有用户的请求总数记为Q),如果该用户的两次连续请求分别分配给不同的服务器,则记一次变化,统计总变化为Cj。定义该用户请求的命中率如公式(4)所示:
Figure BDA0002332573920000131
该集群总的命中率如公式(5)所示:
Figure BDA0002332573920000132
图7为三种方法命中率的对比图。从图7中看出本公开上述实施例的运维方法的命中率明显优于其他两种,基本能够保证同一用户请求交由同一个服务器处理。
发明人通过研究发现:一种相关技术采用服务器网络时延作为计算哈希环上虚拟节点数目的依据,但是除了受到服务器自身性能的影响外,还受到网络环境等其他的影响。而本公开上述实施例通过压力测试的方法,定量地确定节点性能,并由此作为参照,根据节点实时资源负载(CPU、内存和网卡的占用率)来计算虚拟节点数目,因此,本方案更能真实地反应节点当前的性能,使得计算出来的虚拟节点数目更准确合理,更能保证系统的稳定性。
发明人通过研究发现:另一种相关技术通过节点的权重作为计算虚拟节点数目的依据。但权重值只能在系统初始时设置,不能根据服务器的负载情况或性能变化进行实时的调整,如需调整则需要整个集群停机。而本公开上述实施例的运维方法可根据节点的负载情况和性能变化,周期性调整其对应的虚拟节点数目,因此更能保证系统的连续稳定运行。
图8为本公开运维系统一些实施例的示意图。如图8所示,本公开运维系统可以包括哈希环构建模块81和节点定位模块82,其中:
哈希环构建模块81,用于构建服务器集群的一致性哈希环。
在本公开的一些实施例中,哈希环构建模块81可以用于对服务器集群各个物理服务器节点进行压力测试,得到各个物理服务器节点的请求峰值,饱和状态下的CPU、内存和网卡的占用率;设置一致性哈希环;根据请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算各个物理服务器节点在哈希环上对应的虚拟节点数目;将所有虚拟节点通过哈希函数映射到哈希环上。
节点定位模块82,用于在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理。
在本公开的一些实施例中,节点定位模块82可以用于在用户请求访问的情况下,计算各服务器资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡。
在本公开的一些实施例中,节点定位模块82可以用于在用户请求访问的情况下,获取用户标识信息;将用户标识信息输入预定函数,得到用户请求在哈希环上的对应位置;在哈希环顺时针查找确定该对应位置后的第一个虚拟系节点;将用户请求由所述第一个虚拟系节点对应的物理服务器节点处理。
在本公开的一些实施例中,本公开运维系统还可以用于以预定周期采集各节点资源的使用率,动态更新虚拟节点数目,建立虚拟节点与物理服务器节点的对应关系。
在本公开的一些实施例中,本公开运维系统还可以用于根据各个物理服务器节点的当前CPU、内存、网卡的占用率、和当前虚拟节点数目,确定各个物理服务器节点的虚拟节点数增量;根据各个物理服务器节点的虚拟节点数增量,增删哈希环上的虚拟节点。
在本公开的一些实施例中,本公开运维系统还可以用于在新增物理服务器节点的情况下,对该物理服务器节点进行压力测试,得到该物理服务器节点的请求峰值、饱和状态下的CPU、内存和网卡的占用率;根据该物理服务器节点的请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算该物理服务器节点在哈希环上对应的虚拟节点数目;将该物理服务器节点对应的虚拟节点通过哈希函数映射到哈希环上。
在本公开的一些实施例中,本公开运维系统还可以用于在删除物理服务器节点的情况下,删除该物理服务器节点在哈希环上对应的所有虚拟节点。
在本公开的一些实施例中,所述运维系统用于执行实现如上述任一实施例(例如图1-图5任一实施例)所述的运维方法的操作。
图9为本公开运维系统另一些实施例的示意图。如图9所示,本公开运维系统可以包括存储器91和处理器92,其中:
存储器91,用于存储指令。
处理器92,用于执行所述指令,使得所述运维系统执行实现如上述任一实施例(例如图1-图5任一实施例)所述的运维方法的操作。
基于本公开上述实施例提供的运维系统,是一种基于动态一致性哈希的运维系统,该系统通过分析计算各服务器资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡,保障了运维系统高效稳定运行的目的。
本公开上述实施例是一种基于压力测试的运维系统,可以定量地确定节点性能用以负载均衡决策的思想。本公开上述实施例在构建一致性哈希环中,采用了计算虚拟节点数目的公式。本公开上述实施例可以周期性动态调节虚拟节点数目。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例(例如图1-图5任一实施例)所述的运维方法。
基于本公开上述实施例提供的计算机可读存储介质,确定了各节点进入饱和的精确状态,用于初始化哈希环上的节点权重,避免为饱和节点分配请求,从而防止节点进入假死状态,提供了系统可靠性。
本公开上述实施例通过周期性采集各节点资源的使用率,动态更新虚拟节点数目,建立虚拟节点与物理节点的对应关系,提高了权重设置的精确性。
在上面所描述的运维系统可以实现为用于执行本申请所描述功能的通用处理器、可编程逻辑控制器(PLC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

Claims (9)

1.一种运维方法,其特征在于,包括:
构建服务器集群的一致性哈希环;
在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理;
其中,所述构建服务器集群的一致性哈希环包括:
对服务器集群各个物理服务器节点进行压力测试,得到各个物理服务器节点的请求峰值,饱和状态下的CPU、内存和网卡的占用率;
设置一致性哈希环;
根据请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算各个物理服务器节点在哈希环上对应的虚拟节点数目;
将所有虚拟节点通过哈希函数映射到哈希环上;
其中,所述运维方法还包括:
以预定周期采集各物理服务器节点资源的使用率,动态更新虚拟节点数目,建立虚拟节点与物理服务器节点的对应关系。
2.根据权利要求1所述的运维方法,其特征在于,所述将用户请求自动定位到服务器集群下的物理服务器节点来处理包括:
计算各物理服务器节点的资源使用信息,为服务器集群分配用户请求,以达到最优化服务器负载均衡。
3.根据权利要求1或2所述的运维方法,其特征在于,所述将用户请求自动定位到服务器集群下的物理服务器节点来处理包括:
获取用户标识信息;
将用户标识信息输入预定函数,得到用户请求在哈希环上的对应位置;
在哈希环顺时针查找确定该对应位置后的第一个虚拟节点;
将用户请求由所述第一个虚拟节点对应的物理服务器节点处理。
4.根据权利要求1或2所述的运维方法,其特征在于,所述以预定周期采集各物理服务器节点资源的使用率,动态更新虚拟节点数目包括:
根据各个物理服务器节点的当前CPU、内存、网卡的占用率、和当前虚拟节点数目,确定各个物理服务器节点的虚拟节点数增量;
根据各个物理服务器节点的虚拟节点数增量,增删哈希环上的虚拟节点。
5.根据权利要求1或2所述的运维方法,其特征在于,还包括:
在新增物理服务器节点的情况下,对该物理服务器节点进行压力测试,得到该物理服务器节点的请求峰值、饱和状态下的CPU、内存和网卡的占用率;
根据该物理服务器节点的请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算该物理服务器节点在哈希环上对应的虚拟节点数目;
将该物理服务器节点对应的虚拟节点通过哈希函数映射到哈希环上。
6.根据权利要求1或2所述的运维方法,其特征在于,还包括:
在删除物理服务器节点的情况下,删除该物理服务器节点在哈希环上对应的所有虚拟节点。
7.一种运维系统,其特征在于,包括:
哈希环构建模块,用于构建服务器集群的一致性哈希环;
节点定位模块,用于在用户请求访问的情况下,将用户请求自动定位到服务器集群下的物理服务器节点来处理;
其中,哈希环构建模块,用于对服务器集群各个物理服务器节点进行压力测试,得到各个物理服务器节点的请求峰值,饱和状态下的CPU、内存和网卡的占用率;设置一致性哈希环;根据请求峰值、饱和状态下的CPU、内存和网卡的占用率,计算各个物理服务器节点在哈希环上对应的虚拟节点数目;将所有虚拟节点通过哈希函数映射到哈希环上;
其中,所述运维系统,用于以预定周期采集各物理服务器节点资源的使用率,动态更新虚拟节点数目,建立虚拟节点与物理服务器节点的对应关系;
其中,所述运维系统用于执行实现如权利要求2-6中任一项所述的运维方法的操作。
8.一种运维系统,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述运维系统执行实现如权利要求1-6中任一项所述的运维方法的操作。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1-6中任一项所述的运维方法。
CN201911342989.3A 2019-12-24 2019-12-24 运维方法和系统、计算机可读存储介质 Active CN113037791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911342989.3A CN113037791B (zh) 2019-12-24 2019-12-24 运维方法和系统、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911342989.3A CN113037791B (zh) 2019-12-24 2019-12-24 运维方法和系统、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113037791A CN113037791A (zh) 2021-06-25
CN113037791B true CN113037791B (zh) 2023-03-28

Family

ID=76451304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911342989.3A Active CN113037791B (zh) 2019-12-24 2019-12-24 运维方法和系统、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113037791B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115001969A (zh) * 2022-05-24 2022-09-02 中欣链证数字科技有限公司 一种数据存储节点部署方法、数据存储方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013178677A (ja) * 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、ディスパッチャおよび分散処理管理装置
CN104301425A (zh) * 2014-10-24 2015-01-21 南方电网科学研究院有限责任公司 基于对象类型和哈希环的对象注册中心服务集群实现方法
CN106559448A (zh) * 2015-09-28 2017-04-05 北京国双科技有限公司 服务器负载均衡方法和装置
CN107197035A (zh) * 2017-06-21 2017-09-22 中国民航大学 一种基于一致性哈希算法的亲和性动态负载均衡方法
CN108551474A (zh) * 2018-03-26 2018-09-18 南京邮电大学 一种服务器集群的负载均衡方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013178677A (ja) * 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、ディスパッチャおよび分散処理管理装置
CN104301425A (zh) * 2014-10-24 2015-01-21 南方电网科学研究院有限责任公司 基于对象类型和哈希环的对象注册中心服务集群实现方法
CN106559448A (zh) * 2015-09-28 2017-04-05 北京国双科技有限公司 服务器负载均衡方法和装置
CN107197035A (zh) * 2017-06-21 2017-09-22 中国民航大学 一种基于一致性哈希算法的亲和性动态负载均衡方法
CN108551474A (zh) * 2018-03-26 2018-09-18 南京邮电大学 一种服务器集群的负载均衡方法

Also Published As

Publication number Publication date
CN113037791A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN109246229B (zh) 一种分发资源获取请求的方法和装置
US11888756B2 (en) Software load balancer to maximize utilization
US9571570B1 (en) Weighted rendezvous hashing
US20230093389A1 (en) Service request allocation method and apparatus, computer device, and storage medium
CN105391797B (zh) 基于sdn的云服务器负载均衡方法及装置
JP5719323B2 (ja) 分散処理システム、ディスパッチャおよび分散処理管理装置
CN110798517B (zh) 去中心化集群负载均衡方法、系统、移动终端及存储介质
CN107404541B (zh) 一种对等网络传输邻居节点选择的方法及系统
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
CN111327647B (zh) 一种容器对外提供服务的方法、装置及电子设备
Hassanzadeh-Nazarabadi et al. Decentralized utility-and locality-aware replication for heterogeneous DHT-based P2P cloud storage systems
WO2016078967A1 (en) Testing systems and methods
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
Caneill et al. Locality-aware routing in stateful streaming applications
CN111562884B (zh) 一种数据存储方法、装置及电子设备
CN105872082B (zh) 基于容器集群负载均衡算法的细粒度资源响应系统
CN113037791B (zh) 运维方法和系统、计算机可读存储介质
CN111338750A (zh) 执行节点的压力调节方法、装置、服务器及存储介质
JP5540269B2 (ja) データ負荷分散配置システムおよびデータ負荷分散配置方法
CN109657801A (zh) 推荐系统的分流方法、装置及可读存储介质
CN113315825A (zh) 分布式请求的处理方法、装置、设备及存储介质
CN116962419A (zh) 服务器分配策略的生成方法及装置、电子设备及存储介质
JP5388134B2 (ja) 計算機システム、及び、移動データ決定方法
US20200314019A1 (en) Managing bandwidth based on user behavior
CN114375565B (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