CN110647437B - 基于pid控制器调整cpu使用率的方法、装置、终端及介质 - Google Patents

基于pid控制器调整cpu使用率的方法、装置、终端及介质 Download PDF

Info

Publication number
CN110647437B
CN110647437B CN201910679057.1A CN201910679057A CN110647437B CN 110647437 B CN110647437 B CN 110647437B CN 201910679057 A CN201910679057 A CN 201910679057A CN 110647437 B CN110647437 B CN 110647437B
Authority
CN
China
Prior art keywords
thread
weight
terminal
sampling period
running
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
CN201910679057.1A
Other languages
English (en)
Other versions
CN110647437A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910679057.1A priority Critical patent/CN110647437B/zh
Priority to PCT/CN2019/117618 priority patent/WO2021012511A1/zh
Publication of CN110647437A publication Critical patent/CN110647437A/zh
Application granted granted Critical
Publication of CN110647437B publication Critical patent/CN110647437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Feedback Control In General (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种基于PID控制器调整CPU使用率的方法,包括:在当前采样周期内接收多个终端发送的CPU使用率;计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值;判断第一差值中是否有不在预设差值范围内的目标差值;当确定第一差值中有不在预设差值范围内的目标差值时,根据目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值;根据第二差值通过PID控制器调整目标差值对应的终端当前运行的线程。本发明还提供一种基于PID控制器调整CPU使用率的装置、终端及介质。本发明通过采用PID控制器动态控制CPU的使用率恒定在目标使用率,CPU的使用率控制更精细。

Description

基于PID控制器调整CPU使用率的方法、装置、终端及介质
技术领域
本发明涉及云监控技术领域,具体涉及一种基于PID控制器调整CPU使用率的方法、装置、终端及介质。
背景技术
CPU使用率表示设备中CPU的运行情况,CPU的使用率是判断其工作状态的重要指标,使用率的高低与CPU强弱有直接的关系。现代分时多任务操作系统对CPU一般都是分时间片使用的,而CPU对线程的响应并不是连续的,通常会在一段时间后自动中断线程,未响应的线程如果增加,就会不断的加大CPU的占用,导致CPU使用率很高。此外,在很多高可靠性的软件测试中,很重要的一个测试场景是软件在高压力下的性能测试,而这种高压力往往表现为CPU使用率很高,因此,精确实时动态调整CPU使用率就变得十分必要。
目前,CPU使用率的控制是通过启动跟CPU核心数量相同的工作进程,并且进行了CPU核心的绑定,获取目标CPU的当前使用率和目标使用率及两者之间的误差值,根据误差值生成工作进程的工作时间并对工作进程进行控制,但是未考虑到不同的线程占用CPU使用率不同,没有对线程做精细控制。
发明内容
鉴于以上内容,有必要提出一种基于PID控制器调整CPU使用率的方法、装置、终端及介质,能够通过PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的差值,并根据差值动态调整控制CPU的使用率恒定在目标使用率,对CPU的控制更加精细,控制效果较佳。
本发明的第一方面提供一种基于PID控制器调整CPU使用率的方法,应用于云服务器中,所述方法包括:
在当前采样周期内接收多个终端发送的CPU使用率;
计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值;
判断所述第一差值中是否有不在预设差值范围内的目标差值;
当确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值;
根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。
根据本发明的一个优选实施例,所述根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程包括:
若所述第二差值小于0时,通过所述PID控制器从所述终端当前运行的线程中所述当前采样周期内线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;
若所述第二差值大于0时,通过所述PID控制器从所述终端当前没有运行的线程中上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内。
根据本发明的一个优选实施例,所述上一个采样周期内历史线程权重包括:
上一个采样周期内终端中正在运行的线程的线程权重,上一个采样周期内终端中未运行的线程对应的线程权重。
根据本发明的一个优选实施例,所述方法还包括:
获取所述当前采样周期内所述多个终端的第一CPU使用率及运行的线程对应的第一数量,根据所述第一CPU使用率及所述第一数量计算每个终端的第一CPU使用率权重;
获取上一个采样周期内所述多个终端的第二CPU使用率及运行的线程对应的第二数量,根据所述第二CPU使用率及所述第二数量计算每个终端的第二CPU使用率权重;
根据每个终端的所述第一CPU使用率权重和所述第二CPU使用率权重计算平均CPU使用率权重;
根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重。
根据本发明的一个优选实施例,所述CPU使用率权重通过如下公式计算得到:
CPU_weight_default=CPU使用率/T/n,
其中,CPU_weight_default表示所述CPU使用率权重,T表示所述采样周期,n表示采样周期内运行的线程的数量。
根据本发明的一个优选实施例,所述根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重采用如下公式计算得到:
task_weight=a*priority+b/CPU_weight_default_AV,
其中,task_weight表示所述当前采样周期内终端当前运行的线程的当前线程权重,priority表示所述预设的线程优先级,a和b是常量参数,所述CPU_weight_default_AV表示所述平均CPU使用率权重。
根据本发明的一个优选实施例,在所述根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重之后,所述方法还包括:
根据所述当前线程权重的大小对所述当前运行的线程进行排序。
本发明的第二方面提供一种基于PID控制器调整CPU使用率的装置,运行于云服务器中,所述装置包括:
接收模块,用于在当前采样周期内接收多个终端发送的CPU使用率;
计算模块,用于计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值;
判断模块,用于判断所述第一差值中是否有不在预设差值范围内的目标差值;
所述计算模块,还用于当所述判断模块确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值;
调整模块,用于根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。
本发明的第三方面提供一种终端,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述基于PID控制器调整CPU使用率的方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于PID控制器调整CPU使用率的方法。
综上所述,本发明所述的基于PID控制器调整CPU使用率的方法、装置、终端及介质,通过云服务器在每一个采样周期内接收多个终端发送的CPU使用率,并计算每一个CPU使用率与预设目标CPU使用率之间的第一差值;当确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值,最后根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。云服务器通过PID控制器的负反馈机制实现终端内的实际CPU使用率与目标CPU使用率偏差较大时的快速调整,通过调整所述终端当前运行的线程,从而使终端内的CPU使用率恒定于目标CPU使用率,对CPU的控制更加精细,CPU的控制效果较佳。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的基于PID控制器调整CPU使用率的方法的流程图。
图2是本发明实施例二提供的基于PID控制器调整CPU使用率的装置的功能模块示意图。
图3是本发明实施例三提供的终端的结构示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例的基于PID控制器调整CPU使用率的方法应用在一个或者多个终端中。本发明实施例的基于PID控制器调整CPU使用率的方法应用在一个或者多个云服务器中。所述基于PID控制器调整CPU使用率的方法还可以应用于由终端和通过网络与所述终端进行连接的云服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的基于PID控制器调整CPU使用率的可以由云服务器来执行,也可以由终端来执行;还可以是由服务器和终端共同执行。
所述对于需要进行基于PID控制器调整CPU使用率的方法的终端,可以直接在终端上集成本发明的方法所提供的基于PID控制器调整CPU使用率的功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的基于PID控制器调整CPU使用率的方法还可以以软件开发工具包(Software Development Kit,SDK)的形式运行在服务器等设备上,以SDK的形式提供基于PID控制器调整CPU使用率的功能的接口,终端或其他设备通过提供的接口即可实现基于PID控制器调整CPU使用率的的功能。
实施例一
图1是本发明实施例一提供的基于PID控制器调整CPU使用率的方法的流程图。
如图1所示,所述基于PID控制器调整CPU使用率的方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11:在当前采样周期内接收多个终端发送的CPU使用率。
本实施例中,云服务器与多个终端通讯连接,每一个终端可以在每一个采样周期内采集自身的CPU使用率,并将采集的CPU使用率及终端标识发送给云监控系统。云监控系统接收多个终端发送的CPU使用率及终端标识。
云服务器通过云监控系统获取每一个采样周期内的多个终端发送的CPU使用率。
所述采样周期可以是与后续使用到的PID控制器的采样周期相同。
本实施例中的云监控系统可以是由多个云产品构成的大规模系统的服务器,也可以是由少数几个机器构成的服务系统,还可以是单机系统。
所述终端包括但不限于:智能手机、电脑、笔记本或者掌上电脑等。
云监控系统可以同时监控多个终端的CPU使用率,通过将CPU使用率作为终端的性能指标,以对终端的负载能力进行监控并进而进行动态调整使终端达到最佳工作状态。
S12:计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值。
本实施例中,可以预先设置终端的目标CPU使用率,可以为每个终端设置相同的目标CPU使用率,还可以根据不同的终端的运行能力为不同的终端设置不同的目标CPU使用率。
所述预设目标CPU使用率是指终端所能执行的适量的线程又不会影响终端的运行效率的最适宜的CPU使用率。
云服务器在每个采样周期内获取到多个终端的CPU使用率后,可以将每一个终端的CPU使用率与所述预设目标CPU使用率进行做差计算得到每一个终端当前CPU使用率与所述预设目标CPU使用率之间的第一差值。
S13:判断所述第一差值中是否有不在预设差值范围内的目标差值。
本实施例中,可以预先设置差值范围,可以为每个终端设置相同的差值范围,还可以根据不同的终端的运行能力为不同的终端设置不同的差值范围。
所述预设差值范围是指可以允许当前采样周期内的终端的CPU使用率在预设目标CPU使用率附近进行上下波动的幅度。例如所述预设差值范围为-5%到+3%的一个区间范围,表明当前采样周期内的终端的CPU使用率可以低于所述预设目标CPU使用率5%,也可以高于所述预设目标CPU使用率3%。
在计算得到每一个终端当前CPU使用率与所述预设目标CPU使用率之间的第一差值后多的多个第一差值,需要判断所述多个第一差值中是否有不在预设差值范围内的第一差值,将不在预设差值范围内的第一差值称之为目标差值。
当确定所述第一差值中没有不在所述预设差值范围内的目标差值,即确定所述多个第一差值中的每一个第一差值均在预设差值范围内时,可以不执行任何操作。应当理解的是,当确定所述第一差值等于0时,即所述当前采样周期内的CPU使用率等于所述预设目标CPU使用率,此时表明所述终端已经达到了最佳的工作状态,即执行的线程数量合适,终端的CPU的负荷刚好适宜。
当确定所述第一差值中有不在所述预设差值范围内的目标差值,执行S14。
S14:根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值。
本实施例中,当确定所述第一差值中有不在所述预设差值范围内的目标差值时,即存在终端的CPU使用率高于或者低于预设目标CPU使用率较多,此时可以采用比例-积分-微分PID(Proportion Integration Differentiation)控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值。
所述PID控制器分为比例运行、积分运算和微分运算,通过负反馈的机制来控制输入以达到稳定输出的目的。本实施例中,使用增量式的PID控制器,增量式PID控制器,是通过对控制量的增量(本次控制量和上次控制量的差值)进行PID控制的一种控制器。所述比例-积分-微分PID控制器的初始化参数可包括PID控制器中的比例系数(P)、积分常数(I)及微分常数(D)。
具体的,可以通过如下公式(1)计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值。
u(k)=Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2e(k-1)+e(k-2)] (1)
其中,u(k)为计算得到的第二差值,p为动态调节步伐的参数,逐渐变大,i为当前偏差的缩放系数,d为对前两项值的2次修正调整,e(k)为第k次的CPU使用率,e(k-1)为第k-1次的CPU使用率,e(k-2)为第k-2次的CPU使用率,其中比例系数Kp、积分常数Ki、微分常数Kd的值默认分别为5,10,15。
S15:根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。
本实施例中,由于当前采样周期内存在某一个终端的CPU使用率与预设目标CPU使用率的第一差值不在预设差值范围内,即当前采样周期内终端的CPU使用率与所述预设目标CPU使用率相差较大,所述当前采样周期内终端的CPU使用率可能高于所述预设目标CPU使用率较多,也可能低于所述预设目标CPU使用率较多,因而在通过PID控制器计算得到第二差值后,可以根据所述第二差值调整所述当前采样周期内的终端当前运行的线程的数量来调整所述终端的CPU使用率。
优选的,所述根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程包括:
若所述第二差值小于0时,通过所述PID控制器从所述终端当前运行的线程中从当前采样周期内对应的当前线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;
若所述第二差值大于0时,通过所述PID控制器从所述终端当前没有运行的线程中上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内。
应当理解的是,所述当前采样周期内对应的当前线程权重是指当前采样周期内终端中当前正在运行的线程的线程权重,所述当前采样周期内对应的当前线程权重与上一个采样周期内历史线程权重是相对而言的。
本实施例中,所述上一个采样周期内历史线程权重包括:上一个采样周期内终端中正在运行的线程的线程权重,上一个采样周期内终端中未运行的线程对应的线程权重。
本实施例中,通过比较所述第二差值大于或者小于0,并根据比较结果调整当前采样周期内的所述终端当前运行的线程类型及/或运行的线程的数量达到控制终端CPU使用率的目的。在确定所述第二差值小于0时,则从当前采样周期内对应的当前线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;在确定所述第二差值大于0时,上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内。
在一些实施例中,云监控系统计算得到所述第二差值之后,也可以将所述第二差值反馈至终端标识对应的终端,终端中也可以预先设置PID控制器,当接收到云监控系统反馈回的所述第二差值,通过比较所述第二差值与零的大小,并进而增加或者减少线程直至所增加或者停止运行的线程的线程权重总和在所述第二差值的预设范围内。
优选的,所述方法还包括:
1)获取当前采样周期内多个终端的第一CPU使用率及运行的线程对应的第一数量,根据所述第一CPU使用率及第一数量计算每个终端的第一CPU使用率权重。
每个终端在运行一个或者多个线程采样周期后,终端的CPU使用率会升高。在运行一个或者多个线程采样周期之后,升高的CPU使用率认为是由于运行该一个或多个线程引起的。
本实施例中,获取到终端在当前采样周期结束时对应的CPU使用率之后,便可以计算当前采样周期内运行的线程中的每个线程的第一CPU使用率权重。
用公式(2)表示如下:
CPU_weight_default1=第一CPU使用率/T/n1 (2)
其中,CPU_weight_default1表示所述第一CPU使用率权重,T表示所述采样周期,n1表示所述当前采样周期内运行的线程的第一数量。
2)获取上一个采样周期内多个终端的第二CPU使用率及运行的线程对应的第二数量,根据所述第二CPU使用率及第二数量计算每个终端的第二CPU使用率权重。
终端在当前采样周期运行第一数量的线程,在上一个采样周期运行第二数量的线程,由于运行不同数量的线程,占用终端的CPU使用率可能会不同。通过获取上一个采样周期内终端的第二CPU使用率,并根据所述上一个CPU使用率计算上一个采样周期内运行的线程的第二CPU使用率权重。
用公式(3)表示如下:
CPU_weight_default2=第二CPU使用率/T/n2 (3)
其中,CPU_weight_default2表示所述第二CPU使用率权重,T表示所述采样周期,n2表示所述上一个采样周期内运行的线程的第二数量。
3)根据所述第一CPU使用率权重和所述第二CPU使用率权重计算平均CPU使用率权重。
用公式(4)表示如下:
CPU_weight_default_AV=(第二CPU使用率权重+第一CPU使用率权重)/2 (4)
其中,CPU_weight_default_AV表示所述平均CPU使用率权重。
4)根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内所述终端当前运行的线程的当前线程权重。
本实施例中,可以根据线程对应运行的应用程序预先设置线程优先级。示例性的,若第一线程运行于第一应用程序,则对应设置第一线程的优先级为第一优先级;若第二线程运行第一类应用程序,则对应设置第二线程的优先级为第二优先级,其中,第一优先级高于第二优先级。
用公式(5)表示如下:
task_weight=a*priority+b/CPU_weight_default_AV (5)
其中,task_weight表示所述当前采样周期内所述终端当前运行的线程的当前线程权重,priority表示所述预设的线程优先级,a和b是常量参数。不同的线程,对应的优先级(priority值)不同,计算得到的当前线程权重也不同。而当线程的优先级相同时,计算得到的当前线程权重越大,表明当前正在运行的线程对终端当前的CPU使用率影响越小,终端的CPU使用率变化值越小;计算得到的当前线程权重越小,表明当前正在运行的线程对终端当前的CPU使用率影响越大,终端的CPU使用率变化值越大。默认a取1,b取2。
优选的,在所述根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重之后,所述方法还包括:
根据所述当前线程权重的大小对所述当前运行的线程进行排序。
本实施例中,根据计算得到的线程权重对线程进行排序,便于通过PID控制器从最小的线程权重对应的线程开始停止运行或者从最大的线程权重对应的线程开始增加运行。
综上所述,本发明所述的基于PID控制器调整CPU使用率的方法,通过云服务器在每一个采样周期内接收多个终端发送的CPU使用率,并计算每一个CPU使用率与预设目标CPU使用率之间的第一差值;当确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值,最后根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。云服务器通过PID控制器的负反馈机制实现终端内的实际CPU使用率与目标CPU使用率偏差较大时的快速调整,通过调整所述终端当前运行的线程,从而使终端内的CPU使用率恒定于目标CPU使用率,对CPU的控制更加精细,CPU的控制效果较佳。另外,通过云服务器可以同时控制多个终端的CPU使用率,应用范围更广泛。
需要说明的是,基于PID控制器调整CPU使用率的方法,还可以应用于终端中,直接通过终端在每一个所述采样周期获取CPU使用率,并根据所述当前采样周期内的CPU使用率调整当前采样周期内运行的线程。而无需通过在每一个采样周期内获取CPU使用率并发送至云监控系统,由云监控系统根据获取到的当前采样周期内的CPU使用率调整终端当前采样周期内运行的线程。
实施例二
图2是本发明实施例二提供的基于PID控制器调整CPU使用率的装置的结构图。
在一些实施例中,所述基于PID控制器调整CPU使用率的装置20,可以包括多个由程序代码段所组成的功能模块。所述基于PID控制器调整CPU使用率的装置20中的各个程序段的程序代码可以存储于终端的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)基于PID控制器调整CPU使用率的功能。
本实施例中,所述基于PID控制器调整CPU使用率的装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、计算模块202、判断模块203、调整模块204、获取模块205及排序模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
接收模块201,用于在当前采样周期内接收多个终端发送的CPU使用率。
本实施例中,云服务器与多个终端通讯连接,每一个终端可以在每一个采样周期内采集自身的CPU使用率,并将采集的CPU使用率及终端标识发送给云监控系统。云监控系统接收多个终端发送的CPU使用率及终端标识。
云服务器通过云监控系统获取每一个采样周期内的多个终端发送的CPU使用率。
所述采样周期可以是与后续使用到的PID控制器的采样周期相同。
本实施例中的云监控系统可以是由多个云产品构成的大规模系统的服务器,也可以是由少数几个机器构成的服务系统,还可以是单机系统。
所述终端包括但不限于:智能手机、电脑、笔记本或者掌上电脑等。
云监控系统可以同时监控多个终端的CPU使用率,通过将CPU使用率作为终端的性能指标,以对终端的负载能力进行监控并进而进行动态调整使终端达到最佳工作状态。
计算模块202,用于计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值。
本实施例中,可以预先设置终端的目标CPU使用率,可以为每个终端设置相同的目标CPU使用率,还可以根据不同的终端的运行能力为不同的终端设置不同的目标CPU使用率。
所述预设目标CPU使用率是指终端所能执行的适量的线程又不会影响终端的运行效率的最适宜的CPU使用率。
云服务器在每个采样周期内获取到多个终端的CPU使用率后,可以将每一个终端的CPU使用率与所述预设目标CPU使用率进行做差计算得到每一个终端当前CPU使用率与所述预设目标CPU使用率之间的第一差值。
判断模块203,用于判断所述第一差值中是否有不在预设差值范围内的目标差值。
本实施例中,可以预先设置差值范围,可以为每个终端设置相同的差值范围,还可以根据不同的终端的运行能力为不同的终端设置不同的差值范围。
所述预设差值范围是指可以允许当前采样周期内的终端的CPU使用率在预设目标CPU使用率附近进行上下波动的幅度。例如所述预设差值范围为-5%到+3%的一个区间范围,表明当前采样周期内的终端的CPU使用率可以低于所述预设目标CPU使用率5%,也可以高于所述预设目标CPU使用率3%。
在计算得到每一个终端当前CPU使用率与所述预设目标CPU使用率之间的第一差值后多的多个第一差值,需要判断所述多个第一差值中是否有不在预设差值范围内的第一差值,将不在预设差值范围内的第一差值称之为目标差值。
当所述判断模块203确定所述第一差值中没有不在所述预设差值范围内的目标差值,即所述判断模块203确定所述多个第一差值中的每一个第一差值均在预设差值范围内时,可以不运行任何装置。应当理解的是,当确定所述第一差值等于0时,即所述当前采样周期内的CPU使用率等于所述预设目标CPU使用率,此时表明所述终端已经达到了最佳的工作状态,即执行的线程数量合适,终端的CPU的负荷刚好适宜。
所述计算模块202,还用于当所述判断模块203确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值。
本实施例中,当确定所述第一差值中有不在所述预设差值范围内的目标差值时,即存在终端的CPU使用率高于或者低于预设目标CPU使用率较多,此时可以采用比例-积分-微分PID(Proportion Integration Differentiation)控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值。
所述PID控制器分为比例运行、积分运算和微分运算,通过负反馈的机制来控制输入以达到稳定输出的目的。本实施例中,使用增量式的PID控制器,增量式PID控制器,是通过对控制量的增量(本次控制量和上次控制量的差值)进行PID控制的一种控制器。所述比例-积分-微分PID控制器的初始化参数可包括PID控制器中的比例系数(P)、积分常数(I)及微分常数(D)。
具体的,可以通过如下公式(1)计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值。
u(k)=Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2e(k-1)+e(k-2)] (1)
其中,u(k)为计算得到的第二差值,p为动态调节步伐的参数,逐渐变大,i为当前偏差的缩放系数,d为对前两项值的2次修正调整,e(k)为第k次的CPU使用率,e(k-1)为第k-1次的CPU使用率,e(k-2)为第k-2次的CPU使用率,其中比例系数Kp、积分常数Ki、微分常数Kd的值默认为5,10,15。
调整模块204,用于根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。
本实施例中,由于当前采样周期内存在某一个终端的CPU使用率与预设目标CPU使用率的第一差值不在预设差值范围内,即当前采样周期内终端的CPU使用率与所述预设目标CPU使用率相差较大,所述当前采样周期内终端的CPU使用率可能高于所述预设目标CPU使用率较多,也可能低于所述预设目标CPU使用率较多,因而在通过PID控制器计算得到第二差值后,可以根据所述第二差值调整所述当前采样周期内的终端当前运行的线程的数量来调整终端的CPU使用率。
优选的,所述调整模块204根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程包括:
若所述第二差值小于0时,通过所述PID控制器从所述终端当前运行的线程中从当前采样周期内对应的当前线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;
若所述第二差值大于0时,通过所述PID控制器从所述终端当前没有运行的线程中上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内。
应当理解的是,所述当前采样周期内对应的当前线程权重是指当前采样周期内终端中当前正在运行的线程的线程权重,所述当前采样周期内对应的当前线程权重与上一个采样周期内历史线程权重是相对而言的。
本实施例中,所述上一个采样周期内历史线程权重包括:上一个采样周期内终端中正在运行的线程的线程权重,上一个采样周期内终端中未运行的线程对应的线程权重。
本实施例中,通过比较所述第二差值大于或者小于0,并根据比较结果调整当前采样周期内的所述终端当前运行的线程类型及/或运行的线程的数量达到控制终端CPU使用率的目的。在确定所述第二差值小于0时,则从当前采样周期内对应的当前线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;在确定所述第二差值大于0时,上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内。
在一些实施例中,云监控系统计算得到所述第二差值之后,也可以将所述第二差值反馈至终端标识对应的终端,终端中也可以预设设置PID控制器,当接收到云监控系统反馈回的所述第二差值,通过比较所述第二差值与零的大小,并进而增加或者减少线程直至所增加或者停止运行的线程的线程权重总和在所述第二差值的预设范围内。
优选的,所述基于PID控制器调整CPU使用率的装置20还包括:
获取模块205,用于获取当前采样周期内多个终端的第一CPU使用率及运行的线程对应的第一数量,根据所述第一CPU使用率及第一数量计算每个终端的第一CPU使用率权重。
每个终端在运行一个或者多个线程采样周期后,终端的CPU使用率会升高。在运行一个或者多个线程采样周期之后,升高的CPU使用率认为是由于运行该一个或多个线程引起的。
本实施例中,获取到终端在当前采样周期结束时对应的CPU使用率之后,便可以计算当前采样周期内运行的线程中的每个线程的第一CPU使用率权重。
用公式(2)表示如下:
CPU_weight_default1=第一CPU使用率/T/n1 (2)
其中,CPU_weight_default1表示所述第一CPU使用率权重,T表示所述采样周期,n1表示所述当前采样周期内运行的线程的第一数量。
所述获取模块205,还用于获取上一个采样周期内多个终端的第二CPU使用率及运行的线程对应的第二数量,根据所述第二CPU使用率及第二数量计算每个终端的第二CPU使用率权重。
终端在当前采样周期运行第一数量的线程,在上一个采样周期运行第二数量的线程,由于运行不同数量的线程,占用终端的CPU使用率可能会不同。通过获取上一个采样周期内终端的第二CPU使用率,并根据所述上一个CPU使用率计算上一个采样周期内运行的线程的第二CPU使用率权重。
用公式(3)表示如下:
CPU_weight_default2=第二CPU使用率/T/n2 (3)
其中,CPU_weight_default2表示所述第二CPU使用率权重,T表示所述采样周期,n2表示所述上一个采样周期内运行的线程的第二数量。
所述计算模块202,还用于根据所述第一CPU使用率权重和所述第二CPU使用率权重计算平均CPU使用率权重。
用公式(4)表示如下:
CPU_weight_default_AV=(第二CPU使用率权重+第一CPU使用率权重)/2 (4)
其中,CPU_weight_default_AV表示所述平均CPU使用率权重。
所述计算模块202,还用于根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内所述终端当前运行的线程的当前线程权重。
本实施例中,可以根据线程对应运行的应用程序预先设置线程优先级。示例性的,若第一线程运行于第一应用程序,则对应设置第一线程的优先级为第一优先级;若第二线程运行第一类应用程序,则对应设置第二线程的优先级为第二优先级,其中,第一优先级高于第二优先级。
用公式(5)表示如下:
task_weight=a*priority+b/CPU_weight_default_AV (5)
其中,task_weight表示所述当前采样周期内所述终端当前运行的线程的当前线程权重,priority表示所述预设的线程优先级,a和b是常量参数。不同的线程,对应的优先级(priority值)不同,计算得到的当前线程权重也不同。而当线程的优先级相同时,计算得到的当前线程权重越大,表明当前正在运行的线程对终端当前的CPU使用率影响越小,终端的CPU使用率变化值越小;计算得到的当前线程权重越小,表明当前正在运行的线程对终端当前的CPU使用率影响越大,终端的CPU使用率变化值越大。默认a取1,b取2。
优选的,在所述计算模块202根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重之后,所述基于PID控制器调整CPU使用率的装置20还包括:
排序模块206,用于根据所述当前线程权重的大小对所述当前运行的线程进行排序。
本实施例中,根据计算得到的线程权重对线程进行排序,便于通过PID控制器从最小的线程权重对应的线程开始停止运行或者从最大的线程权重对应的线程开始增加运行。
综上所述,本发明所述的基于PID控制器调整CPU使用率的装置,通过云服务器在每一个采样周期内接收多个终端发送的CPU使用率,并计算每一个CPU使用率与预设目标CPU使用率之间的第一差值;当确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值,最后根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程。云服务器通过PID控制器的负反馈机制实现终端内的实际CPU使用率与目标CPU使用率偏差较大时的快速调整,通过调整所述终端当前运行的线程,从而使终端内的CPU使用率恒定于目标CPU使用率,对CPU的控制更加精细,CPU的控制效果较佳。另外,通过云服务器可以同时控制多个终端的CPU使用率,应用范围更广泛。
需要说明的是,基于PID控制器调整CPU使用率的装置,还可以运行于终端中,直接通过终端在每一个所述采样周期获取CPU使用率,并根据所述当前采样周期内的CPU使用率调整当前采样周期内运行的线程。而无需通过在每一个采样周期内获取CPU使用率并发送至云监控系统,由云监控系统根据获取到的当前采样周期内的CPU使用率调整终端当前采样周期内运行的线程。
实施例三
参阅图3所示,为本发明实施例三提供的终端的结构示意图。在本发明较佳实施例中,所述终端3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的终端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述终端3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述终端3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述终端3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述终端3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述终端3中的基于PID控制器调整CPU使用率的装置20,并在终端3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述终端3的控制核心(Control Unit),利用各种接口和线路连接整个终端3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行终端3的各种功能和处理数据,例如执行基于PID控制器调整CPU使用率的功能。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述终端3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述终端3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述终端3的操作装置以及安装的各类应用程序(如所述的基于PID控制器调整CPU使用率的装置20)、程序代码等,例如,上述的各个模块:接收模块201、计算模块202、判断模块203、调整模块204、获取模块205及排序模块206。
所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到所述基于PID控制器调整CPU使用率的目的。
在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现所述基于PID控制器调整CPU使用率的目的。
具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (8)

