CN112817836A - 一种服务器负载的确定方法、装置、设备以及存储介质 - Google Patents
一种服务器负载的确定方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN112817836A CN112817836A CN202110199904.1A CN202110199904A CN112817836A CN 112817836 A CN112817836 A CN 112817836A CN 202110199904 A CN202110199904 A CN 202110199904A CN 112817836 A CN112817836 A CN 112817836A
- Authority
- CN
- China
- Prior art keywords
- server
- load
- memory
- cpu
- determining
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 118
- 230000015654 memory Effects 0.000 claims abstract description 453
- 238000004364 calculation method Methods 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims description 33
- 230000036578 sleeping time Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 230000004622 sleep time Effects 0.000 description 9
- 238000012937 correction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036314 physical performance Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种服务器负载的确定方法、装置、设备以及存储介质,该方法包括:确定服务器的CPU负载以及服务器的内存负载;然后对服务器的CPU负载以及服务器的内存负载进行加权平均计算,得到服务器负载。这样,综合考虑了服务器的CPU负载和内存负载对服务器负载的影响,从而提高了服务器负载的计算准确度,能够准确衡量服务器的整体负载水平,为用户对服务器进行负载管理提供了有力依据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务器负载的确定方法、装置、设备以及存储介质。
背景技术
服务器负载指的是服务器资源耗费的状况,如果服务器的资源耗费过高甚至过载,就会导致服务器性能下降。因此,对服务器负载进行准确衡量,能够为服务器负载管理提供有力依据。
然而,目前业界内虽然已经存在有多种确定服务器负载的方法,但是已有的这些方法在衡量服务器负载时均存在一些固有的缺陷,导致无法准确地反映服务器负载。
发明内容
本申请提供了一种服务器负载的确定方法、装置、设备以及存储介质,能够准确衡量服务器的整体负载水平,为用户对服务器进行负载管理提供有力的依据。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种服务器负载的确定方法,该方法包括:
确定服务器的中央处理器CPU负载以及所述服务器的内存负载;
对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
如此,综合考虑了服务器的CPU负载和内存负载以及两者的权重对服务器负载的影响,提高了服务器负载的计算准确度,从而使得据此得到的服务器负载能够准确地衡量服务器的整体负载水平、资源耗费等情况,为用户进行服务器负载的管理提供有力依据。
在一些实施例中,在所述确定服务器的CPU负载以及所述服务器的内存负载之前,所述方法还包括:
对所述服务器进行配置参数统计,获取所述服务器的CPU配置数量以及内存配置容量;
对所述服务器中的虚拟机进行配置参数统计,获取所述虚拟机的虚拟CPU配置数量以及虚拟内存配置容量。
在一些实施例中,在所述确定服务器的CPU负载以及所述服务器的内存负载之前,所述方法还包括:
获取所述服务器中虚拟机的使用数据和后台服务程序的使用数据;
基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息和第一内存需求信息;
基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息和第二内存需求信息;
相应地,所述确定所述服务器的CPU负载以及所述服务器的内存负载,包括:
基于所述服务器的CPU配置数量、所述虚拟机的虚拟CPU配置数量、所述虚拟机的第一CPU需求信息和所述后台服务程序的第二CPU需求信息,利用第一计算模型得到所述服务器的CPU负载;
基于所述服务器的内存配置容量、所述虚拟机的虚拟内存配置容量、所述虚拟机的第一内存需求信息和所述后台服务程序的第二内存需求信息,利用第二计算模型得到所述服务器的内存负载。
如此,通过服务器的配置数据、虚拟机的虚拟配置数据、虚拟机的使用数据和后台服务程序的使用数据,来确定服务器的CPU负载和内存负载,使得最终得到的CPU负载和内存负载综合反映了服务器和虚拟机的配置情况以及虚拟机和后台服务程序的使用情况对服务器负载的影响,从而得到更全面综合、更能够准确反映服务器的负载水平的服务器负载。
在一些实施例中,所述基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息,包括:
基于所述虚拟机的使用数据,确定所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间;
基于所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第一CPU需求信息。
如此,根据虚拟机的虚拟线程的数据得到虚拟机的第一CPU需求信息,从而能够准确反映虚拟机在运行过程中的CPU需求情况。
在一些实施例中,所述基于所述虚拟机的使用数据,确定所述虚拟机的第一内存需求信息,包括:
基于所述虚拟机的使用数据,确定所述虚拟机在预设时间内的实际内存使用量和内存换入速率值;
基于所述虚拟机在预设时间内的实际内存使用量和内存换入速率值,确定所述第一内存需求信息。
如此,在确定虚拟机的第一内存需求信息时,不仅考虑了虚拟机的实际内存使用量,还考虑了虚拟机的内存换入速率对其内存需求的影响,准确反映了虚拟机在运行过程中的内存需求情况。
在一些实施例中,所述基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息,包括:
基于所述后台服务程序的使用数据,确定所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间;
基于所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第二CPU需求信息。
如此,根据后台服务程序的后台线程的数据得到后台服务程序的第二CPU需求信息,准确反映了后台服务线程的运行过程中的CPU需求情况。
在一些实施例中,所述基于所述后台服务程序的使用数据,确定所述后台服务程序的第二内存需求信息,包括:
基于所述后台服务程序的使用数据,确定所述后台服务程序在预设时间内的实际内存使用量;
基于所述后台服务程序在预设时间内的实际内存使用量,确定所述第二内存需求信息。
如此,根据后台服务程序的实际内存使用量得到后台服务程序的第二内存需求信息,能够准确反映后台服务程序运行中的内存需求情况。
在一些实施例中,所述对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载,包括:
基于所述服务器的CPU负载,确定第一权重值;
基于所述服务器的内存负载,确定第二权重值;
根据所述第一权重值和所述第二权重值对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载;
其中,所述第一权重值表示所述服务器的CPU负载的权重,所述第二权重值表示所述服务器的内存负载的权重。
如此,通过服务器的CPU负载确定其对应的第一权重值,通过内存负载确定其对应的第二权重值,使得在进行加权平均计算时采用的权重值是与CPU负载和内存负载相关联的,从而能够在不同的负载状态下准确地反映服务器负载情况。
在一些实施例中,所述基于所述服务器的CPU负载,确定第一权重值,包括:
将所述CPU负载与预设CPU门限值进行比较;
根据比较结果,确定所述第一权重值。
在一些实施例中,所述基于所述服务器的内存负载,确定第二权重值,包括:
将所述内存负载与预设内存门限值进行比较;
根据比较结果,确定所述第二权重值。
在一些实施例中,在所述得到所述服务器负载之后,所述方法还包括:
将所述服务器负载与预设负载门限值进行比较;
若所述服务器负载高于所述预设门限值,则对所述服务器进行负载调整。
如此,在确定服务器有可能过载时,及时对服务器进行负载调整,能够保证服务器的负载均衡。
第二方面,本申请实施例提供了一种服务器负载的确定方法,该方法包括:
接收客户端发送的服务器负载的确定请求;
响应于所述服务器负载的确定请求,确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。
如此,首先接收客户端发送的服务器负载的确定请求,再对其进行响应确定服务器负载,并根据服务器的CPU负载和内存负载确定服务器负载,从而得到更能真实得反映服务器的负载水平的服务器负载。
在一些实施例中,所述响应于所述服务器负载的确定请求,确定所述服务器负载包括:
确定服务器的CPU负载和所述服务器的内存负载;
对所述服务器的CPU负载和所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
第三方面,本申请实施例提供了一种服务器负载的确定装置,该服务器负载的确定装置包括:确定单元和计算单元;其中
所述确定单元,配置为确定服务器的CPU负载以及所述服务器的内存负载;
所述计算单元,配置为对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
第四方面,本申请实施例还提供了一种服务器负载的确定装置,该服务器负载的确定装置包括:接收单元和响应单元;其中,
所述接收单元,用于接收客户端发送的服务器负载的确定请求;
所述响应单元,用于响应于所述服务器负载的确定请求,确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。
第五方面,本申请实施例再提供了一种服务器负载的确定设备,该服务器负载的确定设备包括:存储器和处理器;其中,
所述存储器,用于存储能够在所述处理器上运行的计算机程序;
所述处理器,用于在运行所述计算机程序时,执行如第一方面中任一项或者第二方面中任一项所述方法的步骤。
第六方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项或者第二方面中任一项所述方法的步骤。
本申请实施例所提供的一种服务器负载的确定方法、装置、设备以及存储介质,通过首先确定服务器的CPU负载以及所述服务器的内存负载;再对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。这样,不仅考虑了服务器的CPU负载和内存负载对服务器负载的影响,还考虑了其权重的影响,从而提高了服务器负载的计算准确度,能够准确衡量服务器的整体负载水平,为用户对服务器进行负载管理提供了有力依据。
附图说明
图1为本申请实施例提供的一种服务器负载的确定方法的流程示意图;
图2为本申请实施例提供的另一种服务器负载的确定方法的流程示意图;
图3为本申请实施例提供的又一种服务器负载的确定方法的流程示意图;
图4为本申请实施例提供的再一种服务器负载的确定方法的流程示意图;
图5为本申请实施例提供的一种服务器负载的确定装置的组成结构示意图;
图6为本申请实施例提供的另一种服务器负载的确定装置的组成结构示意图;
图7为本申请实施例提供的一种服务器负载的确定设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
服务器(Server):服务器是指网络中能对其它机器提供某些服务的计算机系统,或者指某些高性能计算机,能通过网络对外提供服务,具有高速度的运算能力、长时间的可靠运行以及强大的外部数据吞吐能力。
主机(Host):物理服务器,在申请实施例中特指承载了虚拟机业务的物理服务器。
中央处理器(Central Processing Unit,CPU):是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。
虚拟机(Virtual Machine,VM):运行于主机上的一种特殊的程序,对下层物理机表现为特殊的进程,对上层用户表现为一个虚拟的服务器环境。每个虚拟机都会配置若干个虚拟处理器(virtual CPU,vCPU)和若干容量的虚拟内存(virtual Memory,vMem)。
虚拟处理器/虚拟CPU(vCPU):虚拟机对上层业务展示的处理器,在主机上表现为一个线程,vCPU的数量在虚拟机启动前得到配置。
虚拟内存(vMem):虚拟机对上层业务展示的内存设备,在主机上表现为一块被虚拟机进程占用的内存空间。vMem的大小在虚拟机启动前得到配置。
CPU运行队列(CPU running list):操作系统为每个线程指定一个运行的CPU位置,如果有多个线程运行在同一个CPU上,那么它们就构成这个CPU的运行队列,运行队列中的线程通过时分复用的方式共同使用CPU资源。在任意时刻,只有运行队列的首位的线程才能真正使用CPU资源,其余线程处于等待状态。
内存交换(Memory Swapping):内存页在物理内存和磁盘之间转移的行为,一般发生在物理内存容量不足以满足程序的需求时。从物理内存转移到磁盘称为换出(swap-out),反之称为换入(swap-in)。内存交换速率即单位时间内换入换出的数据量,内存换入速率即单位时间内换入的数据量。
CPU负载:在本申请实施例中,CPU负载是反映服务器CPU的繁忙程度的指标。
内存负载:在本申请实施例中,内存负载是反映服务器的内存使用情况的指标。
服务器负载:服务器负载是对服务器当前工作状态的衡量,服务器负载过高可能会导致无法及时处理请求和操作,甚至导致死机。
可以理解,准确地衡量服务器负载情况可以为服务器的资源管理和调度提供有力依据。在本申请实施例中,主机指承载了虚拟机业务的物理服务器,因此,本申请实施例中的服务器负载也可以称为主机负载。目前已有的服务器负载衡量指标均存在一些固有的缺陷。例如:
(1)使用服务器上的全部虚拟机的CPU利用率总和作为负载指标。此方案未考虑服务器上运行的虚拟化后台服务的资源消耗,从而无法准确反映服务器负载。
(2)使用服务器上所有进程(包括虚拟机和后台服务)的CPU利用率作为负载指标。从CPU利用率的定义出发,简单来说,CPU利用率是指某一时间段内,CPU实际被使用的时间占该时间段的比例,即CPU利用率最高为100%。这时候如果向这样的服务器继续增加虚拟机业务,负载指标并不会提升,也就不能反映负载的增加。
(3)使用服务器的CPU运行队列长度作为负载指标。Linux系统的Top命令即采用了这种方案。此方案可以区分CPU利用率达到100%之后的负载轻重。但是此方案只考虑了CPU的使用,未考虑内存的使用。
(4)使用CPU利用率和内存利用率的平均值作为负载指标。此方案未充分考虑CPU利用率与内存利用率对业务性能的不同影响,结果容易产生误导,也不能准确反映服务器负载情况。
基于此,本申请实施例提供了一种服务器负载的确定方法,该方法的基本思想是:确定服务器的CPU负载以及所述服务器的内存负载;对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。这样,通过确定服务器的CPU负载以及服务器的内存负载,并对其进行加权平均计算得到服务器负载;如此综合考虑了服务器的CPU负载和内存负载对服务器负载的影响,从而提高了服务器负载的计算准确度,能够准确衡量服务器的整体负载水平,为用户对服务器进行负载管理提供了有力依据。
下面将结合附图对本申请各实施例进行详细说明。
本申请的一实施例中,参见图1,其示出了本申请实施例提供的一种服务器负载的确定方法的流程示意图。如图1所示,该方法可以包括:
S101:确定服务器的CPU负载。
S102:确定服务器的内存负载。
需要说明的是,本申请实施例提供的方法可以应用于服务器负载的确定装置,或者集成有该装置的设备。这里,设备可以是诸如计算机、智能手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、导航装置、服务器等等,本申请实施例对此不作具体限定。
还需要说明的是,本申请实施例得到服务器负载是根据服务器的CPU负载和服务器的内存负载进行确定的,因此,需要首先确定服务器的CPU负载和服务器的内存负载。这里步骤S101和S102可以同时进行也可以按照任意顺序先后进行,本申请实施例对此不作具体限定。
S103:对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
需要说明的是,本申请实施例综合考虑了服务器的CPU负载和内存负载对服务器负载的影响,同时还考虑了两者的权重。且其权重与CPU负载和内存负载有关,当CPU负载和内存负载发生变化时,CPU负载和内存负载对服务器负载影响的权重也将会不同。
也就是说,在确定出服务器的CPU负载和内存负载之后,可以进一步对CPU负载和内存负载进行加权平均计算,最终确定出服务器负载。这样,本申请实施例综合考虑了服务器的CPU负载和内存负载以及其权重对服务器负载的影响,从而能够提高确定服务器负载的准确度。
本实施例提供了一种服务器负载的确定方法,通过确定服务器的CPU负载以及服务器的内存负载,再对服务器的CPU负载和内存负载进行加权平均计算,得到服务器负载。如此不仅考虑了服务器的CPU负载和内存负载对服务器负载的影响,同时还考虑了二者的权重,极大地提高了服务器负载的计算准确度,为服务器负载管理提供了有力依据。
本申请的另一实施例中,参见图2,其示出了本申请实施例提供的另一种服务器负载的确定方法的流程示意图。如图2所示,该方法可以包括:
S201:对服务器以及服务器中的虚拟机进行配置参数统计。
需要说明的是,在本申请实施例中,确定服务器负载时还考虑了服务器和虚拟机的实际配置情况对服务器负载的影响,因此首先需要获取服务器的配置数据和虚拟机的虚拟配置数据。这里,服务器的配置数据取决于服务器自身的物理性能,虚拟机的配置数据在虚拟机启动之前被配置,虚拟机可以是运行于该服务器上的虚拟机,可以理解,服务器上可以运行多个虚拟机,因此,虚拟机的数量为至少一个。
具体地,在一些实施例中,该方法可以包括:
对所述服务器进行配置参数统计,获取所述服务器的CPU配置数量以及内存配置容量;
对所述服务器中的虚拟机进行配置参数统计,获取所述虚拟机的虚拟CPU配置数量以及虚拟内存配置容量。
需要说明的是,在本申请实施例中,服务器可以为虚拟机所在的主机,获取服务器的配置数据包括获取服务器的CPU配置数据以及内存配置数据。具体地,获取服务器的CPU配置数据是指获取服务器的CPU配置数量。这里,服务器的CPU配置数量可以指服务器的逻辑CPU数量,举例来说,物理CPU数量是指主板上实际插入的CPU数量;CPU核数是指单块CPU上面能处理数据的芯片组的数量,如双核、四核等;一般情况下,逻辑CPU数量=物理CPU数量×CPU核数,如果开启了超线程,逻辑CPU数量=物理CPU数量×CPU核数×超线程数。获取服务器的内存配置数据可以指获取服务器的内存配置容量,即获取服务器的内存总容量。
还需要说明的是,在本申请实施例中,虚拟机可以指运行在该服务器上的虚拟机。获取虚拟机的配置数据可以包括获取所有虚拟机各自的虚拟CPU配置数量以及虚拟内存配置容量,各虚拟机的虚拟CPU数量和虚拟内存容量均在虚拟机启动前被配置。可以理解的是,实际使用中,可以根据需求给一个虚拟机配置一个或多个虚拟CPU,也可以多个虚拟机共享一个虚拟CPU。优选地,本申请实施例获取所有虚拟机的配置数据。
S202:获取所述服务器中虚拟机的使用数据以及后台服务程序的使用数据。
需要说明的是,在本申请实施例中,还考虑了服务器上的虚拟机和后台服务程序在运行过程中的实际使用情况对于服务器负载的影响,因此还需要获取虚拟机的使用数据以及后台服务程序的使用数据。优选地,本申请实施例获取所有虚拟机和所有后台服务程序的使用数据。
可以理解的是,在服务器的运行过程中,可能存在多个线程同时运行,这多个线程可以包括服务器上运行的虚拟机的虚拟线程和服务器上运行的后台服务程序的后台线程,运行中的虚拟线程和后台线程都会占用服务器的CPU资源、内存资源等。可以理解,服务器上运行的虚拟机和后台服务程序的数量都可以为多个,因此,在本申请实施例中,虚拟机和后台服务程序的数量都为至少一个。对于虚拟机和后台服务程序,其各自可以包括多个线程,因此,在本申请实施例中,归属于虚拟机的虚拟线程的数量为至少一个,归属于后台服务程序的后台线程的数量为至少一个。
具体地,获取各虚拟机的使用数据可以包括:获取所述虚拟机各自的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间;以及,所述虚拟机各自在预设时间内的实际内存使用量和内存换入速率值。获取各后台服务程序的使用数据可以包括:获取所述后台服务程序各自的后台线程在预设时间内的运行时间、等待时间和睡眠时间;以及,所述后台服务程序各自在预设时间内的实际内存使用量。
还需要说明的是,上述虚拟线程/后台线程的运行时间是指在预设时间内,该线程实际使用CPU的时间;等待时间是指在预设时间内,该线程位于CPU运行队列中但是不使用CPU资源的时间;睡眠时间是指该线程不处于CPU运行队列中的时间。
还需要说明的是,虚拟机在预设时间内的实际内存使用量是指该虚拟机在该预设时间内从虚拟机内部观察的实际使用量。例如,假定某虚拟机分配了512M的虚拟内存,该虚拟机在运行过程中实际使用了330M的虚拟内存,那么该虚拟机的实际内存使用量即为330M。上述虚拟机在预设时间内的内存换入速率值是指该虚拟机单位时间的内存换入量,如果该预设时间为单位时间,则该预设时间的内存换入量的值即为内存换入速率值;如果该预设时间不为单位时间,则内存换入速率值为该预设时间内的内存换入量与预设时间的比值。
还需要说明的是,后台服务程序在预设时间的实际内存使用量是指在预设时间内,该后台服务程序实际的物理内存使用量。
S203:基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息。
需要说明的是,在获取虚拟机的使用数据之后,就可以根据虚拟机的使用数据来确定虚拟机的第一CPU需求信息。具体地,在一些实施例中,所述基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息,可以包括:
基于所述虚拟机的使用数据,确定所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间;
基于所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第一CPU需求信息。
还需要说明的是,这里用到的虚拟机的使用数据可以包括:归属于虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间。
还需要说明的是,这里,将所有虚拟机中的任意一虚拟机记为第一虚拟机,可以理解,第一虚拟机可以包括多个虚拟线程,即虚拟线程的数量为至少一个。这里,先确定任意一虚拟线程的线程CPU需求时间,其中,对于第t虚拟线程而言,在预设时间内,Treq(t)表示第t虚拟线程的线程CPU需求时间;CPUuse(t)表示第t虚拟线程的线程运行时间;CPUsleep(t)表示第t虚拟线程的线程睡眠时间;CPUwait(t)表示第t虚拟线程的线程等待时间。如此,根据式(1)就可以确定第一虚拟机中第t虚拟线程的线程CPU需求时间,如下所示。
这里,CPUuse(t)表示在预设时间内,第t虚拟线程实际使用CPU的时间;表示在预设时间内,第t虚拟线程虽然没有实际使用CPU但是有可能占用CPU的估计时间值;两者相加即可以得到在预设时间内的第t虚拟线程的线程CPU需求时间。
在得到在预设时间内第t虚拟线程的线程CPU需求时间后,还可以确定出第t虚拟线程的线程CPU需求信息。其中,CPUreq(t)表示第t虚拟线程的线程CPU需求信息;Treq(t)表示第t虚拟线程的线程CPU需求时间;T表示预设时间。如此,根据式(2)即可计算出第t虚拟线程的线程CPU需求信息。这里,线程CPU需求信息即为在预设时间内线程CPU需求时间占预设时间的比例,也可以理解为单位时间内线程占用CPU的时间。
在得到第v虚拟机中各虚拟线程的线程CPU需求信息之后,根据式(3)可以确定第v虚拟机的CPU需求信息。其中,CPUreq(v)表示第v虚拟机的CPU需求信息;CPUreq(t)表示第t虚拟线程的线程CPU需求信息;t表示一虚拟线程;V表示第v虚拟机中的所有虚拟线程。也就是说,对第v虚拟机中的所有虚拟线程的线程CPU需求信息进行求和计算,得到第v虚拟机的CPU需求信息。
CPUreq(v)=∑t∈VCPUreq(t) (3)
在得到第v虚拟机的CPU需求信息之后,可以根据式(4)确定出第一CPU需求信息。这里,优选地,第一CPU需求信息包括服务器上运行的所有虚拟机的CPU需求信息。其中,CPUreq1表示第一CPU需求信息;CPUreq(v)表示第v虚拟机的CPU需求信息;v表示一虚拟机;h表示服务器上运行的所有虚拟机。也就是说,对服务器上运行的所有虚拟机的CPU需求信息进行求和计算,得到第一CPU需求信息。
CPUreq1=∑v∈hCPUreq(v) (4)
S204:基于所述虚拟机的使用数据,确定所述虚拟机的第一内存需求信息。
需要说明的是,在获取虚拟机的使用数据后,就可以根据虚拟机的使用数据来确定虚拟机的第一内存需求信息。具体地,在一些实施例中,所述基于所述虚拟机的使用数据,确定所述虚拟机的第一内存需求信息,可以包括:
基于所述虚拟机的使用数据,确定所述虚拟机在预设时间内的实际内存使用量和内存换入速率值;
基于所述虚拟机在预设时间内的实际内存使用量和内存换入速率值,确定所述第一内存需求信息。
需要说明的是,这里,将虚拟机中的任意一虚拟机记为第一虚拟机。这里用到的第一虚拟机的使用数据可以包括:第一虚拟机在预设时间内的实际内存使用量和内存换入速率值。
具体来说,先根据式(5)确定第一虚拟机的内存需求信息。其中,MEMreq(v)表示第v虚拟机的内存需求信息;MEMuse(v)表示第v虚拟机在预设时间内的实际内存使用量;T表示预设时间;MSIPS(v)表示第v虚拟机在预设时间内的内存换入速率值。
需要说明的是,代表了在预设时间内,第v虚拟机在单位时间内的实际内存使用量;MSIPS(v)代表了在预设时间内,第v虚拟机在单位时间内的内存换入量的值;这样,将两者的值相加就能够得到第v虚拟机的内存需求。可以理解的是,这里得到的内存需求信息是指第v虚拟机在单位时间内的内存需求。
在得到第v虚拟机的内存需求信息后,根据式(6)确定第一内存需求信息。其中,MEMreq1表示第一内存需求信息;MEMreq(v)表示第v虚拟机的内存需求;v表示一虚拟机;h表示服务器上运行的所有虚拟机。也就是说,对服务器上运行的所有虚拟机的内存需求信息进行求和计算,得到第一内存需求信息。
MEMreq1=∑v∈hMEMreq(v) (6)
S205:基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息。
需要说明的是,在获取后台服务程序的使用数据之后,就可以根据后台服务程序的使用数据来确定后台服务程序的第二CPU需求信息。具体地,在一些实施例中,所述基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息,可以包括:
基于所述后台服务程序的使用数据,确定所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间;
基于所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第二CPU需求信息。
需要说明的是,这里,将后台服务程序中的任意一后台服务程序记为第一后台服务程序。这里用到的第一后台服务程序的使用数据包括:归属于第一后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间。可以理解,第一后台服务程序可以包括多个后台线程,即后台线程的数量为至少一个。
需要说明的是,确定第二CPU需求的方法与确定第一CPU需求的方法相同,不同之处在于最初使用的数据为归属于第一后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间;中间过程得到的分别是第一后台服务程序的CPU需求时间和CPU需求信息;最终得到的是第二CPU需求信息。即将步骤S203的计算过程中用到的虚拟机或虚拟线程的数据全部替换为后台服务程序或后台线程的数据,故此处不再赘述。
S206:基于所述后台服务程序的使用数据,确定所述后台服务程序的第二内存需求信息。
需要说明的是,在获取后台服务程序的使用数据后,就可以根据后台服务程序的使用数据来确定后台服务程序的第二内存需求信息。具体地,在一些实施例中,所述基于所述后台服务程序的使用数据,确定所述后台服务程序的第二内存需求信息,可以包括:
基于所述后台服务程序的使用数据,确定所述后台服务程序在预设时间内的实际内存使用量;
基于所述后台服务程序在预设时间内的实际内存使用量,确定所述第二内存需求信息。
需要说明的是,这里,将所有后台服务程序中的任意一后台服务程序记为第一后台服务程序。这里用到的第一后台服务程序的使用数据可以包括:第一后台服务程序在预设时间内的实际内存使用量。
具体来说,先根据式(7)确定第一后台服务程序的内存需求信息。其中,MEMreq(s)表示第s后台服务程序的内存需求信息;MEMuse(s)表示第s后台服务程序在预设时间内的实际内存使用量;T表示预设时间。也就是说,这里,第s后台服务程序的内存需求信息是指单位时间内第s后台服务程序的实际内存使用量。
在得到第s后台服务程序的内存需求信息后,根据式(8)确定第二内存需求信息。其中,MEMreq2表示第二内存需求信息;MEMreq(s)表示第s后台服务程序的内存需求信息;s表示一后台服务程序;h表示服务器上运行的所有后台服务程序。也就是说,对服务器上运行的所有后台服务程序的内存需求信息进行求和计算,得到第二内存需求信息。
MEMreq2=∑s∈hMEMreq(s) (8)
需要说明的是,这里的步骤S203、S204、S205、S206之间并不存在先后顺序之分,它们可以同时进行,也可以按照任意顺序进行,步骤序号并不构成对其顺序的限定。
S207:确定所述服务器的CPU负载。
S208:确定所述服务器的内存负载。
需要说明的是,基于虚拟机的使用数据,确定虚拟机的第一CPU需求信息和第一内存需求信息,以及基于后台服务程序的使用数据,确定后台服务程序的第二CPU需求信息和第二内存需求信息后,就可以基于第一CPU需求信息、第一内存需求信息、第二CPU需求信息、第二内存需求信息、服务器的配置数据以及虚拟机的配置数据来确定服务器的CPU负载以及服务器的内存负载。具体地,在一些实施例中,所述确定所述服务器的CPU负载以及所述服务器的内存负载,可以包括:
基于所述服务器的CPU配置数量、所述虚拟机的虚拟CPU配置数量、所述虚拟机的第一CPU需求信息和所述后台服务程序的第二CPU需求信息,利用第一计算模型得到所述服务器的CPU负载。
基于所述服务器的内存配置容量、所述虚拟机的虚拟内存配置容量、所述虚拟机的第一内存需求信息和所述后台服务程序的第二内存需求信息,利用第二计算模型得到所述服务器的内存负载。
也就是说,在确定服务器的CPU负载时,主要用到的是服务器的CPU配置数量、虚拟机的虚拟CPU配置数量、虚拟机的第一CPU需求信息和后台服务程序的第二CPU需求信息。
需要说明的是,利用第一计算模型得到所述服务器的CPU负载具体可以为根据式(9)确定服务器的CPU负载。其中,CPUload表示服务器的CPU负载;CPUreq1表示第一CPU需求信息;CPUreq2表示第二CPU需求信息;CPUconf(v)表示虚拟机的虚拟CPU配置数量;CPUcap表示服务器的CPU配置数量;A表示第一CPU需求信息的权重值;B表示虚拟机的CPU配置数量的权重值。这时候服务器的CPU负载的计算如下所示,
换句话说,本申请实施例在计算服务器的CPU负载时,不仅考虑了运行中的各虚拟机和各后台服务程序使用CPU的数据,还考虑了虚拟机的虚拟CPU的配置数据,同时还考虑了虚拟机的CPU运行数据与CPU配置数据的权重,体现了虚拟机数量和虚拟机的虚拟CPU配置数量对服务器负载的影响。
对于A和B来说,在一种可能的实施方式中,A+B=1。在另一种可能的实施方式中,A=0.8,B=0.2。
还需要说明的是,在确定服务器的内存负载时,主要用到的是服务器的内存配置容量、虚拟机的虚拟内存配置容量、虚拟机的第一内存需求信息和后台服务程序的第二内存需求信息。
这里,利用第二计算模型得到所述服务器的内存负载具体可以为根据式(10)确定服务器的内存负载。其中,MEMload表示服务器的内存负载;MEMreq1表示第一内存需求信息;MEMreq2表示第二内存需求信息;MEMconf(v)表示虚拟机的虚拟内存配置容量;MEMcap表示服务器的内存配置容量;C表示第一内存需求信息的权重值;D表示虚拟机内存配置容量的权重值。这时候服务器的内存负载的计算如下所示,
可以看出,本申请实施例在计算服务器的内存负载值时,不仅考虑了运行时各虚拟机和各后台服务程序使用内存的数据,还考虑了虚拟机的虚拟内存配置数据,同时还考虑了虚拟机的内存运行数据与内存配置数据的权重,体现了虚拟机数量和虚拟机的虚拟内存配置容量对服务器负载的影响。
对于C和D来说,在一种可能的实施方式中,C+D=1。在另一种可能的实施方式中,C=0.8,D=0.2。
在本申请实施例中,上述权重A、B、C、D的取值可以根据实际情况进行具体设定,这里不作任何限定。
还需要说明的是,步骤S207与步骤S208也无先后顺序的具体限定,它们可以同时进行,也可以按照任意顺序进行,步骤序号不构成对其顺序的限定。
S209:对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
需要说明的是,确定服务器的CPU负载和服务器的内存负载后,就可以对CPU负载和内存负载进行加权平均计算,以得到服务器负载。
在一些实施例中,所述对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载,可以包括:
基于所述服务器的CPU负载,确定第一权重值;
基于所述服务器的内存负载,确定第二权重值;
根据所述第一权重值和所述第二权重值对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载;
其中,所述第一权重值表示所述服务器的CPU负载的权重,所述第二权重值表示所述服务器的内存负载的权重。
需要说明的是,在确定服务器负载时,可以通过式(11)先确定CPU负载修正值。其中,cCPUload表示CPU负载修正值;CPUload表示服务器的CPU负载;WCPU表示第一权重值,即服务器的CPU负载值的权重;也就是,将第一权重值和服务器的CPU负载之积确定为CPU负载修正值。
cCPUload=CPUload×WCPU (11)
可以通过式(12)先确定内存负载修正值,cMEMload表示内存负载修正值;MEMload表示服务器的内存负载;WMEM表示第二权重值,即服务器的内存负载的权重;也就是,将第二权重值和服务器的内存负载之积确定为内存负载修正值。
cMEMload=MEMload×WMEM (12)
进一步地,根据式(13)确定服务器负载。其中,Load表示服务器负载;cCPUload表示服务器的CPU负载修正值;cMEMload表示服务器的内存负载修正值;WCPU表示第一权重值;WMEM表示第二权重值。
此外,对于第一权重值和第二权重值,可以根据CPU负载和内存负载进行确定。在一种具体的实施例中,所述基于所述服务器的CPU负载,确定第一权重值,可以包括:
将所述CPU负载与预设CPU门限值进行比较;
根据比较结果,确定所述第一权重值。
进一步地,在一些实施例中,所述根据比较结果,确定所述第一权重值,可以包括:
若所述CPU负载小于所述预设CPU门限值,则将第一权重值设置为1;
若所述CPU负载大于或等于所述预设CPU门限值,则将第一权重值设置为3。
需要说明的是,当服务器的CPU负载小于预设CPU门限值时,说明此时CPU的负载情况比较正常,此时第一权重值可以设置为较小值1;当服务器的CPU负载值大于或等于预设门限值时,说明此时CPU负载较高或者处于过载状态,此时第一权重值可以设置为较大值3。其中,预设CPU门限值可以为根据理论/实践得到的CPU过载时的门限值,或者根据理论/实践得到的会使虚拟机或服务器性能下降的门限值。优选地,本申请实施例中,预设CPU门限值为1。在实际使用中,也可以结合服务器性能等设置预设CPU门限值。
示例性地,当预设CPU门限值为1时,根据式(14)确定第一权重值,其中,WCPU表示第一权重值,CPUload表示服务器的CPU负载。
这时候,如果CPU负载小于1,那么将第一权重值设置为1;如果CPU负载大于或等于1,那么将第一权重值设置为3。
在一种具体的实施例中,所述基于所述服务器的内存负载,确定第二权重值,可以包括:
将所述内存负载与预设内存门限值进行比较;
根据比较结果,确定所述第二权重值。
进一步地,预设内存门限值可以包括第一预设内存门限值和第二预设内存门限值,且第一预设内存门限值小于第二预设内存门限值。在一些实施例中,所述根据比较结果,确定所述第二权重值,可以包括:
若所述内存负载小于第一预设内存门限值,则将第二权重值设置为0;
若所述内存负载大于或等于第一预设内存门限值,且所述内存负载值小于第二预设内存门限值,则将第二权重值设置为1;
若所述内存负载大于或等于第二预设内存门限值,则将第二权重值设置为3。
需要说明的是,当服务器的内存负载小于第一预设内存门限值时,说明此时服务器内存负载较低,内存充足,基本不会对虚拟机或服务器的性能产生影响,此时将第二权重值设置为0;当服务器的内存负载值大于或等于第一预设内存门限值且小于第二预设内存门限值时,说明此时服务器的内存负载相对较高,但是对虚拟机或服务器的性能影响较小,此时将第二权重值设置为1;当服务器的内存负载大于或等于第二预设内存门限值时,说明此时服务器的内存负载较高或者处于过载状态,已经对虚拟机或服务器的性能产生较大影响,导致性能下降,此时将第二权重值设置为3。其中,第一预设内存门限值可以为根据理论/实践得到的对虚拟机/服务器性能产生轻微影响时的门限值;第二预设内存门限值可以为根据理论/实践得到的服务器内存过载时的门限值,或者根据理论/实践得到的会使虚拟机或服务器性能明显下降的门限值。优先地,在本申请实施例中,第一预设内存门限值为0.5;第二预设内存门限值为1。在实际使用中,也可以结合服务器性能等设置第一预设内存门限值和第二预设内存门限值。
示例性地,当第一预设内存门限值为0.5,第二预设内存门限值为1时,根据式(15)确定第二权重值。其中,WMEM表示第二权重值;MEMload表示服务器的内存负载。
这时候,如果内存负载小于0.5,那么将第二权重值设置为0;如果内存负载大于或等于0.5且小于1,那么将第二权重值设置为1;如果内存负载大于或等于1,那么将第二权重值设置为3。
还可以理解,在确定出服务器负载之后,可以根据服务器负载判断服务器的负载状态,以确定是否需要进行负载调整。具体地,在一些实施例中,在所述得到所述服务器负载之后,该方法还可以包括:
将所述服务器负载与预设负载门限值进行比较;
若所述服务器负载高于所述预设门限值,则对所述服务器进行负载调整。
需要说明的是,当确定服务器负载之后,就可以根据服务器负载值对服务器负载进行合理的管理。例如,将服务器负载与预设门限值进行比较,如果服务器负载高于该预设门限值,就对服务器进行负载调整。其中,预设门限值可以为根据理论/实践得出的服务器过载时的服务器负载值,也可以为会使虚拟机/服务器性能明显下降的服务器负载临界值。预设门限值可以为1、0.99、0.95、0.9等,也可以根据不同服务器的性能进行设置,本申请实施例对此不做具体限定。
进一步地,在一些实施例中,所述对所述服务器进行负载调整,可以包括:
将所述服务器负载高于所述预设门限值的服务器上的虚拟机部分迁移至其它空闲服务器上。
需要说明的是,在对服务器进行负载调整时,可以将过载/负载较高的服务器上的虚拟机部分迁移到其它空闲服务器上,使得过载/负载较高的服务器负载降至正常水平,从而使服务器性能得到恢复。
进一步地,在一些实施例中,所述对所述服务器进行负载调整,可以包括:
关闭预设后台服务程序。
需要说明的是,在对服务器进行负载调整时,可以关闭部分预设后台服务程序。这里预设后台服务程序可以为预先设置的不重要且关闭后不会影响服务器和虚拟机正常运行的后台程序,可以关闭一个或者多个从而使服务器负载恢复至正常水平,可以按照预设的重要程度先关闭最不重要的预设后台服务程序。根据实际设置,可以为用户手动关闭,也可以为系统关闭,本申请实施例对此不做具体限定。
进一步地,在一些实施例中,若所述服务器负载不高于第二预设门限值,则将部分虚拟机合并到同一服务器上,并关闭空闲的服务器。
需要说明的是,如果所有服务器的服务器负载都不高于第二预设门限值,则可以在不使任一服务器过载的前提下,将某几台服务器的虚拟机合并到某一台服务器上,并在合并后关闭空闲的服务器,从而在保证服务器正常运行时节省能耗。这里的第二预设门限值小于或等于预设门限值。
在本申请实施例中,最终得到的服务器负载是一个能够衡量服务器资源耗费情况的值,是无量纲的。另外,本申请实施例提供的各种计算公式中,只对数值进行计算,不对单位进行计算。还需要注意的是,虽然不对单位进行计算,但是在获取数据时,相同概念的物理量的单位保持一致。
本实施例提供了一种服务器负载的确定方法,通过该实施例对前述实施例的具体实现过程进行了详细阐述。从中可以看出,基于虚拟机的使用数据确定虚拟机的第一CPU需求信息和第一内存需求信息;基于后台服务程序的使用数据确定后台服务程序的第二CPU需求信息和第二内存信息;再结合服务器和虚拟机的配置数据确定服务器的CPU负载值和内存负载值;最后对服务器的CPU负载和内存负载进行加权平均计算得到服务器负载。这样,综合考虑服务器和虚拟机的配置数据、虚拟机和后台服务程序运行中的使用信息,并结合权重值最终得到能够准确衡量服务器资源耗费情况的服务器负载。
需要说明的是,在本申请实施例中,服务器可以指虚拟机所在的主机,因此,也可以将服务器负载称为主机负载。在下一实施例中,将服务器称为主机对该实施例的实现过程进行具体阐述,可以理解,这里的主机负载与前述实施例的服务器负载可以代表相同的含义。
在本申请的再一实施例中,参见图3,其示出了本申请实施例提供的再一种服务器负载的确定方法的流程示意图。如图3所示,这时候服务器负载以主机负载为例,该方法可以包括:
S301:统计主机的配置数据以及虚拟机的配置数据。
需要说明的是,统计主机的配置数据包括统计主机的CPU和内存配置,主机的CPU和内存指的是物理CPU和物理内存;统计虚拟机的配置数据包括统计虚拟机的虚拟CPU和虚拟内存配置。具体可以包括:
统计主机的CPU数量,这里的主机的CPU数量指的是逻辑核数,即主机的逻辑CPU数量;将主机的CPU数量记作CPUcap;
统计主机的内存总容量;将主机的内存总容量记作MEMcap;
统计各虚拟机配置的虚拟处理器vCPU的数量,将虚拟机的vCPU的数量记作CPUconf(v)。
统计各虚拟机配置的虚拟内存vMem的容量,将虚拟机的vMem的容量记作MEMconf(v)。
S302:获取后台服务的使用数据以及虚拟机的使用数据。
需要说明的是,在运行时抓取各虚拟机和后台服务的CPU使用数据和内存使用数据。具体地,可以按照一定的时间间隔,来获取各虚拟机和各后台服务的CPU和内存相关数据。还需要说明的是,这里的后台服务即指本申请实施例所述的后台服务程序(或者也可以称为“后台服务进程”),将后台服务视作后台服务程序或者后台服务进程不会影响最终结果。
对于虚拟机和和后台服务而言,每个运行中的虚拟机和后台服务都对应有至少一个运行的线程,因此,在步骤S3021~S3023中获取各线程(包括虚拟机对应的虚拟线程和后台服务对应的后台线程)的使用数据,具体可以包括:
S3021:获取线程运行时间。
需要说明的是,线程运行时间表示的是在获取数据的这段时间间隔内,线程有多少时间是实际使用了CPU,对于线程t的运行时间,记作CPUuse(t)。
S3022:获取线程等待时间。
需要说明的是,线程等待时间表示的是在获取数据的这段时间间隔内,线程位于CPU运行队列中但不使用CPU资源的时间,对于线程t的等待时间,类似地,记作CPUwait(t)。
S3023:获取线程睡眠时间。
需要说明的是,线程睡眠时间表示的是在获取数据的这段时间间隔内,线程不处于CPU运行队列中的时间,对于线程t的睡眠时间,类似地,记作CPUsleep(t)。
进一步地,在步骤S3024~S3026中获取各虚拟机和后台服务的内存使用相关数据,具体可以包括:
S3024:获取后台服务的内存使用量。
需要说明的是,这里获取后台服务的内存使用量是指获取各后台服务的物理内存使用量,记作MEMuse(s)。
S3025:获取虚拟机的内存使用量。
需要说明的是,这里获取虚拟机的内存使用量是指获取各虚拟机的实际内存使用量,即从虚拟机内部观察到的实际使用量,记作MEMuse(v)。
S3026:获取虚拟机的内存换入速率。
需要说明的是,这里获取虚拟机的内存换入速率是指获取各虚拟机单位时间的内存换入量。记作MSIPS(v),如果获取数据的时间间隔为单位时间,则检测到的内存换入量即为内存换入速率,如果获取数据的时间间隔不是单位时间,则内存换入速率为检测到的内存换入量与时间间隔的比值。
获取主机的配置数据、各虚拟机的配置数据、各后台服务的使用数据以及各虚拟机的使用数据后,就可以根据获取到的数据来计算主机CPU负载和主机内存负载。
需要说明的是,对于步骤S3021~S3026,获取各使用数据可以是同时进行或者是以任意顺序进行获取的,步骤序号并不构成对其顺序的限定。
S3031:计算主机CPU负载。
需要说明的是,计算主机CPU负载之前需要先计算各虚拟机的CPU需求以及各后台服务的CPU需求,具体为:
首先根据式(16)计算各虚拟线程和后台线程的CPU需求:
其中,CPUreq(t)表示线程的CPU需求;CPUuse(t)表示线程运行时间;CPUwait(t)表示线程等待时间;CPUsleep(t)表示线程睡眠时间;T表示获取数据的时间间隔。
当获取数据的时间间隔T为单位时间时,式(14)可简化为式(17),如下所示:
线程的CPU需求实际是代表了在一定的时间间隔内,线程实际使用CPU的时间占该时间间隔的比例,也可以理解为线程在单位时间内占用CPU的时间。
确定各线程的CPU需求后,就可以根据各线程的CPU需求确定各虚拟机和各后台服务的CPU需求。对于各虚拟机和后台服务,它们的CPU需求为所属的所有线程的CPU需求总和。
需要说明的是,确定各虚拟机和各后台服务的CPU需求的方法与上一实施例步骤S203和S205相同,即对属于各虚拟机/后台服务的线程CPU需求进行求和,具体计算公式可参照式(3),此处不再赘述。
确定各虚拟机和各后台服务的CPU需求后,就可以计算主机CPU负载。具体地,根据式(18)计算主机CPU负载:
其中,h表示主机;s表示后台服务;v表示虚拟机;CPUload(h)表示主机CPU负载,其值即为步骤S301中统计的CPUload;CPUreq(s)表示该主机上运行的各后台服务的CPU需求;CPUreq(v)表示该主机上运行的各虚拟机的CPU需求;CPUconf(v)表示该主机上各虚拟机配置的虚拟处理器的数量;CPUcap(h)表示主机的CPU数量,其值即为步骤S301中统计的CPUcap。
在式(18)中,分母为主机的CPU数量,分子包含三个项,分别与后台服务的CPU需求、虚拟机的CPU需求、虚拟机的vCPU配置有关。后两项的权重0.8和0.2为实践中总结出的经验值,但是也可以取其它值,例如和为1的两个值。本实施例的计算方法不仅包含了运行时的CPU需求数据,也包含了虚拟机的虚拟处理器配置数据,体现了虚拟机数量和虚拟机的虚拟处理器配置数量对主机CPU负载的影响。
还需要说明的是,在一台主机上可能存在有多个虚拟机,有的处于运行状态,有的并没有在运行,对于运行中的虚拟机,其既存在运行时的CPU需求,又存在虚拟处理器配置;对于没有运行的虚拟机,其只存在虚拟处理器配置,不存在运行时的CPU需求。因此,在式(18)中,对于没有运行的虚拟机的CPU需求CPUreq(v)的取值为0。
S3032:计算主机内存负载。
需要说明的是,在计算主机内存负载时,对于后台服务,其内存需求即为步骤S3024中获取的后台服务在运行过程中实际的物理内存使用量与获取数据的时间间隔的比值。
具体地,根据式(19)计算各后台服务的内存需求。其中,MEMreq(s)表示主机上运行的某一后台服务的内存需求;MEMuse(s)表示在获取数据的时间间隔里该后台服务的内存使用量;T表示获取数据的时间间隔。
可以理解,当获取数据的时间间隔为单位时间时,后台服务的内存需求的值与后台服务在运行过程中实际的物理内存使用量的值相同。还需要说明的是,对于虚拟机,除了需要考虑虚拟机在运行过程中实际的内存使用量外,还需要考虑虚拟机的内存换入量。因此,本实施例中将虚拟机实际使用的内存加上单位时间内换入的内存的总和作为虚拟机的内存需求。还需要说明的是,此处计算虚拟机的内存需求的方法与上一实施例步骤S204的方法相同,具体计算公式可参照式(5),此处不再赘述。
需要说明的是,如果T为单位时间,则式(5)可以简化为式(20):
MEMreq(v)=MEMuse(v)+MSIPS(v) (20)
可以理解,上述后台服务的内存需求和虚拟机的内存需求均为其在单位时间内的内存需求。
确定各后台服务的内存需求以及各虚拟机的内存需求后,就可以计算主机内存负载。具体地,根据式(21)计算主机内存负载:
其中,h表示主机;s表示后台服务;v表示虚拟机;MEMload(h)表示主机内存负载;MEMreq(s)表示该主机上运行的各后台服务的内存需求;MEMreq(v)表示该主机上运行的各虚拟机的内存需求;MEMconf(v)表示该主机上各虚拟机配置的虚拟内存容量;MEMcap(h)表示主机的内存总容量,其值即为步骤S301中统计的MEMload。
在式(21)中,分母为主机的内存总容量,分子包含三个项,分别与后台服务的内存使用量、虚拟机的内存需求、虚拟机的虚拟内存配置有关。后两项的权重0.8和0.2为实践中总结出的经验值,但是也可以取其它值,例如和为1的两个值。本实施例的计算方法不仅包含了运行时的内存需求数据,也包含了虚拟机的虚拟内存配置数据,体现了虚拟机数量和虚拟机的虚拟内存配置容量对主机内存负载的影响。
还需要说明的是,在一台主机上可能存在有多个虚拟机,有的处于运行状态,有的并没有在运行,对于运行中的虚拟机,其既存在运行时的内存需求,又存在虚拟内存配置;对于没有运行的虚拟机,其只存在虚拟内存配置,不存在运行时的内存需求。因此,对于没有运行的虚拟机的内存需求MEMreq(v)的取值为0。
这里,对于步骤S3031和步骤S3032,确定主机CPU负载和确定主机内存负载可以是同时进行或者是以任意顺序进行获取的,步骤序号并不构成对其顺序的限定。
S304:计算主机负载。
需要说明的是,此步骤计算的主机负载是考虑了主机的CPU负载和主机的内存负载的主机整体负载。最终主机的整体负载指标为主机CPU负载和主机内存负载的加权平均,权重根据主机CPU负载和主机内存负载的取值变化。从虚拟机业务性能的角度考虑,主机的CPU负载越高,则虚拟机受到的竞争越激烈,性能表现越差;而只要主机的内存空间足够虚拟机使用(不产生内存交换),则在此范围内的内存利用率基本不影响虚拟机性能。本实施例计算的主机负载正是考虑了此处CPU和内存的差异。
还需要说明的是,本实施例中主机CPU负载的权重即为上一实施例中的第一权重值,其计算方法与上一实施例步骤S209的描述相同,具体计算公式参照式(14),此处不再赘述。
需要说明的是,本实施例中主机内存负载的权重即为上一实施例中的第二权重值,其计算方法与上一实施例步骤S209的描述相同,具体计算公式参照式(15),此处不再赘述。
确定主机CPU负载的权重以及主机内存负载的权重后,就可以计算主机的加权平均负载,即主机负载。具体地,按照式(22)计算主机负载:
其中,Load(h)表示主机负载;CPUload(h)表示主机的CPU负载;WCPU表示主机CPU负载的权重值;MEMload(h)表示主机的内存负载;WMEM表示的是主机的内存负载权重值。
需要说明的是,在计算主机负载之后,就可以根据得到的主机负载对主机的资源耗费情况进行评估,如果主机负载处于正常范围,则暂时无需进行资源调度分配,或者将主机上的虚拟机进行合并,关闭部分不用的主机,从而降低能耗;如果确定某一主机处于资源耗费过高或者处于过载状态,就需要对主机资源进行合理调度分配,例如将过载的主机的虚拟机迁移到空闲的主机上或者关闭某些后台服务,从而减轻主机的负载。还需要注意的是,在本申请实施例提供的计算公式中,也只对数值进行计算,不对单位进行计算。另外,在获取数据时,相同概念的物理量的单位保持一致。
本实施例提供了一种服务器负载的确定方法,通过上述实施例对前述实施例的具体实现进行了详细阐述,从中可以看出,本实施例提出的服务器负载的计算方案综合考虑了服务器、虚拟机、后台服务的多项数据,能够准确衡量服务器的整体负载水平,为用户对服务器进行负载管理提供关键的数据支撑。
本申请的再一实施例中,参见图4,其示出了本申请实施例提供的另一种服务器负载的确定方法。如图4所示,该方法可以包括:
S401、接收客户端发送的服务器负载的确定请求。
S402、响应于所述服务器负载的确定请求,确定所述服务器负载。
需要说明的是,用于进行服务器负载确定的装置或者设备,例如服务器,在接收到客户端发送的服务器负载的确定请求,就可以响应于该服务器负载的确定请求,来确定服务器负载。其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。
在一些实施例中,所述响应于所述服务器负载的确定请求,确定所述服务器负载包括:
确定服务器的CPU负载和所述服务器的内存负载;
对所述服务器的CPU负载和所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
需要说明的是,在本申请实施例中计算服务器负载的方法可以参考前述实施例所述的确定方法,本实施例不再赘述。
本申请实施例提供了一种服务器负载的确定方法,通过接收客户端发送的服务器负载的确定请求,并响应于所述服务器负载的确定请求,来确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。这样综合考虑了服务器的CPU负载和内存负载对服务器负载、以及二者的权重对服务器负载的影响,极大地提高了服务器负载的准确性,为服务器负载管理提供了有力依据。
本申请的再一实施例中,参见图5,其示出了本申请实施例提供的一种服务器负载的确定装置50的组成结构示意图。如图5所示,所述服务器负载的确定装置50可以包括:确定单元501和计算单元502;其中,
确定单元501,配置为确定服务器的CPU负载以及所述服务器的内存负载;
计算单元502,配置为对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
在一些实施例中,参见图5,所述服务器负载的确定装置50还可以包括:获取单元503,配置为对所述服务器进行配置参数统计,获取所述服务器的CPU配置数量以及内存配置容量;以及对所述服务器中的虚拟机进行配置参数统计,获取所述虚拟机的虚拟CPU配置数量以及虚拟内存配置容量。
在一些实施例中,获取单元503,还配置为获取所述服务器中虚拟机的使用数据和后台服务程序的使用数据;
确定单元501,还配置为基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息和第一内存需求信息;以及基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息和第二内存需求信息;
计算单元502,还配置为基于所述服务器的CPU配置数量、所述虚拟机的虚拟CPU配置数量、所述虚拟机的第一CPU需求信息和所述后台服务程序的第二CPU需求信息,利用第一计算模型得到所述服务器的CPU负载;以及基于所述服务器的内存配置容量、所述虚拟机的虚拟内存配置容量、所述虚拟机的第一内存需求信息和所述后台服务程序的第二内存需求信息,利用第二计算模型得到所述服务器的内存负载。
在一些实施例中,确定单元501,具体配置为基于所述虚拟机的使用数据,确定所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间;以及基于所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第一CPU需求信息。
在一些实施例中,确定单元501,具体配置为基于所述虚拟机的使用数据,确定所述虚拟机在预设时间内的实际内存使用量和内存换入速率值;以及基于所述虚拟机在预设时间内的实际内存使用量和内存换入速率值,确定所述第一内存需求信息。
在一些实施例中,确定单元501,具体配置为基于所述后台服务程序的使用数据,确定所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间;以及基于所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第二CPU需求信息。
在一些实施例中,确定单元501,具体配置为基于所述后台服务程序的使用数据,确定所述后台服务程序在预设时间内的实际内存使用量;以及基于所述后台服务程序在预设时间内的实际内存使用量,确定所述第二内存需求信息。
在一些实施例中,确定单元501,具体配置为基于所述服务器的CPU负载,确定第一权重值;以及基于所述服务器的内存负载,确定第二权重值;其中,所述第一权重值表示所述服务器的CPU负载的权重,所述第二权重值表示所述服务器的内存负载的权重;
计算单元502,具体配置为根据所述第一权重值和所述第二权重值对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
在一些实施例中,确定单元501,还配置为将所述CPU负载与预设CPU门限值进行比较;根据比较结果,确定所述第一权重值。
在一些实施例中,确定单元501,还配置为将所述内存负载与预设内存门限值进行比较;根据比较结果,确定所述第二权重值。
在一些实施例中,参见图5,所述服务器负载的确定装置50还可以包括调整单元504,配置为将所述服务器负载与预设负载门限值进行比较;若所述服务器负载高于所述预设门限值,则对所述服务器进行负载调整。
本申请的再一实施例中,参见图6,其示出了本申请实施例提供的另一种服务器负载的确定装置50的组成结构图,如图6所示,该服务器负载的确定装置50可以包括接收单元601和响应单元602;其中,
接收单元601,配置为接收客户端发送的服务器负载的确定请求;
响应单元602,配置为响应于所述服务器负载的确定请求,确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。
在一些实施例中,如图6所示,所述服务器负载的确定装置50还包括第二确定单元603,配置为确定服务器的CPU负载和所述服务器的内存负载。
在一些实施例中,如图6所示,所述服务器负载的确定装置50还包括第二计算单元604,配置为对所述服务器的CPU负载和所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
可以理解地,在上述这些实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对应地,本实施例提供一种服务器负载的确定设备,包括存储器和处理器,所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如前述实施例中所述方法的步骤。
对应地,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现前述实施例中任一项所述方法的步骤。
需要说明的是,以上服务器负载的确定设备和计算机存储介质实施例的描述,与上述服务器负载的确定方法实施例的描述是类似的,具有与方法实施例相似的有益效果。对于本申请服务器负载的确定设备和计算机存储介质实施例中未披露的技术细节,请参照本申请服务器负载的确定方法实施例的描述理解。
参见图7,其示出了本申请实施例提供的一种服务器负载的确定设备70的具体硬件结构示意图。如图7所示,该服务器负载的确定设备70可以包括:通信接口701、存储器702和处理器703;各个组件通过总线系统704耦合在一起。可理解,总线系统704用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统704。其中,通信接口701,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器702,用于存储能够在处理器703上运行的计算机程序;
处理器703,用于在运行所述计算机程序时,执行:
确定服务器的CPU负载以及所述服务器的内存负载;
对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载.
在另一实施例中,处理器703,用于在运行所述计算机程序时,还可以执行:
接收客户端发送的服务器负载的确定请求;
响应于所述服务器负载的确定请求,确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的
可以理解,本申请实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步链动态随机存取存储器(Synchronous link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器703可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器703可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器703读取存储器702中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器703还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法的步骤。
本申请实施例提供了一种服务器负载的确定设备,通过确定服务器的CPU负载以及服务器的内存负载,再对服务器的CPU负载和内存负载进行加权平均计算,得到服务器负载。如此不仅考虑了服务器的CPU负载和内存负载对服务器负载的影响,同时还考虑了二者的权重,极大地提高了服务器负载的准确性,为服务器负载管理提供了有力依据。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种服务器负载的确定方法,其特征在于,所述方法包括:
确定服务器的中央处理器CPU负载以及所述服务器的内存负载;
对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
2.根据权利要求1所述的方法,其特征在于,在所述确定服务器的CPU负载以及所述服务器的内存负载之前,所述方法还包括:
对所述服务器进行配置参数统计,获取所述服务器的CPU配置数量以及内存配置容量;
对所述服务器中的虚拟机进行配置参数统计,获取所述虚拟机的虚拟CPU配置数量以及虚拟内存配置容量。
3.根据权利要求2所述的方法,其特征在于,在所述确定服务器的CPU负载以及所述服务器的内存负载之前,所述方法还包括:
获取所述服务器中虚拟机的使用数据和后台服务程序的使用数据;
基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息和第一内存需求信息;
基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息和第二内存需求信息;
相应地,所述确定所述服务器的CPU负载以及所述服务器的内存负载,包括:
基于所述服务器的CPU配置数量、所述虚拟机的虚拟CPU配置数量、所述虚拟机的第一CPU需求信息和所述后台服务程序的第二CPU需求信息,利用第一计算模型得到所述服务器的CPU负载;
基于所述服务器的内存配置容量、所述虚拟机的虚拟内存配置容量、所述虚拟机的第一内存需求信息和所述后台服务程序的第二内存需求信息,利用第二计算模型得到所述服务器的内存负载。
4.根据权利要求3所述的方法,其特征在于,所述基于所述虚拟机的使用数据,确定所述虚拟机的第一CPU需求信息,包括:
基于所述虚拟机的使用数据,确定所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间;
基于所述虚拟机的虚拟线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第一CPU需求信息。
5.根据权利要求3所述的方法,其特征在于,所述基于所述虚拟机的使用数据,确定所述虚拟机的第一内存需求信息,包括:
基于所述虚拟机的使用数据,确定所述虚拟机在预设时间内的实际内存使用量和内存换入速率值;
基于所述虚拟机在预设时间内的实际内存使用量和内存换入速率值,确定所述第一内存需求信息。
6.根据权利要求3所述的方法,其特征在于,所述基于所述后台服务程序的使用数据,确定所述后台服务程序的第二CPU需求信息,包括:
基于所述后台服务程序的使用数据,确定所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间;
基于所述后台服务程序的后台线程在预设时间内的运行时间、等待时间和睡眠时间,确定所述第二CPU需求信息。
7.根据权利要求3所述的方法,其特征在于,所述基于所述后台服务程序的使用数据,确定所述后台服务程序的第二内存需求信息,包括:
基于所述后台服务程序的使用数据,确定所述后台服务程序在预设时间内的实际内存使用量;
基于所述后台服务程序在预设时间内的实际内存使用量,确定所述第二内存需求信息。
8.根据权利要求1所述的方法,其特征在于,所述对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载,包括:
基于所述服务器的CPU负载,确定第一权重值;
基于所述服务器的内存负载,确定第二权重值;
根据所述第一权重值和所述第二权重值对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载;
其中,所述第一权重值表示所述服务器的CPU负载的权重,所述第二权重值表示所述服务器的内存负载的权重。
9.根据权利要求8所述的方法,其特征在于,所述基于所述服务器的CPU负载,确定第一权重值,包括:
将所述CPU负载与预设CPU门限值进行比较;
根据比较结果,确定所述第一权重值。
10.根据权利要求8所述的方法,其特征在于,所述基于所述服务器的内存负载,确定第二权重值,包括:
将所述内存负载与预设内存门限值进行比较;
根据比较结果,确定所述第二权重值。
11.根据权利要求1至10任一项所述的方法,其特征在于,在所述得到所述服务器负载之后,所述方法还包括:
将所述服务器负载与预设负载门限值进行比较;
若所述服务器负载高于所述预设门限值,则对所述服务器进行负载调整。
12.一种服务器负载的确定方法,其特征在于,所述方法包括:
接收客户端发送的服务器负载的确定请求;
响应于所述服务器负载的确定请求,确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。
13.根据权利要求12所述的方法,其特征在于,所述响应于所述服务器负载的确定请求,确定所述服务器负载,包括:
确定服务器的CPU负载和所述服务器的内存负载;
对所述服务器的CPU负载和所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
14.一种服务器负载的确定装置,其特征在于,所述服务器负载的确定装置包括:确定单元和计算单元;其中
所述确定单元,配置为确定所述服务器的CPU负载以及所述服务器的内存负载;
所述计算单元,配置为对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算,得到所述服务器负载。
15.一种服务器负载的确定装置,其特征在于,所述服务器负载的确定装置包括:接收单元和响应单元;其中,
所述接收单元,用于接收客户端发送的服务器负载的确定请求;
所述响应单元,用于响应于所述服务器负载的确定请求,确定所述服务器负载;其中,所述服务器负载是对所述服务器的CPU负载以及所述服务器的内存负载进行加权平均计算得到的。
16.一种服务器负载的确定设备,其特征在于,所述服务器负载的确定设备包括:存储器和处理器;其中,
所述存储器,用于存储能够在所述处理器上运行的计算机程序;
所述处理器,用于在运行所述计算机程序时,执行如权利要求1至11任一项所述方法的步骤,或者执行如权利要求12或13所述方法的步骤。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述方法的步骤,或者实现如权利要求12或13所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110199904.1A CN112817836A (zh) | 2021-02-22 | 2021-02-22 | 一种服务器负载的确定方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110199904.1A CN112817836A (zh) | 2021-02-22 | 2021-02-22 | 一种服务器负载的确定方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817836A true CN112817836A (zh) | 2021-05-18 |
Family
ID=75863809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110199904.1A Pending CN112817836A (zh) | 2021-02-22 | 2021-02-22 | 一种服务器负载的确定方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817836A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680142A (zh) * | 2022-11-15 | 2023-09-01 | 荣耀终端有限公司 | 内存资源监测方法、电子设备、程序产品及介质 |
CN117149099A (zh) * | 2023-10-31 | 2023-12-01 | 江苏华鲲振宇智能科技有限责任公司 | 一种计算存储分体式服务器系统及控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070282567A1 (en) * | 2006-05-31 | 2007-12-06 | Dawson Christopher J | Systems and Methods for Predicting Load Test Resource Requirements |
CN107124472A (zh) * | 2017-06-26 | 2017-09-01 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置、计算机可读存储介质 |
CN107613030A (zh) * | 2017-11-06 | 2018-01-19 | 网宿科技股份有限公司 | 一种处理业务请求的方法和系统 |
CN111343290A (zh) * | 2020-05-22 | 2020-06-26 | 南京江北新区科技投资集团有限公司 | 一种具备负载均衡功能的云平台系统 |
-
2021
- 2021-02-22 CN CN202110199904.1A patent/CN112817836A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070282567A1 (en) * | 2006-05-31 | 2007-12-06 | Dawson Christopher J | Systems and Methods for Predicting Load Test Resource Requirements |
CN107124472A (zh) * | 2017-06-26 | 2017-09-01 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置、计算机可读存储介质 |
CN107613030A (zh) * | 2017-11-06 | 2018-01-19 | 网宿科技股份有限公司 | 一种处理业务请求的方法和系统 |
CN111343290A (zh) * | 2020-05-22 | 2020-06-26 | 南京江北新区科技投资集团有限公司 | 一种具备负载均衡功能的云平台系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680142A (zh) * | 2022-11-15 | 2023-09-01 | 荣耀终端有限公司 | 内存资源监测方法、电子设备、程序产品及介质 |
CN116680142B (zh) * | 2022-11-15 | 2024-05-07 | 荣耀终端有限公司 | 内存资源监测方法、电子设备、程序产品及介质 |
CN117149099A (zh) * | 2023-10-31 | 2023-12-01 | 江苏华鲲振宇智能科技有限责任公司 | 一种计算存储分体式服务器系统及控制方法 |
CN117149099B (zh) * | 2023-10-31 | 2024-03-12 | 江苏华鲲振宇智能科技有限责任公司 | 一种计算存储分体式服务器系统及控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3014623B1 (en) | Hybrid memory device | |
US20170207958A1 (en) | Performance of Multi-Processor Computer Systems | |
US20180088997A1 (en) | Dynamic virtual cpu core allocation | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
US9110733B2 (en) | Multi-core processor system, arbiter circuit control method, and computer product | |
US9720744B2 (en) | Performance monitoring of shared processing resources | |
US9460032B2 (en) | Apparatus and method for processing an interrupt | |
US10452443B2 (en) | Dynamic tuning of multiprocessor/multicore computing systems | |
CN102473106A (zh) | 虚拟环境中的资源分配 | |
EP2620838B1 (en) | Automatic partial array self-refresh | |
US9727465B2 (en) | Self-disabling working set cache | |
CN112817836A (zh) | 一种服务器负载的确定方法、装置、设备以及存储介质 | |
CN112445423A (zh) | 存储器系统、计算机系统及其数据管理方法 | |
CN107870877B (zh) | 用于在存储系统中管理数据访问的方法和系统 | |
CN113590508A (zh) | 动态可重构的内存地址映射方法及装置 | |
CN115495433A (zh) | 一种分布式存储系统、数据迁移方法及存储装置 | |
CN104461957A (zh) | 一种异构多核cpu共享片上高速缓存的方法及装置 | |
US8862786B2 (en) | Program execution with improved power efficiency | |
US12056382B2 (en) | Inference in memory | |
CN113806089A (zh) | 集群负载资源调度方法、装置、电子设备及可读存储介质 | |
US20150052328A1 (en) | User-controlled paging | |
US9405470B2 (en) | Data processing system and data processing method | |
Modi et al. | CABARRE: Request Response Arbitration for Shared Cache Management | |
CN114968086A (zh) | 对计算装置使用配置文件的管理 | |
KR20130066399A (ko) | 메모리 컨트롤러 및 메모리 컨트롤 방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210518 |