1.一种基于PID控制器调整CPU使用率的方法,应用于云服务器中,其特征在于,所述方法包括:
在当前采样周期内接收多个终端发送的CPU使用率;
计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值;
判断所述第一差值中是否有不在预设差值范围内的目标差值;
当确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值;其中,所述第二差值采用如下公式计算得到:
u(k)=Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2e(k-1)+e(k-2)],
其中,u(k)表示所述第二差值,p表示动态参数调节系数,i表示当前偏差的缩放系数,d表示上述公式中Kp*[e(k)-e(k-1)]和Ki*e(k)的二次修正调整系数,e(k)表示第k次的所述CPU使用率,e(k-1)表示第k-1次的所述CPU使用率,e(k-2)表示第k-2次的所述CPU使用率,Kp表示比例系数、Ki表示积分常数、Kd表示微分常数;
根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程,包括:若所述第二差值小于0时,通过所述PID控制器从所述终端当前运行的线程中所述当前采样周期内线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;
若所述第二差值大于0时,通过所述PID控制器从所述终端当前没有运行的线程中上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内,其中,所述上一个采样周期内历史线程权重包括:上一个采样周期内终端中正在运行的线程的线程权重,上一个采样周期内终端中未运行的线程对应的线程权重。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述当前采样周期内所述多个终端的第一CPU使用率及运行的线程对应的第一数量,根据所述第一CPU使用率及所述第一数量计算每个终端的第一CPU使用率权重;
获取上一个采样周期内所述多个终端的第二CPU使用率及运行的线程对应的第二数量,根据所述第二CPU使用率及所述第二数量计算每个终端的第二CPU使用率权重;
根据每个终端的所述第一CPU使用率权重和所述第二CPU使用率权重计算平均CPU使用率权重;
根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重。
3.如权利要求2所述的方法,其特征在于,所述CPU使用率权重通过如下公式计算得到:
CPU_weight_default=CPU使用率/T/n,
其中,CPU_weight_default表示所述CPU使用率权重,T表示所述采样周期,n表示采样周期内运行的线程的数量。
4.如权利要求2所述的方法,其特征在于,所述根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重采用如下公式计算得到:
task_weight=a*priority+b/CPU_weight_default_AV,
其中,task_weight表示所述当前采样周期内终端当前运行的线程的当前线程权重,priority表示所述预设的线程优先级,a和b是常量参数,所述CPU_weight_default_AV表示所述平均CPU使用率权重。
5.如权利要求4所述的方法,其特征在于,在所述根据预设的线程优先级及所述平均CPU使用率权重计算所述当前采样周期内每个终端当前运行的线程的当前线程权重之后,所述方法还包括:
根据所述当前线程权重的大小对所述当前运行的线程进行排序。
6.一种基于PID控制器调整CPU使用率的装置,运行于云服务器中,其特征在于,所述装置包括:
接收模块,用于在当前采样周期内接收多个终端发送的CPU使用率;
计算模块,用于计算所接收到的每一个CPU使用率与预设目标CPU使用率之间的第一差值;
判断模块,用于判断所述第一差值中是否有不在预设差值范围内的目标差值;
所述计算模块,还用于当所述判断模块确定所述第一差值中有不在所述预设差值范围内的目标差值时,根据所述目标差值采用PID控制器计算当前采样周期内运行的线程对应的线程权重总和与下一个采样周期内运行的线程对应的线程权重总和的第二差值;其中,所述第二差值采用如下公式计算得到:
u(k)=Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2e(k-1)+e(k-2)],
其中,u(k)表示所述第二差值,p表示动态参数调节系数,i表示当前偏差的缩放系数,d表示上述公式中Kp*[e(k)-e(k-1)]和Ki*e(k)的二次修正调整系数,e(k)表示第k次的所述CPU使用率,e(k-1)表示第k-1次的所述CPU使用率,e(k-2)表示第k-2次的所述CPU使用率,Kp表示比例系数、Ki表示积分常数、Kd表示微分常数;
调整模块,用于根据所述第二差值通过所述PID控制器调整所述目标差值对应的终端当前运行的线程,包括:若所述第二差值小于0时,通过所述PID控制器从所述终端当前运行的线程中所述当前采样周期内线程权重最小的线程开始停止运行,直至所停止运行的线程的线程权重总和在所述第二差值的预设范围内;
若所述第二差值大于0时,通过所述PID控制器从所述终端当前没有运行的线程中上一个采样周期内历史线程权重最大的线程开始增加运行,直至所增加运行的线程的线程权重总和在所述第二差值的预设范围内,其中,所述上一个采样周期内历史线程权重包括:上一个采样周期内终端中正在运行的线程的线程权重,上一个采样周期内终端中未运行的线程对应的线程权重。
7.一种终端,其特征在于,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至5中任意一项所述基于PID控制器调整CPU使用率的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述基于PID控制器调整CPU使用率的方法。
CN201910679057.1A 2019-07-25 2019-07-25 基于pid控制器调整cpu使用率的方法、装置、终端及介质 Active CN110647437B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910679057.1A CN110647437B (zh) 2019-07-25 2019-07-25 基于pid控制器调整cpu使用率的方法、装置、终端及介质
PCT/CN2019/117618 WO2021012511A1 (zh) 2019-07-25 2019-11-12 基于pid控制器调整cpu使用率的方法、装置、终端及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910679057.1A CN110647437B (zh) 2019-07-25 2019-07-25 基于pid控制器调整cpu使用率的方法、装置、终端及介质

Publications (2)

Publication Number Publication Date
CN110647437A CN110647437A (zh) 2020-01-03
CN110647437B true CN110647437B (zh) 2022-08-05

Family

ID=69009503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910679057.1A Active CN110647437B (zh) 2019-07-25 2019-07-25 基于pid控制器调整cpu使用率的方法、装置、终端及介质

Country Status (2)

Country Link
CN (1) CN110647437B (zh)
WO (1) WO2021012511A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338533B (zh) * 2021-12-30 2024-05-28 广东明创软件科技有限公司 一种调整方法、电子设备及计算机存储介质
CN117097635B (zh) * 2023-10-12 2024-01-05 腾讯科技(深圳)有限公司 调用链路采样方法、装置、存储介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786152A (zh) * 2014-12-26 2016-07-20 联想(北京)有限公司 一种控制方法及电子设备
CN105786615A (zh) * 2015-01-14 2016-07-20 联发科技股份有限公司 用于优化处理器的控制方法和控制系统
CN106033345A (zh) * 2015-03-17 2016-10-19 阿里巴巴集团控股有限公司 Cpu使用率的控制方法和装置
CN109451155A (zh) * 2018-10-31 2019-03-08 深圳市网心科技有限公司 终端温度动态控制方法、终端、系统及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100444514C (zh) * 2007-02-16 2008-12-17 吴德峰 发电机逆变调速装置及控制方法
US9239611B2 (en) * 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
CN103902443B (zh) * 2012-12-26 2017-04-26 华为技术有限公司 一种程序运行性能分析方法及装置
CN103838353B (zh) * 2014-01-02 2017-09-22 深圳市金立通信设备有限公司 一种控制处理器运行的方法及终端
WO2017222763A2 (en) * 2016-05-31 2017-12-28 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786152A (zh) * 2014-12-26 2016-07-20 联想(北京)有限公司 一种控制方法及电子设备
CN105786615A (zh) * 2015-01-14 2016-07-20 联发科技股份有限公司 用于优化处理器的控制方法和控制系统
CN106033345A (zh) * 2015-03-17 2016-10-19 阿里巴巴集团控股有限公司 Cpu使用率的控制方法和装置
CN109451155A (zh) * 2018-10-31 2019-03-08 深圳市网心科技有限公司 终端温度动态控制方法、终端、系统及存储介质

Also Published As

Publication number Publication date
CN110647437A (zh) 2020-01-03
WO2021012511A1 (zh) 2021-01-28

Similar Documents

Publication Publication Date Title
CN110659130A (zh) Cpu使用率自适应调整方法、装置、终端及存储介质
CN110647437B (zh) 基于pid控制器调整cpu使用率的方法、装置、终端及介质
CN110196767B (zh) 服务资源控制方法、装置、设备和存储介质
CN103229125A (zh) 机箱内的刀片服务器之间的动态功率平衡
WO2016069038A1 (en) Policy based workload scaler
US11550634B2 (en) Capacity management in a cloud computing system using virtual machine series modeling
CN112148427A (zh) 一种云平台资源分配方法、装置和计算机可读存储介质
CN109451155A (zh) 终端温度动态控制方法、终端、系统及存储介质
CN113114504B (zh) 用于分配资源的方法、装置、设备、介质和产品
CN109739627B (zh) 任务的调度方法、电子设备及介质
CN109067607B (zh) 一种调整额定带宽的方法和装置
CN114490078A (zh) 一种微服务的动态缩扩容方法、装置及设备
CN115347661A (zh) Ups系统的休眠控制方法及控制终端
CN109840141A (zh) 基于云监控的线程控制方法、装置、电子设备及存储介质
CN113783481A (zh) 电机控制方法、装置、系统及存储介质
EP2960787B1 (en) A method of executing an application on a computer system, a resource manager and a high performance computer system
CN106874129B (zh) 一种操作系统进程调度顺序确定方法及控制方法
CN112565391A (zh) 调整工业互联网平台中实例的方法、装置、设备和介质
CN109376051A (zh) 检测移动设备应用程序功耗的方法及终端设备
CN115347650A (zh) 基于检测设备电压调整的供电方法、装置、设备及介质
CN101221528B (zh) 一种嵌入式操作系统调度性能的测试方法
CN103685541A (zh) IaaS云系统运行速率动态控制装置、系统及方法
CN114168439A (zh) 一种集群内服务的压测控制方法、装置、存储介质及终端
CN114598705B (zh) 消息负载均衡方法、装置、设备和介质
CN105824809B (zh) 一种etl调度的实现方法及装置

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