CN116028208B - 系统负载确定方法、装置、设备和存储介质 - Google Patents
系统负载确定方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116028208B CN116028208B CN202210740074.3A CN202210740074A CN116028208B CN 116028208 B CN116028208 B CN 116028208B CN 202210740074 A CN202210740074 A CN 202210740074A CN 116028208 B CN116028208 B CN 116028208B
- Authority
- CN
- China
- Prior art keywords
- load
- performance index
- load level
- value
- device performance
- 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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种系统负载确定方法、装置、设备和存储介质,属于计算机技术领域。该方法包括:获取电子设备的多个设备性能指标值,然后根据电子设备当前所处的用户场景对应确定出该多个设备性能指标值中各个设备性能指标值的权重,结合多个设备性能指标值和各个设备性能指标值的权重可以确定当前用户场景下的系统负载等级。本申请中,确定出的系统负载等级针对于不同的用户场景有所侧重,从而有助于后续根据该系统负载等级执行的相关处理能够更为贴近用户需求。
Description
本申请要求于2022年05月16日提交的申请号为202210529295.6、申请名称为“系统负载确定方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别涉及一种系统负载确定方法、装置、设备和存储介质。
背景技术
随着电子设备性能的提升,电子设备的功耗也越来越高,但是电池容量的提升却十分缓慢,导致电子设备的续航无法满足用户的需求,降低了用户的使用体验。因此,需要根据电子设备的系统负载对底层硬件资源进行更加精准的资源调度,在保证电子设备性能的同时满足用户的长续航体验。
目前,在确定电子设备的系统负载时,往往是简单的获取电子设备的中央处理器(central processing unit,CPU)负载或输入输出(input/output,IO)负载,如此仅能为电子设备的资源调度提供有限的参考。
发明内容
本申请提供了一种系统负载确定方法、装置、设备和存储介质,可以使得确定出的系统负载等级针对于不同的用户场景有所侧重。所述方案如下:
第一方面,提供了一种系统负载确定方法。在该方法中,获取电子设备的多个设备性能指标值,之后,识别该电子设备当前所处的用户场景。在识别出用户场景的情况下,根据该用户场景获取该多个设备性能指标值中每个设备性能指标值的权重,根据该多个设备性能指标值和该多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级。
设备性能指标值是与系统负载有关的设备性能指标的值。设备性能指标值大于或等于0且小于或等于1。设备性能指标值可以体现系统负载情况,即体现系统负载的高低。也就是说,设备性能指标值越大,系统负载越大;设备性能指标值越小,系统负载越小。
示例地,本申请中,与系统负载有关的多个设备性能指标可以包括CPU负载、IO负载、GPU负载、网络负载等负载中的至少两个。相应地,多个设备性能指标值可以包括CPU负载率、IO负载率、GPU负载率、网络负载率等负载率中的至少两个。
系统负载等级用于体现系统整体的负载情况。示例地,系统负载等级可以为轻、中、重。系统负载等级为轻说明系统负载较低;系统负载等级为中说明系统负载较为适中;系统负载等级为重说明系统负载较高。
在本申请中,获取电子设备的多个设备性能指标值,然后根据电子设备当前所处的用户场景对应确定出该多个设备性能指标值中各个设备性能指标值的权重,结合多个设备性能指标值和各个设备性能指标值的权重可以确定当前用户场景下的系统负载等级,如此确定出的系统负载等级针对于不同的用户场景有所侧重,从而有助于后续根据该系统负载等级执行的相关处理能够更为贴近用户需求。
另外,本申请有两个重要的特点,第一个为时效性,通过设备性能指标的变动,能够动态调整当前用于对电子设备进行资源调度的调度策略。第二个是针对于不同用户场景,增加了对应的设备性能指标权重,如此可以针对不同的用户场景进行特有的资源调优。比如,看视频或玩游戏可能会对GPU负载比较关心;上网会对网络负载进行关心;拷贝压缩会对IO负载比较关心等。如此针对于用户场景计算出的系统负载等级,在后续确定调度策略时,所确定出的对应的调优参数也能更为合适,从而有助于据此实现对电子设备的资源的合理分配,满足用户需求。
可选地,根据该用户场景获取该多个设备性能指标值中每个设备性能指标值的权重的操作可以为:对于该多个设备性能指标值中任意的一个设备性能指标值,根据该用户场景和这一个设备性能指标值所指示的设备性能指标,从用户场景、设备性能指标与权重之间的对应关系中,获取对应的权重作为这一个设备性能指标值的权重。
用户场景、设备性能指标与权重之间的对应关系可以由技术人员根据使用需求事先设置,如可以由技术人员根据对各种用户场景的测试和总结得到。比如,浏览器场景下的在线观看视频场景中,影响因子会偏向于网络负载、CPU负载、GPU负载,而IO负载相对影响较小,从而在该对应关系中,浏览器场景下的在线观看视频场景对应的网络负载的权重、CPU负载的权重、GPU负载的权重可以相同,而IO负载的权重可以小于网络负载的权重、CPU负载的权重、GPU负载的权重。并且,在该对应关系中,某一用户场景对应的所有设备性能指标的权重之和为1。
在一种可能的方式中,根据该多个设备性能指标值和该多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级的操作可以为:根据该多个设备性能指标值中每个设备性能指标值的权重,对该多个设备性能指标值进行加权平均,得到系统负载值;根据该系统负载值与系统负载阈值之间的大小关系,确定系统负载等级。
系统负载阈值可以预先进行设置,系统负载阈值是用于划分系统负载等级的阈值。因而本申请实施例中可以根据系统负载值与系统负载阈值之间的大小关系确定系统负载等级。
在另一种可能的方式中,根据该多个设备性能指标值和该多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级的操作可以为:确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值;根据该多个设备性能指标值中每个设备性能指标值对应的权重,对该多个设备性能指标值中每个设备性能指标值对应的负载等级值进行加权平均,得到系统负载等级值;根据该系统负载等级值确定系统负载等级。
负载等级值是负载等级对应的数值,即将负载等级用数值的形式进行体现。某个设备性能指标值对应的负载等级值用于体现这个设备性能指标值所指示的负载的高低。也即,某个设备性能指标值对应的负载等级值越大,这个设备性能指标值所处的负载等级就越高,这个设备性能指标值所指示的负载也就越高。某个设备性能指标值对应的负载等级值越小,这个设备性能指标值所处的负载等级就越低,这个设备性能指标值所指示的负载也就越低。
系统负载等级值用于体现系统负载的高低。也即,系统负载等级值越大,系统负载等级就越高,系统负载也就越高。系统负载等级值越小,系统负载等级就越低,系统负载也就越低。
进一步地,若未识别到用户场景,则确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值;根据该多个设备性能指标值中每个设备性能指标值对应的负载等级值,确定系统负载等级值;根据该系统负载等级值确定系统负载等级。
可选地,确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值的操作可以为:对于该多个设备性能指标值中任意的一个设备性能指标值,根据这一个设备性能指标值与这一个设备性能指标值所指示的设备性能指标的负载等级阈值之间的大小关系,确定这一个设备性能指标值所处的负载等级;从负载等级与负载等级值之间的对应关系中,获取这一个设备性能指标值所处的负载等级对应的负载等级值。
电子设备中可以预先设置有各个设备性能指标的负载等级阈值,各个设备性能指标的负载等级阈值是用于划分负载等级的设备性能指标阈值。不同设备性能指标的负载等级阈值可以不同。因而本申请实施例中可以根据设备性能指标值与负载等级阈值之间的大小关系确定设备性能指标值所处的负载等级。
可选地,该多个设备性能指标值包括CPU负载率和IO负载率,根据该多个设备性能指标值中每个设备性能指标值对应的负载等级值,确定系统负载等级值的操作可以为:将该CPU负载率对应的负载等级值和该IO负载率对应的负载等级值中较小的一个负载等级值减去1,得到目标数值;将该CPU负载率对应的负载等级值和该IO负载率对应的负载等级值中较大的一个负载等级值与该目标数值相加,得到系统负载等级值。
可选地,根据该系统负载等级值确定系统负载等级的操作可以为:根据该系统负载等级值,从负载等级与负载等级值之间的对应关系中,获取对应的负载等级作为系统负载等级。
在一些实施例中,若根据该系统负载等级值,从负载等级与负载等级值之间的对应关系中查找不到对应的负载等级,即在负载等级与负载等级值之间的对应关系中,不存在与该系统负载等级值对应的负载等级,则在该系统负载等级值大于该对应关系中的最大的负载等级值的情况下,确定系统负载等级为该对应关系中最高的负载等级;在该系统负载等级值小于该对应关系中的最小的负载等级值的情况下,确定系统负载等级为该对应关系中最低的负载等级;在该系统负载等级值处于该对应关系中相邻的两个负载等级值之间时,确定这两个负载等级值中与该系统负载等级值较为接近的一个负载等级值,将这个负载等级值对应的负载等级确定为系统负载等级。
第二方面,提供了一种系统负载确定装置,所述系统负载确定装置具有实现上述第一方面中系统负载确定方法行为的功能。所述系统负载确定装置包括至少一个模块,所述至少一个模块用于实现上述第一方面所提供的系统负载确定方法。
第三方面,提供了一种系统负载确定装置,所述系统负载确定装置的结构中包括处理器和存储器,所述存储器用于存储支持系统负载确定装置执行上述第一方面所提供的系统负载确定方法的程序,以及存储用于实现上述第一方面所述的系统负载确定方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述系统负载确定装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的系统负载确定方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的系统负载确定方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种软件模块架构示意图;
图3是本申请实施例提供的一种软件模块间的交互示意图;
图4是本申请实施例提供的另一种软件模块架构示意图;
图5是本申请实施例提供的另一种软件模块间的交互示意图;
图6是本申请实施例提供的一种系统负载确定方法的流程图;
图7是本申请实施例提供的一种系统负载等级确定过程的示意图;
图8是本申请实施例提供的另一种系统负载等级确定过程的示意图;
图9是本申请实施例提供的一种系统负载确定装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请中描述的“一个实施例”或“一些实施例”等语句意味着在本申请的一个或多个实施例中包括该实施例描述的特定特征、结构或特点。由此,在本申请中的不同之处出现的“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等语句不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。此外,术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了各实施例的描述清楚简洁,下面给出相关概念或技术的简要介绍:
1、焦点窗口(focus window),指拥有焦点的窗口。焦点窗口是唯一可以接收键盘输入的窗口。焦点窗口的确定方式与系统的焦点模式(focus mode)关联。焦点窗口的顶层窗口被称为活动窗口(active window)。同一时间只有一个窗口可以是活动窗口。焦点窗口大概率为用户当前需要使用的窗口。
2、焦点应用,指焦点窗口所属的应用,焦点应用是当前前台运行可接收键盘输入和鼠标操作等操作的应用。
3、非焦点应用,指前台运行但是当前不能接收键盘输入和鼠标操作等操作的应用,即一般是指运行在前台但是用户没有操作的应用。
4、后台应用,指已经最小化至后台运行的应用。
5、焦点模式,可用于决定鼠标如何使一个窗口获得焦点。一般地,焦点模式可包括三种,分别为:
(1)点击聚焦(click-to focus),在这种模式下,鼠标点击的窗口即可获得焦点。也即,当鼠标点击一个可以获得焦点的窗口的任意位置,即可激活这个窗口,这个窗口便被置于所有窗口的最前面,并接收键盘输入。当鼠标点击其他窗口时,这个窗口会失去焦点。
(2)焦点跟随鼠标(focus-follow-mouse),在这种模式下,鼠标下的窗口可以获取焦点。也即,当鼠标移到一个可以获得焦点的窗口的范围内,用户不需要点击窗口的某个地方就可以激活这个窗口,接收键盘输入,但这个窗口不一定被置于所有窗口的最前面。当鼠标移出这个窗口的范围时,这个窗口也会随之失去焦点。
(3)草率聚焦(sloppy focus),这种焦点模式与focus-follow-mouse比较类似,当鼠标移到一个可以获得焦点的窗口的范围内,用户不需要点击窗口的某个地方就可以激活这个窗口,接收键盘输入,但这个窗口不一定被置于所有窗口的最前面。与focus-follow-mouse不同的是,当鼠标移出这个窗口的范围时,焦点并不会随之改变,只有当鼠标移动到别的可以接收焦点的窗口时,焦点才改变。
6、进程,包括多个线程,线程可以创建窗口。焦点进程为创建焦点窗口的线程所属的进程。
7、长时睿频功耗(power limit1,PL1),指CPU在正常负载下的功耗,相当于热设计功耗,CPU绝大部分时间的运行功耗不超过PL1。
8、短时睿频功耗(power limit2,PL2),指CPU在短时间内可达到的最高功耗,其具有持续时间限制。一般地,PL2大于PL1。
值得注意的是,PL1和PL2是英特尔平台的名称。在超威半导体公司(Advanced Micro Devices,AMD)/>平台,PL1称为SPL(sustained power limit),PL2的一阶段称为FPPT(fast ppt limit),PL2的二阶段称为SPPT(slow ppt limit)。
9、CPU能效比(energy performance preference,EPP),用于反映CPU的调度倾向,其取值范围为0~255。CPU能效比越小,则表明CPU趋向于高性能;CPU能效比越高,则表明CPU趋向于低功耗。
10、能效-性能优化挡位(energy performance optimize gear,EPO Gear),用来表征调节EPP的力度,取值范围可以是1~5;值越大,调节EPP时越倾向能效;值越小,调节EPP时越倾向性能。
下面对本申请实施例涉及的电子设备予以说明。
电子设备可以是平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、台式机、个人数字助理(personal digital assistant,PDA)等设备。
图1是本申请实施例提供的一种电子设备100的结构示意图。如图1所示,电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,无线通信模块150,显示屏160等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
在一些实施例中,处理器110中还可以设置存储器,用于存储指令和数据。示例地,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或USB接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏160,和无线通信模块150等供电。在一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
无线通信模块150可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。例如,本申请实施例中,电子设备100可以通过无线通信模块150与诸如无线耳机等设备建立蓝牙连接。无线通信模块150可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块150经由天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块150还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线转为电磁波辐射出去。
电子设备100通过GPU,显示屏160,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏160和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏160用于显示图像,视频等。显示屏160包括显示面板。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能,例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
接下来对电子设备100的一种可能的软件系统予以说明。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Windows系统为例,对电子设备100的软件系统进行示例性说明。
图2是本申请实施例提供的一种电子设备100的软件系统的框图。参见图2,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Windows系统分为用户态和内核态。其中,用户态包括应用层以及子系统动态链接库。内核态自下而上分为固件层、硬件抽象层(hardware abstraction layer,HAL)、内核(kernel)和驱动层及执行体。
如图2所示,应用层包括音乐、视频、游戏、办公、社交等应用程序。应用层还包括环境子系统、系统探针模块、第一场景识别引擎以及第一调度引擎等。其中,图中仅示出部分应用程序,应用层还可以包括其他应用程序,如购物应用、浏览器等,本申请实施例对此不作限定。
环境子系统可以将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,为应用程序提供执行环境。
系统探针模块用于向第一场景识别引擎进行状态上报。第一场景识别引擎用于根据系统探针模块上报的状态完成用户场景的识别,并根据识别到的用户场景,确定调度策略。第一调度引擎用于根据调度策略对固件层进行调度。
在一些实施例中,第一场景识别引擎可以识别电子设备100所处的用户场景,并确定与该用户场景匹配的基础调度策略。第一调度引擎可以获取电子设备100的负载情况,并结合电子设备100的负载情况及上述基础调度策略确定符合电子设备100实际运行情况的实际调度策略。其中,关于第一场景识别引擎和第一调度引擎的具体内容见后文,在此暂不描述。
子系统动态链接库包括应用编程接口(application programming interface,API)模块,该API模块包括Windows(窗口)API,Windows原生API等。其中,Windows API,Windows原生API均可以为应用程序提供系统调用入口及内部函数支持,区别在于Windows原生API为Windows系统原生的API。例如,Windows API可包括user.dll、kernel.dll,Windows原生API可包括ntdll.dll。其中,user.dll是Windows用户界面接口,可用于执行创建窗口、发送消息等操作。kernel.dll用于为应用程序提供访问内核的接口。ntdll.dll是重要的Windows NT内核级文件,描述了windows本地NTAPI的接口。当Windows启动时,ntdll.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
执行体包括进程管理器、虚拟内存管理器、安全引用监视器、输入/输出(Input/Output,I/O)管理器、Windows管理规范(Windows management instrumentation,WMI)插件、电源管理器、系统事件驱动(operating system event driver,OsEventDriver)节点(也可称为事件驱动(Event driver,Event驱动)节点)、系统与芯片驱动(operatingsystem to System on Chip,OS2SOC)节点等。
进程管理器用于创建及中止进程和线程。虚拟内存管理器实现“虚拟内存”。虚拟内存管理器也为高速缓存管理器提供基本的支持。安全引用监视器可在本地计算机上执行安全策略,它保护了操作系统资源,执行运行时对象的保护和监视。I/O管理器执行独立于设备的输入/输出,并进一步处理调用适当的设备驱动程序。电源管理器可管理所有支持电源状态更改的设备的电源状态更改。OsEventDriver节点可以与内核和驱动层进行交互,如与显卡驱动进行交互,在确定存在GPU视频解码事件后,向系统探针模块上报该GPU视频解码事件。OS2SOC节点可供第一调度引擎向硬件设备发送调整信息,如向CPU发送调整PL1和PL2的信息。
内核和驱动层包括内核以及设备驱动程序。内核是对处理器体系结构的抽象,将执行体与处理器体系结构的差异相隔离,保证系统的可移植性。内核可以进行线程安排和调度、陷阱处理和异常调度、中断处理和调度等。设备驱动程序运行在内核模式下,为I/O系统和相关硬件之间的接口。设备驱动程序可包括显卡驱动、动态调谐技术(dynamictuning technology,DTT)驱动、鼠标驱动、音视频驱动、摄像头驱动、键盘驱动等。例如,显卡驱动可以驱动GPU运行,Intel DTT驱动可以驱动CPU运行。
HAL是一个核心态模块,可以隐藏各种与硬件有关的细节,如I/O接口、中断控制器以及多处理器通信机制等,为运行Windows的不同硬件平台提供统一的服务接口,实现多种硬件平台上的可移植性。需要说明的是,为了维护Windows的可移植性,Windows内部组件和用户编写的设备驱动程序并不直接访问硬件,而是通过调用HAL中的例程。
固件层可以包括基本输入输出系统(basic input output system,BIOS),BIOS是一组固化到计算机主板上一个只读存储器(read only memory,ROM)芯片内的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。Intel DTT驱动可以通过BIOS向CPU发送指令的。
需要说明的是,本申请实施例仅以Windows系统为例来说明,在其他操作系统中(例如安卓(Android)系统,IOS系统等),只要各个功能模块实现的功能和本申请实施例类似也能实现本申请的方案。
接下来对上文图2实施例所述的电子设备100对资源进行调度的软件及硬件的工作流程予以说明。
图3是本申请实施例提供的一种电子设备100对资源进行调度的软件及硬件的工作流程示意图。
如图3所示,应用层包括系统探针模块和第一场景识别引擎,第一场景识别引擎包括场景识别模块及基础策略匹配管理器。场景识别模块可分别与系统探针模块及基础策略匹配管理器进行交互。场景识别模块可以向系统探针模块发送获取探针状态的请求。系统探针模块可以获取电子设备100的运行状态。例如,系统探针模块可以包括电源状态探针、外设状态探针、进程负载探针、音视频状态探针、系统负载探针及系统事件探针等。
其中,电源状态探针可以向内核态订阅电源状态事件,根据内核态反馈的回调函数确定电源状态,电源状态包括电池(剩余)电量、电源模式等,电源模式可包括交流电源(alternating current,AC)状态和直流电源(direct current,DC)状态。例如,电源状态探针可向执行体层的OsEventDriver节点发送订阅电源状态事件的请求,由OsEventDriver节点向执行体层的电源管理器转发该请求。电源管理器可通过OsEventDriver节点向电源状态探针反馈回调函数。
外设状态探针可以向内核态订阅外设事件,根据内核态反馈的回调函数确定外设事件。外设事件包括鼠标滚轮滑动事件、鼠标点击事件、键盘输入事件、麦克风输入事件、摄像头输入事件等。
进程负载探针可以向内核态订阅进程负载,根据内核态反馈的回调函数确定进程(例如,焦点进程)的负载。
系统负载探针可以向内核态订阅系统负载,根据内核态反馈的回调函数确定系统负载。
音视频状态探针可向内核态订阅音视频事件,根据内核态反馈的回调函数确定电子设备100当前存在的音视频事件。音视频事件可包括GPU解码事件等。例如,音视频状态探针可向执行体层的OsEventDriver节点发送订阅GPU解码事件的请求,由OsEventDriver节点向内核和驱动层的显卡驱动转发该请求。显卡驱动可以监控GPU的状态,在监控到GPU在进行解码操作后,通过OsEventDriver节点向音视频状态探针反馈回调函数。
系统事件探针可以向内核态订阅系统事件,根据内核态反馈的回调函数确定系统事件。系统事件可包括窗口变化事件、进程创建事件、线程创建事件等。例如,系统事件探针可向执行体层的OsEventDriver节点发送订阅进程创建事件的请求,由OsEventDriver节点向进程管理器转发该请求。进程管理器可在创建进程后,通过OsEventDriver节点向系统事件探针反馈回调函数。又例如,系统事件探针还可以向API模块发送订阅焦点窗口变化事件的请求,API模块可监控电子设备100的焦点窗口是否发生变化,并在监控到焦点窗口发生变化时,向系统事件探针反馈回调函数。
可见,系统探针模块通过向内核态订阅电子设备100的各种事件,再根据内核态反馈的回调函数确定电子设备100的运行状态,即得到探针状态。系统探针模块得到探针状态后,可向场景识别模块反馈该探针状态。场景识别模块接收到探针状态后,可根据该探针状态确定电子设备100所处的用户场景。该用户场景可包括视频场景、游戏场景、办公场景及社交场景等。该用户场景可以反映用户当前的使用需求。例如,场景识别模块在识别出焦点窗口为视频应用的窗口时,确定出电子设备100处于视频场景,这说明用户需要使用视频应用观看、浏览视频。又例如,场景识别模块在识别出焦点窗口为即时通讯应用的聊天窗口时,确定电子设备100处于社交场景。场景识别模块还可向基础策略匹配管理器发送该用户场景。基础策略匹配管理器可根据该用户场景确定基础调度策略。基础策略匹配管理器可向场景识别模块反馈该基础调度策略。场景识别模块可向应用层的第一调度引擎发送该基础调度策略及该用户场景。
如图3所示,第一调度引擎包括负载管控器、芯片策略融合器以及调度执行器。其中,负载管控器可接收场景识别模块发送的该基础调度策略及该用户场景。负载管控器还可从系统探针模块获取系统负载,并根据系统负载和该用户场景对该基础调度策略进行调整,得到实际调度策略。实际调度策略中包括操作系统(Operating System,OS)调度策略和第一CPU功耗调度策略。
其中,负载管控器可向调度执行器发送该OS调度策略,由调度执行器基于该OS调度策略进行调度。OS调度策略用于调整焦点进程的进程优先级及I/O优先级。示例性的,调度执行器可向进程管理器发送调整焦点进程的进程优先级的指令,响应于该指令,进程管理器对焦点进程的进程优先级进行调整。又例如,调度执行器可向I/O管理器发送调整焦点进程的I/O优先级的指令,响应于该指令,I/O管理器对焦点进程的I/O优先级进行调整。
负载管控器还可向芯片策略融合器发送第一CPU功耗调度策略,芯片策略融合器可基于CPU的芯片平台类型及第一CPU功耗调度策略,得到第二CPU功耗调度策略。示例地,CPU的芯片平台类型主要分为两种,分别为的CPU和/>的CPU,这两类CPU对于CPU功耗的调整方式并不相同,因此需要进行区分。
若CPU的芯片平台类型为调度执行器可以向电源管理器发送调整EPP的指令,以调整CPU的EPP。另外,调度执行器还可以向OS2SOC驱动节点发送调整PL1、PL2的指令,以调整CPU的PL1和PL2。
若CPU的芯片平台类型为调度执行器可以通过WMI插件向Intel DTT驱动发送第二CPU功耗调度策略,第二CPU功耗调度策略可包括PL1的最小值(PL1_mini)、PL1的最大值(PL1_max)、PL2、PL2的持续时间(PL2_time)及EPO Gear,由Intel DTT驱动指示CPU基于第二CPU功耗调度策略运行。
接下来对电子设备100的另一种可能的软件系统予以说明。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Windows系统为例,对电子设备100的软件系统进行示例性说明。
图4是本申请实施例提供的一种电子设备100的软件系统的框图。参见图4,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Windows系统包括应用层、子系统动态链接库、驱动层和固件层。
如图4所示,应用层包括音乐、视频、游戏、办公、社交等应用程序。应用层还包括系统探针模块、第二场景识别引擎、第二调度引擎、策略配置模块、管家界面模块等。其中,图中仅示出部分应用程序,应用层还可以包括其他应用程序,如购物应用、浏览器等,本申请实施例对此不作限定。
系统探针模块用于向第二场景识别引擎进行状态上报。第二场景识别引擎用于根据系统探针模块上报的状态完成用户场景的识别,并根据识别到的用户场景,确定调度策略。第二调度引擎用于根据调度策略对固件层进行调度。
策略配置模块用于向第二场景识别引擎发送预先配置的多种调度策略,第二场景识别引擎在识别到用户场景后,从多种调度策略中查找与识别到的用户场景匹配的调度策略。管家界面模块用于向第二场景识别模块提供当前使用的电源模式,第二场景识别引擎可以选择与当前使用的电源模式和当前所处的用户场景相匹配的调度策略。
子系统动态链接库包括API模块,该API模块包括Windows API,Windows原生API等。其中,Windows API,Windows原生API均可以为应用程序提供系统调用入口及内部函数支持,区别在于Windows原生API为Windows系统原生的API。例如,Windows API可包括user.dll、kernel.dll,Windows原生API可包括ntdll.dll。其中,user.dll是Windows用户界面接口,可用于执行创建窗口、发送消息等操作。kernel.dll用于为应用程序提供访问内核的接口。ntdll.dll是重要的Windows NT内核级文件,描述了windows本地NTAPI的接口。当Windows启动时,ntdll.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
驱动层可以包括进程管理器、虚拟内存管理器、安全引用监视器、I/O管理器、电源管理器、WMI插件、Event驱动节点、OS2SOC驱动节点。
进程管理器用于创建及中止进程和线程。虚拟内存管理器实现“虚拟内存”。虚拟内存管理器也为高速缓存管理器提供基本的支持。安全引用监视器可在本地计算机上执行安全策略,它保护了操作系统资源,执行运行时对象的保护和监视。I/O管理器执行独立于设备的输入/输出,并进一步处理调用适当的设备驱动程序。电源管理器可管理所有支持电源状态更改的设备的电源状态更改。WMI插件可供第二调度引擎向固件层发送调度策略;Event驱动节点可以与显卡驱动、音视频驱动、摄像头驱动和键盘驱动等进行交互,以使得系统探针模块可以探测到各种事件(也可以称为数据或信息),例如与显卡驱动进行交互,使得系统探针模块可以监测到GPU视频解码事件。OS2SOC驱动节点可供第二调度引擎向固件层发送调度策略。
固件层包括为电子设备100配置的各种硬件和硬件驱动,如固件层可以包括CPU、鼠标等,固件层还包括鼠标驱动。电子设备100配置的硬件所属硬件平台可能不同,如硬件平台包括:和/>等,这三个硬件平台的调度策略可以不同,因此第二调度引擎在确定调度策略时可以区分硬件平台类型。这种情况下,固件层还可以包括Intel DTT、AMD电源管理框架(power management framework,PMF)、NVIDIA数据库(database,DB)等。
需要说明的是,本申请实施例仅以Windows系统为例来说明,在其他操作系统中(例如Android系统,IOS系统等),只要各个功能模块实现的功能和本申请实施例类似也能实现本申请的方案。
接下来对上文图4实施例所述的电子设备100对资源进行调度的软件及硬件的工作流程予以说明。
图5是本申请实施例提供的一种电子设备100对资源进行调度的软件及硬件的工作流程示意图。
如图5所示,电子设备100的操作系统包括系统探针模块、第二场景识别引擎、第二调度引擎和芯片调度引擎。系统探针模块、第二场景识别引擎和第二调度引擎位于应用层,第二场景识别引擎可以作为插件运行,第二调度引擎可以作为服务运行。芯片调度引擎位于驱动层,且芯片调度引擎可以作为服务运行。
第二场景识别引擎可以与系统探针模块进行交互,以根据系统探针模块反馈的电子设备100的运行状态识别用户场景。第二场景识别引擎可以与第二调度引擎进行交互,第二场景识别引擎识别出用户场景后,根据用户场景确定调度策略,将调度策略下发给第二调度引擎。第二调度引擎接收到调度策略后,向第二场景识别引擎返回接收结果,以通知第二场景识别引擎自身已成功接收到调度策略。然后,第二调度引擎向芯片调度引擎发送调度策略,由芯片调度引擎执行调度策略。
第二场景识别引擎包括场景识别模块、场景库、策略调度模块和策略库。第二调度引擎包括场景交互模块、调度策略融合模块和调度执行器。芯片调度引擎包括WMI插件、Event驱动节点和OS2SOC驱动节点。固件层包括Intel DTT、AMD PMF、NVIDIADB等。
如图5所示,第二场景识别引擎可以分别与系统探针模块、策略配置模块、管家界面模块、第二调度引擎进行交互。
管家界面模块可以向第二场景识别引擎发送电子设备当前使用的电源模式,电源模式可以辅助第二场景识别引擎确定调度策略;策略配置模块用于向第二场景识别引擎发送预先配置的多种调度策略。
系统探针模块可以获取电子设备100的运行状态。例如,系统探针模块可以包括电源状态探针、外设状态探针、音视频状态探针、应用切换探针、系统负载探针、系统工作状态探针等。
其中,电源状态探针用于检测电源状态,电源状态包括电池(剩余)电量、电源模式、电源计划等,电源模式可以包括AC状态和DC状态,电源计划可以包括能效计划、平衡计划、性能计划等。外设状态探针用于检测外设事件,外设事件包括鼠标滚轮滑动事件、鼠标点击事件、键盘输入事件、麦克风输入事件、摄像头输入事件等。音视频状态探针用于检测电子设备100当前存在的音频事件和视频事件。应用切换探针用于检测电子设备100当前运行的应用,即检测焦点应用、非焦点应用、后台应用等,其中,焦点应用为焦点窗口所属的应用,非焦点应用为当前打开的窗口中不是焦点窗口但也未被最小化的窗口所属的应用,后台应用为后台运行的应用。系统负载探针用于检测系统当前的负载等级。系统工作状态探针用于检测系统当前的工作状态,即检测系统当前是否为idle(空闲)状态。
系统探针模块通过各种探针检测电子设备100的运行状态,即得到探针状态。第二场景识别引擎可以向系统探针模块订阅探针状态。这种情况下,系统探针模块得到探针状态后,可向第二场景识别引擎上报探针状态。
第二场景识别引擎中的场景库用于存储多个用户场景,如用户场景包括社交场景、办公场景和浏览器场景等多个主场景,每个主场景下可以划分多个子场景,如浏览器场景包括浏览器上网场景、浏览器音频播放场景和浏览器视频播放场景等。第二场景识别引擎中的策略库用于存储策略配置模块发送的多种调度策略。例如,调度策略包括大小核调度和办公策略库等,办公策略库中记录与办公应用相关的调度策略,大小核调度是第12代平台的架构提供的大小核调度能力,指示优先使用大核(偏性能)还是小核(偏能效)进行的策略配置。
策略调度模块可以向场景识别模块发送查询订阅场景请求,查询订阅场景请求用于触发场景识别模块进行场景识别,查询订阅场景请求可以在电子设备100开机后立即发送,也可以定期发送,本申请实施例对此不作限定。
场景识别模块在接收到查询订阅场景请求后,向系统探针模块发送查询订阅状态请求,查询订阅状态请求用于指示系统探针模块中的各探针进行状态探测/状态确定等,然后系统探针模块可以向场景识别模块上报电子设备100的状态。场景识别模块根据电子设备的状态,从场景库中确定出电子设备100当前所处的用户场景,向策略调度模块上报用户场景。策略调度模块可以根据电子设备100当前所处的用户场景,从策略库中确定调度策略。
此外,策略调度模块还可以接收管家界面模块下发的电源模式,电源模式可根据管家界面模块下发的用户开关标识确定。策略调度模块在确定调度策略时可以参照电源模式,如确定与当前使用的电源模式和当前所处的用户场景相匹配的调度策略。或者,电源模式作为策略调度模块是否确定调度策略的条件,在电源模式为预设模式时,策略调度模块根据用户场景确定调度策略。
在一些实施例中,策略调度模块还可以获取系统负载,如可以从系统探针模块中的系统负载探针处获取系统负载。策略调度模块在确定调度策略时可以参照系统负载,如确定与当前的系统负载和当前所处的用户场景相匹配的调度策略。
策略调度模块将调度策略发送给场景交互模块,场景交互模块在接收到调度策略后,向策略调度模块返回接收结果,接收结果用于通知策略调度模块自身已成功接收到调度策略。场景交互模块将调度策略发送给调度策略融合模块,由调度策略融合模块对调度策略进行解析转义,以将调度策略中的策略参数解析转义成硬件平台识别的参数。调度策略融合模块将解析转义后的调度策略发送给调度执行器。调度执行器根据硬件平台类型发送解析转义后的调度策略。
例如,如果硬件平台类型为调度执行器可以向OS2SOC驱动节点发送解析转义后的调度策略;如果硬件平台类型为/>调度执行器可以通过WMI插件向Intel DTT驱动发送解析转义后的调度策略。在本申请实施例中,调度策略可以是芯片调度策略,通过调整芯片的能效比,实现功耗的最佳平衡。例如,调度策略可以是CPU的功耗调度策略。
如果硬件平台类型为调度执行器可以向电源管理器发送调度策略中的用于调整CPU的EPP的指令。另外,调度执行器还可以向OS2SOC驱动节点发送调度策略中的用于调整CPU的PL1、PL2的指令。若硬件平台类型为/>调度执行器可以通过WMI插件向Intel DTT驱动发送调度策略,其中可包括PL1的最小值、PL1的最大值、PL2、PL2的持续时间及EPO Gear,由Intel DTT驱动指示CPU基于该调度策略运行。WMI插件、Intel DTT和OS2SOC驱动节点在接收到调度策略后,可以返回接收结果,接收结果用于指示自身已成功接收到调度策略。
需要说明的是,在上文图2-图3实施例中,第一场景识别引擎可以根据系统负载和用户场景确定调度策略。类似的,在上文图4-图5实施例中,第二场景识别引擎可以根据系统负载和用户场景确定调度策略。可知,在电子设备的资源调度过程中,对于电子设备的系统负载的准确确定是非常重要的。
为此,本申请实施例提供了一种系统负载确定方法,可以实时获取电子设备的多个设备性能指标值,然后根据电子设备当前所处的用户场景对应计算出各个设备性能指标值的权重,结合多个设备性能指标值和各个设备性能指标值的权重可以确定当前用户场景下的系统负载,据此可以进行后续的设备性能资源调优流程。
下面对本申请实施例提供的系统负载确定方法进行详细地解释说明。
图6是本申请实施例提供的一种系统负载确定方法的流程图。参见图6,该方法包括以下步骤:
步骤601:电子设备获取电子设备的多个设备性能指标值。
设备性能指标值是与系统负载有关的设备性能指标的值。设备性能指标值大于或等于0且小于或等于1。设备性能指标值可以体现系统负载情况,即体现系统负载的高低。也就是说,设备性能指标值越大,系统负载越大;设备性能指标值越小,系统负载越小。
示例地,本申请实施例中,与系统负载有关的多个设备性能指标可以包括CPU负载、IO负载(即磁盘IO负载)、GPU负载、网络负载等负载中的至少两个。相应地,多个设备性能指标值可以包括CPU负载率、IO负载率(即磁盘IO负载率)、GPU负载率、网络负载率等负载率中的至少两个。
CPU负载率用于体现CPU负载情况。示例地,CPU负载率可以包括系统丢帧率。系统丢帧率可以体现CPU负载的高低。也即,系统丢帧率越高,说明CPU负载越高;系统丢帧率越低,说明CPU负载越低。可选地,可以通过SurfaceFlinger服务中用于获取帧信息的相关接口来获取系统丢帧率。或者,CPU负载率可以包括CPU使用率。CPU使用率可以体现CPU负载的高低。也即,CPU使用率越高,说明CPU负载越高;CPU使用率越低,说明CPU负载越低。可选地,可以每隔一段时间(如1秒)通过相关接口采集一次CPU使用率。
IO负载率用于体现IO负载情况。示例地,IO负载率可以包括IO时间比率,IO时间比率是指周期内用于IO操作的时间比率,即指示一秒中有百分之多少的时间用于IO操作。IO时间比率可以体现IO负载的高低。也即,IO时间比率越高,说明IO负载越高;IO时间比率越低,说明IO负载越低。可选地,可以通过IO吞吐量统计服务来获取IO时间比率。或者,IO负载率可以包括IO使用率。IO使用率可以体现IO负载的高低。也即,IO使用率越高,说明IO负载越高;IO使用率越低,说明IO负载越低。可选地,可以每隔一段时间(如2秒)通过相关性能计数器接口采集一次IO使用率。
GPU负载率用于体现GPU负载情况。示例地,GPU负载率可以包括GPU使用率。GPU使用率可以体现GPU负载的高低。也即,GPU使用率越高,说明GPU负载越高;GPU使用率越低,说明GPU负载越低。可选地,可以每隔一段时间(如1秒)通过相关性能计数器接口采集一次GPU使用率。
网络负载率用于体现网络负载情况。示例地,网络负载率可以通过相关的性能计数器接口来获取,或者可以通过监控网络数据包的方式来获取,本申请实施例对此不作限定。
步骤602:电子设备识别电子设备当前所处的用户场景。
该用户场景是指用户的使用场景,即用户正在使用电子设备做什么事情。该用户场景可以反映用户需求。
具体地,步骤602的操作可以为:电子设备获取电子设备的应用运行信息,根据该应用运行信息确定电子设备所处的用户场景。
由于用户使用电子设备时往往是使用电子设备中安装的各种应用,所以本申请实施例中可以根据应用运行信息来确定用户场景,据此确定出的用户场景比较准确。
该应用运行信息可以包括焦点应用信息,进一步还可以包括非焦点应用信息、后台应用信息等应用信息。本申请实施例中,某个应用的应用信息可以包括这个应用的应用名、应用类型、应用运行状态等。
可选地,电子设备根据该应用运行信息确定电子设备所处的用户场景的操作可以为:电子设备根据焦点应用信息中的应用类型(即焦点应用的应用类型)确定主场景,再根据该主场景、焦点应用信息中的应用运行状态(即焦点应用的应用运行状态)确定子场景,该主场景和该子场景为用户场景。
可选地,电子设备中可以预先设置焦点应用类型与主场景之间的对应关系。这种情况下,电子设备可以根据焦点应用信息中的应用类型,从焦点应用类型与主场景之间的对应关系中,获取对应的主场景。
比如,焦点应用类型与主场景之间的对应关系可以如下表1所示。这种情况下,若焦点应用信息中的应用类型为视频类,则根据表1可以确定主场景为视频场景;若焦点应用信息中的应用类型为办公类,则根据表1可以确定主场景为办公场景;若焦点应用信息中的应用类型为游戏类,则根据表1可以确定主场景为游戏场景;若焦点应用信息中的应用类型为社交类,则根据表1可以确定主场景为社交场景;若焦点应用信息中的应用类型为浏览器类,则根据表1可以确定主场景为浏览器场景。
表1
焦点应用类型 | 主场景 |
视频类 | 视频场景 |
办公类 | 办公场景 |
游戏类 | 游戏场景 |
社交类 | 社交场景 |
浏览器类 | 浏览器场景 |
…… | …… |
本申请实施例中仅以上表1为例来对焦点应用类型与主场景之间的对应关系进行示例性说明,上表1并不对本申请实施例构成限定。
作为一种示例,电子设备可以根据该主场景和焦点应用信息中的应用运行状态直接确定子场景。
可选地,电子设备中可以预先设置主场景、焦点应用运行状态与子场景之间的对应关系。这种情况下,电子设备可以根据该主场景和焦点应用信息中的应用运行状态,从主场景、焦点应用运行状态与子场景之间的对应关系中,获取对应的子场景。
比如,主场景、焦点应用运行状态与子场景之间的对应关系可以如下表2所示。这种情况下,若该主场景为办公场景,焦点应用信息中的应用运行状态为接收鼠标输入,则根据表2可以确定子场景为办公场景下的文档浏览场景。若该主场景为办公场景,焦点应用信息中的应用运行状态为接收键盘输入,则根据表2可以确定子场景为办公场景下的文档编辑场景。若该主场景为办公场景,焦点应用信息中的应用运行状态为使用摄像头,则根据表2可以确定子场景为办公场景下的视频会议场景。若该主场景为社交场景,焦点应用信息中的应用运行状态为接收键盘输入,则根据表2可以确定子场景为社交场景下的文字聊天场景。若该主场景为社交场景,焦点应用信息中的应用运行状态为使用麦克风且未使用摄像头,则根据表2可以确定子场景为社交场景下的语音聊天场景。若该主场景为社交场景,焦点应用信息中的应用运行状态为使用麦克风且使用摄像头,则根据表2可以确定子场景为社交场景下的视频聊天场景。
表2
本申请实施例中仅以上表2为例来对主场景、焦点应用运行状态与子场景之间的对应关系进行示例性说明,上表2并不对本申请实施例构成限定。
作为另一种示例,电子设备可以根据该主场景、焦点应用信息中的应用运行状态、非焦点应用信息和后台应用信息确定至少一个子场景,然后再从该至少一个子场景中选择出优先级最高的一个子场景。
电子设备中可以预先设置各个子场景的优先级,各个子场景的优先级可以由技术人员根据使用需求预先进行设置,如技术人员可以根据各个子场景对电子设备的续航能力的影响程度来设置各个子场景的优先级,其中对电子设备的续航能力的影响程度越大的,优先级越高,对电子设备的续航能力的影响程度越小的,优先级越低。
可选地,电子设备中可以预先设置主场景、焦点应用运行状态、非焦点应用信息、后台应用信息与子场景之间的对应关系。这种情况下,电子设备可以根据该主场景、焦点应用信息中的应用运行状态、非焦点应用信息和后台应用信息,从主场景、焦点应用运行状态、非焦点应用信息、后台应用信息与子场景之间的对应关系中,获取对应的至少一个子场景。
比如,主场景、焦点应用运行状态、非焦点应用信息、后台应用信息与子场景之间的对应关系可以如下表3所示。
这种情况下,若主场景为浏览器场景,焦点应用信息中的应用运行状态为无,非焦点应用信息中的应用名为word、应用类型为办公类、应用运行状态为无,后台应用信息中的应用名为xx音乐、应用类型为音乐类、应用运行状态为输出音频,则根据表3可以确定子场景有两个,一个是浏览器场景下的办公资料查询场景,另一个是浏览器场景下的后台听音乐场景。假设浏览器场景下的办公资料查询场景的优先级高于浏览器场景下的后台听音乐场景的优先级,则可以选择浏览器场景下的办公资料查询场景。
若主场景为办公场景,焦点应用信息中的应用运行状态为接收键盘输入,非焦点应用信息中的应用名为xx交友、应用类型为社交类、应用运行状态为使用麦克风,后台应用信息中的应用名为xx浏览器、应用类型为浏览器类、应用运行状态为无,则根据表3可以确定子场景有两个,一个是办公场景下的语音聊天场景,另一个是办公场景下的文档编辑场景。假设办公场景下的语音聊天场景的优先级高于办公场景下的文档编辑场景的优先级,则可以选择办公场景下的语音聊天场景。
表3
本申请实施例中仅以上表3为例来对主场景、焦点应用运行状态、非焦点应用信息、后台应用信息与子场景之间的对应关系进行示例性说明,上表3并不对本申请实施例构成限定。
值得注意的是,由于电子设备的使用情况是比较复杂的,所以通常仅能识别出一些有限的用户场景,这些用户场景一般是技术人员预先设置的需要重点关注的一些用户场景。也即,电子设备一般只能识别出一些比较典型的用户场景,而在本申请实施例不关注或尚未关注到的其他的使用情况中将不会识别到用户场景。因而在步骤602中电子设备有可能识别出了用户场景,也有可能未识别到用户场景。
电子设备在未识别到用户场景的情况下,可以继续执行如下步骤603来确定电子设备的系统负载等级(level)。而在识别出用户场景的情况下,可以继续执行如下步骤604来确定电子设备的系统负载等级。
步骤603:电子设备若未识别到用户场景,则确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值,根据该多个设备性能指标值中每个设备性能指标值对应的负载等级值确定系统负载等级值,根据该系统负载等级值确定系统负载等级。
系统负载等级用于体现系统整体的负载情况。示例地,系统负载等级可以为轻、中、重。系统负载等级为轻说明系统负载较低;系统负载等级为中说明系统负载较为适中;系统负载等级为重说明系统负载较高。
负载等级值是负载等级对应的数值,即将负载等级用数值的形式进行体现。某个设备性能指标值对应的负载等级值用于体现这个设备性能指标值所指示的负载的高低。也即,某个设备性能指标值对应的负载等级值越大,这个设备性能指标值所处的负载等级就越高,这个设备性能指标值所指示的负载也就越高。某个设备性能指标值对应的负载等级值越小,这个设备性能指标值所处的负载等级就越低,这个设备性能指标值所指示的负载也就越低。
系统负载等级值用于体现系统负载的高低。也即,系统负载等级值越大,系统负载等级就越高,系统负载也就越高。系统负载等级值越小,系统负载等级就越低,系统负载也就越低。
可选地,电子设备确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值的操作可以为:对于该多个设备性能指标值中任意的一个设备性能指标值,根据这个设备性能指标值与这个设备性能指标值所指示的设备性能指标的负载等级阈值之间的大小关系,确定这个设备性能指标值所处的负载等级,然后从负载等级与负载等级值之间的对应关系中,获取这个设备性能指标值所处的负载等级对应的负载等级值。
电子设备中可以预先设置有各个设备性能指标的负载等级阈值,各个设备性能指标的负载等级阈值是用于划分负载等级的设备性能指标阈值。不同设备性能指标的负载等级阈值可以不同。因而本申请实施例中可以根据设备性能指标值与负载等级阈值之间的大小关系确定设备性能指标值所处的负载等级。
比如,这个设备性能指标值是CPU负载率,CPU负载有三个负载等级:轻、中、重,分别对应三个负载等级阈值为20%、50%、100%。这种情况下,当该CPU负载率小于或等于20%时,可以确定该CPU负载率所处的负载等级为轻,然后可以从下表4所示的负载等级与负载等级值之间的对应关系中,获取负载等级“轻”对应的负载等级值为1。当该CPU负载率大于20%且小于或等于50%时,可以确定该CPU负载率所处的负载等级为中,然后可以从下表4所示的负载等级与负载等级值之间的对应关系中,获取负载等级“中”对应的负载等级值为2。当该CPU负载率大于50%且小于或等于100%时,可以确定该CPU负载率所处的负载等级为重,然后可以从下表4所示的负载等级与负载等级值之间的对应关系中,获取负载等级“重”对应的负载等级值为3。
又比如,这个设备性能指标值是IO负载率,IO负载有三个负载等级:轻、中、重,分别对应三个负载等级阈值为10%、30%、100%。这种情况下,当该IO负载率小于或等于10%时,可以确定该IO负载率所处的负载等级为轻,然后可以从下表4所示的负载等级与负载等级值之间的对应关系中,获取负载等级“轻”对应的负载等级值为1。当该IO负载率大于10%且小于或等于30%时,可以确定该IO负载率所处的负载等级为中,然后可以从下表4所示的负载等级与负载等级值之间的对应关系中,获取负载等级“中”对应的负载等级值为2。当该IO负载率大于30%且小于或等于100%时,可以确定该IO负载率所处的负载等级为重,然后可以从下表4所示的负载等级与负载等级值之间的对应关系中,获取负载等级“重”对应的负载等级值为3。
表4
负载等级 | 负载等级值 |
轻 | 1 |
中 | 2 |
重 | 3 |
本申请实施例仅以上表4为例来对负载等级与负载等级值之间的对应关系进行示例性说明,上表4并不对本申请实施例构成限定。
可选地,电子设备根据该多个设备性能指标值中每个设备性能指标值对应的负载等级值确定系统负载等级值的操作可以为:若该多个设备性能指标值包括CPU负载率和IO负载率,则将该CPU负载率对应的负载等级值和该IO负载率对应的负载等级值中较小的一个负载等级值减去1,得到目标数值,将该CPU负载率对应的负载等级值和该IO负载率对应的负载等级值中较大的一个负载等级值与目标数值相加,得到系统负载等级值。
可选地,电子设备根据该系统负载等级值确定系统负载等级的操作可以为:根据该系统负载等级值,从负载等级与负载等级值之间的对应关系中,获取对应的负载等级作为系统负载等级。
在一些实施例中,若根据该系统负载等级值,从负载等级与负载等级值之间的对应关系中查找不到对应的负载等级,即在负载等级与负载等级值之间的对应关系中,不存在与该系统负载等级值对应的负载等级,则在该系统负载等级值大于该对应关系中的最大的负载等级值的情况下,确定系统负载等级为该对应关系中最高的负载等级,如在上表4所示的负载等级与负载等级值之间的对应关系中即为重;在该系统负载等级值小于该对应关系中的最小的负载等级值的情况下,确定系统负载等级为该对应关系中最低的负载等级,如在上表4所示的负载等级与负载等级值之间的对应关系中即为轻;在该系统负载等级值处于该对应关系中相邻的两个负载等级值之间时,确定这两个负载等级值中与该系统负载等级值较为接近的一个负载等级值,将这个负载等级值对应的负载等级确定为系统负载等级。
比如,该CPU负载率对应的负载等级值为1,该IO负载率对应的负载等级值为2,则将1减去1后得到的目标数值加上2,得到系统负载等级值为2。然后从上表4所示的负载等级与负载等级值之间的对应关系中,获取系统负载等级值“2”对应的负载等级为中,则可以确定系统负载等级为中。
下面以图7为例,来对上述步骤603中确定系统负载等级的过程进行示例性说明。
图7是本申请实施例提供的一种系统负载等级确定过程的示意图。
参见图7,电子设备获取CPU负载率和IO负载率。然后根据该CPU负载率和CPU负载对应的三级阈值,确定该CPU负载率对应的CPU负载等级,并根据该CPU负载等级获取对应的负载等级值。根据该IO负载率和IO负载对应的三级阈值,确定该IO负载率对应的IO负载等级,并根据该IO负载等级获取对应的负载等级值。如此,就得到两个负载等级值,然后将这两个负载等级值中较小的一个负载等级值减去1后得到的目标数值与这两个负载等级值中较大的一个负载等级值相加,得到系统负载等级值,根据该系统负载等级值确定对应的系统负载等级。之后,进行抖动过滤,具体来讲,可以在当前确定出的系统负载等级与上一次确定出的系统负载等级相同的情况下,不更新系统负载信息,也就不触发后续因系统负载信息更新而执行的处理流程;而在当前确定出的系统负载等级与上一次确定出的系统负载等级不同的情况下,更新系统负载信息,即将系统负载信息更新为当前新确定出的系统负载等级,此时会触发因系统负载信息更新而执行的处理流程,如可以触发上文图2-图5实施例中所述的根据系统负载确定调度策略的流程。
步骤604:电子设备若识别出用户场景,则根据该用户场景获取该多个设备性能指标值中每个设备性能指标值的权重,根据该多个设备性能指标值和该多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级。
任意一个设备性能指标值的权重大于或等于0且小于或等于1。并且,该多个设备性能指标值中各个设备性能指标值的权重之和为1。
可选地,电子设备根据该用户场景确定该多个设备性能指标值中每个设备性能指标值的权重的操作可以为:对于该多个设备性能指标值中任意的一个设备性能指标值,根据该用户场景和这个设备性能指标值所指示的设备性能指标,从用户场景、设备性能指标与权重之间的对应关系中,获取对应的权重作为这个设备性能指标值的权重。
用户场景、设备性能指标与权重之间的对应关系可以由技术人员根据使用需求事先设置,如可以由技术人员根据对各种用户场景的测试和总结得到。比如,浏览器场景下的在线观看视频场景中,影响因子会偏向于网络负载、CPU负载、GPU负载,而IO负载相对影响较小,从而在该对应关系中,浏览器场景下的在线观看视频场景对应的网络负载的权重、CPU负载的权重、GPU负载的权重可以相同,而IO负载的权重可以小于网络负载的权重、CPU负载的权重、GPU负载的权重。并且,在该对应关系中,某一用户场景对应的所有设备性能指标的权重之和为1。
示例地,用户场景、设备性能指标与权重之间的对应关系可以如下表5所示。这种情况下,用户场景“浏览器场景下的在线观看视频场景”对应的设备性能指标“网络负载”、“CPU负载”、“GPU负载”、“IO负载”的权重之和为1,即x+m+p+i=1。类似地,用户场景“浏览器场景下的网页浏览场景”对应的设备性能指标“网络负载”、“CPU负载”、“GPU负载”、“IO负载”的权重之和为1,即y+n+q+j=1。
表5
本申请实施例仅以上表5为例来对用户场景、设备性能指标与权重之间的对应关系进行示例性说明,上表5并不对本申请实施例构成限定。
作为一种示例,电子设备根据该多个设备性能指标值和该多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级的操作可以为:根据该多个设备性能指标值中每个设备性能指标值的权重,对该多个设备性能指标值进行加权平均,得到系统负载值;根据该系统负载值与系统负载阈值之间的大小关系,确定系统负载等级。
电子设备中可以预先设置有系统负载阈值,系统负载阈值是用于划分系统负载等级的阈值。因而本申请实施例中可以根据系统负载值与系统负载阈值之间的大小关系确定系统负载等级。
比如,该多个设备性能指标值包括CPU负载率、IO负载率、GPU负载率、网络负载率,假设CPU负载率为40%且权重为0.3,IO负载率为10%且权重为0.1,GPU负载率为50%且权重为0.3,网络负载率为40%且权重为0.3。这种情况下,可以根据CPU负载率、IO负载率、GPU负载率、网络负载率的权重,对CPU负载率、IO负载率、GPU负载率、网络负载率进行加权平均,即40%×0.3+10%×0.1+50%×0.3+40%×0.3=40%,得到系统负载值为40%。假设系统负载等级包括三级:轻、中、重,分别对应三个系统负载阈值为10%、35%、100%,也即,小于或等于10%时系统负载等级为轻,大于10%且小于或等于35%时系统负载等级为中,大于35%且小于或等于100%时系统负载等级为重。由于系统负载值40%大于35%且小于100%,所以可以确定系统负载等级为重。
作为另一种示例,电子设备根据该多个设备性能指标值和该多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级的操作可以为:确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值,根据该多个设备性能指标值中每个设备性能指标值对应的权重,对该多个设备性能指标值中每个设备性能指标值对应的负载等级值进行加权平均,得到系统负载等级值,根据该系统负载等级值确定系统负载等级。
其中,电子设备确定该多个设备性能指标值中每个设备性能指标值对应的负载等级值的操作与上述步骤603中确定多个设备性能指标值中每个设备性能指标值对应的负载等级值的操作相同,本申请实施例对此不再赘述。
其中,电子设备根据该系统负载等级值确定系统负载等级的操作与上述步骤603中根据系统负载等级值确定系统负载等级的操作相同,本申请实施例对此不再赘述。
比如,该多个设备性能指标值包括CPU负载率、IO负载率、GPU负载率、网络负载率,假设CPU负载率的权重为0.3,IO负载率的权重为0.1,GPU负载率的权重为0.3,网络负载率的权重为0.3。假设确定出CPU负载率对应的负载等级值为2,IO负载率对应的负载等级值为1,GPU负载率对应的负载等级值为3,网络负载率对应的负载等级值为2。这种情况下,可以根据CPU负载率、IO负载率、GPU负载率、网络负载率的权重,对CPU负载率、IO负载率、GPU负载率、网络负载率对应的负载等级值进行加权平均,即2×0.3+1×0.1+3×0.3+2×0.3=2.2,得到系统负载等级值为2.2。由于系统负载等级值2.2处于上表4所示的负载等级与负载等级值之间的对应关系中相邻的两个负载等级值“2”和“3”之间,且系统负载等级值较为接近负载等级值“2”,所以可以将负载等级值“2”对应的负载等级“中”确定为系统负载等级。
值得说明的是,本申请实施例可以实现对负载影响的精确确定。具体来讲,本申请实施例中针对不同的用户场景,进行了不同的设备性能指标权重的计算,从而确保了根据设备性能指标值及其权重计算出的系统负载等级针对于不同的用户场景有所侧重。如此,针对于用户场景计算出的系统负载等级,在后续确定调度策略时,所确定出的对应的调优参数也能更为合适,从而有助于据此实现对电子设备的资源的合理分配,满足用户需求。
下面以图8为例,来对上述步骤604中确定系统负载等级的过程进行示例性说明。
图8是本申请实施例提供的一种系统负载等级确定过程的示意图。
如图8所示,系统负载探针用于监听电子设备的多个设备性能指标,系统负载探针可以包括IO负载探针、CPU负载探针、GPU负载探针和网络负载探针。其中,IO负载探针用于获取IO负载率,CPU负载探针用于获取CPU负载率,GPU负载探针用于获取GPU负载率,网络负载探针用于获取网络负载率。系统负载探针可以获取多个设备性能指标值,即获取IO负载率、CPU负载率、GPU负载率和网络负载率,之后,可以根据电子设备当前所处的用户场景确定IO负载率、CPU负载率、GPU负载率和网络负载率的权重,根据IO负载率、CPU负载率、GPU负载率和网络负载率的权重,对IO负载率、CPU负载率、GPU负载率和网络负载率进行加权平均,得到系统负载值,然后根据该系统负载值确定系统负载等级。之后,进行抖动过滤,具体来讲,可以在当前确定出的系统负载等级与上一次确定出的系统负载等级相同的情况下,不更新系统负载信息,也就不触发后续因系统负载信息更新而执行的处理流程;而在当前确定出的系统负载等级与上一次确定出的系统负载等级不同的情况下,更新系统负载信息,即将系统负载信息更新为当前新确定出的系统负载等级,此时会触发因系统负载信息更新而执行的处理流程,如可以触发上文图2-图5实施例中所述的根据系统负载确定调度策略的流程。
在本申请实施例中,可以实时获取电子设备的多个设备性能指标值,然后根据电子设备当前所处的用户场景对应计算出各个设备性能指标值的权重,结合多个设备性能指标值和各个设备性能指标值的权重可以确定当前用户场景下的系统负载,据此可以进行后续的设备性能资源调优流程,即据此进行确定调度策略的流程。
另外,本申请实施例有两个重要的特点,第一个为时效性,通过设备性能指标的变动,能够动态调整当前的调度策略。第二个是针对于不同用户场景,增加了对应的设备性能指标权重,如此可以针对不同的用户场景进行特有的资源调优。比如,看视频或玩游戏可能会对GPU负载比较关心;上网会对网络负载进行关心;拷贝压缩会对IO负载比较关心等。如此针对于用户场景计算出的系统负载等级,对应的调优参数也能更为准确合适。
需注意的是,电子设备在运行过程中可以持续获取多个设备性能指标值,也即,可以持续执行上述步骤601。若最新获取到的多个设备性能指标值中存在至少一个设备性能指标值相比于上一次获取到的设备性能指标值有所变化,则电子设备可以根据最新获取到的多个设备性能指标值重新确定系统负载等级,即执行上述步骤602-步骤604。而若最新获取到的多个设备性能指标值相比于上一次获取到的设备性能指标值均未发生变化,则电子设备可以不重新确定系统负载等级,即暂时不执行上述步骤602-步骤604,而是继续获取多个设备性能指标值。
在一些实施例中,还可以进行IO负载率的过滤。具体来讲,若在步骤601中获取到的IO负载率相比于上一次获取到的IO负载率虽然有所变化,但是与上一次获取到的IO负载率之间的差异较小,则过滤本次的IO负载率变化,即不更新IO负载率。这种情况下,在该多个设备性能指标值中仅存在IO负载率有微小变化时,不需要重新确定系统负载等级,从而可以减少电子设备的处理压力。比如,可以将本次获取到的IO负载率减去上一次获取到的IO负载率,得到差异值;若差异值大于预设阈值(如5%),则不过滤本次的IO负载率变化,也即,根据最新获取到的多个设备性能指标值重新确定系统负载等级,即执行上述步骤602-步骤604;而若差异值小于或等于预设阈值,则过滤本次的IO负载率变化,即不更新IO负载率。
在本申请实施例中,获取电子设备的多个设备性能指标值,然后根据电子设备当前所处的用户场景对应确定出该多个设备性能指标值中各个设备性能指标值的权重,结合多个设备性能指标值和各个设备性能指标值的权重可以确定当前用户场景下的系统负载等级,如此确定出的系统负载等级针对于不同的用户场景有所侧重,从而有助于后续根据该系统负载等级执行的相关处理能够更为贴近用户需求。
图9是本申请实施例提供的一种系统负载确定装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为上文图1实施例所述的电子设备100。参见图9,该装置包括:第一获取模块901、识别模块902、第二获取模块903和第一确定模块904。
第一获取模块901,用于获取电子设备的多个设备性能指标值;
识别模块902,用于识别电子设备当前所处的用户场景;
第二获取模块903,用于在识别出用户场景的情况下,根据用户场景获取多个设备性能指标值中每个设备性能指标值的权重;
第一确定模块904,用于根据多个设备性能指标值和多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级。
可选地,多个设备性能指标值包括CPU负载率、IO负载率、GPU负载率、网络负载率中的至少两个。
可选地,第二获取模块903用于:
对于多个设备性能指标值中任意的一个设备性能指标值,根据用户场景和一个设备性能指标值所指示的设备性能指标,从用户场景、设备性能指标与权重之间的对应关系中,获取对应的权重作为一个设备性能指标值的权重。
可选地,第一确定模块904用于:
根据多个设备性能指标值中每个设备性能指标值的权重,对多个设备性能指标值进行加权平均,得到系统负载值;
根据系统负载值与系统负载阈值之间的大小关系,确定系统负载等级。
可选地,第一确定模块904用于:
确定多个设备性能指标值中每个设备性能指标值对应的负载等级值;
根据多个设备性能指标值中每个设备性能指标值对应的权重,对多个设备性能指标值中每个设备性能指标值对应的负载等级值进行加权平均,得到系统负载等级值;
根据系统负载等级值确定系统负载等级。
可选地,该装置还包括:
第二确定模块,用于若未识别到用户场景,则确定多个设备性能指标值中每个设备性能指标值对应的负载等级值;
第三确定模块,用于根据多个设备性能指标值中每个设备性能指标值对应的负载等级值,确定系统负载等级值;
第四确定模块,用于根据系统负载等级值确定系统负载等级。
可选地,第二确定模块用于:
对于多个设备性能指标值中任意的一个设备性能指标值,根据一个设备性能指标值与一个设备性能指标值所指示的设备性能指标的负载等级阈值之间的大小关系,确定一个设备性能指标值所处的负载等级;
从负载等级与负载等级值之间的对应关系中,获取一个设备性能指标值所处的负载等级对应的负载等级值。
可选地,多个设备性能指标值包括CPU负载率和IO负载率,第三确定模块用于:
将CPU负载率对应的负载等级值和IO负载率对应的负载等级值中较小的一个负载等级值减去1,得到目标数值;
将CPU负载率对应的负载等级值和IO负载率对应的负载等级值中较大的一个负载等级值与目标数值相加,得到系统负载等级值。
在本申请实施例中,获取电子设备的多个设备性能指标值,然后根据电子设备当前所处的用户场景对应确定出该多个设备性能指标值中各个设备性能指标值的权重,结合多个设备性能指标值和各个设备性能指标值的权重可以确定当前用户场景下的系统负载等级,如此确定出的系统负载等级针对于不同的用户场景有所侧重,从而有助于后续根据该系统负载等级执行的相关处理能够更为贴近用户需求。
需要说明的是:上述实施例提供的系统负载确定装置在确定系统负载时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的系统负载确定装置与系统负载确定方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种系统负载确定方法,其特征在于,所述方法包括:
获取电子设备的多个设备性能指标值;
识别所述电子设备当前所处的用户场景;
在识别出所述用户场景的情况下,对于所述多个设备性能指标值中任意的一个设备性能指标值,根据所述用户场景和所述一个设备性能指标值所指示的设备性能指标,从用户场景、设备性能指标与权重之间的对应关系中,获取对应的权重作为所述一个设备性能指标值的权重;
根据所述多个设备性能指标值和所述多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级。
2.如权利要求1所述的方法,其特征在于,所述多个设备性能指标值包括中央处理器CPU负载率、输入输出IO负载率、图形处理器GPU负载率、网络负载率中的至少两个。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述多个设备性能指标值和所述多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级,包括:
根据所述多个设备性能指标值中每个设备性能指标值的权重,对所述多个设备性能指标值进行加权平均,得到系统负载值;
根据所述系统负载值与系统负载阈值之间的大小关系,确定系统负载等级。
4.如权利要求1或2所述的方法,其特征在于,所述根据所述多个设备性能指标值和所述多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级,包括:
确定所述多个设备性能指标值中每个设备性能指标值对应的负载等级值;
根据所述多个设备性能指标值中每个设备性能指标值对应的权重,对所述多个设备性能指标值中每个设备性能指标值对应的负载等级值进行加权平均,得到系统负载等级值;
根据所述系统负载等级值确定系统负载等级。
5.如权利要求1所述的方法,其特征在于,所述识别所述电子设备当前所处的用户场景之后,还包括:
若未识别到所述用户场景,则确定所述多个设备性能指标值中每个设备性能指标值对应的负载等级值;
根据所述多个设备性能指标值中每个设备性能指标值对应的负载等级值,确定系统负载等级值;
根据所述系统负载等级值确定系统负载等级。
6.如权利要求5所述的方法,其特征在于,所述确定所述多个设备性能指标值中每个设备性能指标值对应的负载等级值,包括:
对于所述多个设备性能指标值中任意的一个设备性能指标值,根据所述一个设备性能指标值与所述一个设备性能指标值所指示的设备性能指标的负载等级阈值之间的大小关系,确定所述一个设备性能指标值所处的负载等级;
从负载等级与负载等级值之间的对应关系中,获取所述一个设备性能指标值所处的负载等级对应的负载等级值。
7.如权利要求5或6所述的方法,其特征在于,所述多个设备性能指标值包括CPU负载率和IO负载率,所述根据所述多个设备性能指标值中每个设备性能指标值对应的负载等级值,确定系统负载等级值,包括:
将所述CPU负载率对应的负载等级值和所述IO负载率对应的负载等级值中较小的一个负载等级值减去1,得到目标数值;
将所述CPU负载率对应的负载等级值和所述IO负载率对应的负载等级值中较大的一个负载等级值与所述目标数值相加,得到系统负载等级值。
8.一种系统负载确定装置,其特征在于,所述装置包括:
第一获取模块,用于获取电子设备的多个设备性能指标值;
识别模块,用于识别所述电子设备当前所处的用户场景;
第二获取模块,用于在识别出所述用户场景的情况下,对于所述多个设备性能指标值中任意的一个设备性能指标值,根据所述用户场景和所述一个设备性能指标值所指示的设备性能指标,从用户场景、设备性能指标与权重之间的对应关系中,获取对应的权重作为所述一个设备性能指标值的权重;
第一确定模块,用于根据所述多个设备性能指标值和所述多个设备性能指标值中每个设备性能指标值的权重,确定系统负载等级。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529295 | 2022-05-16 | ||
CN2022105292956 | 2022-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116028208A CN116028208A (zh) | 2023-04-28 |
CN116028208B true CN116028208B (zh) | 2023-10-20 |
Family
ID=86080144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210740074.3A Active CN116028208B (zh) | 2022-05-16 | 2022-06-28 | 系统负载确定方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028208B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896386A (zh) * | 2016-10-04 | 2018-04-10 | 联发科技股份有限公司 | 基于场景的电子设备性能和功率管理方法及装置 |
CN110347503A (zh) * | 2019-06-27 | 2019-10-18 | 杭州数梦工场科技有限公司 | 资源重调度方法及装置 |
CN114443256A (zh) * | 2022-04-07 | 2022-05-06 | 荣耀终端有限公司 | 资源调度方法及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9363312B2 (en) * | 2010-07-28 | 2016-06-07 | International Business Machines Corporation | Transparent header modification for reducing serving load based on current and projected usage |
US9319464B2 (en) * | 2013-01-22 | 2016-04-19 | International Business Machines Corporation | Storage managment in a multi-tiered storage architecture |
CN109960395B (zh) * | 2018-10-15 | 2021-06-08 | 华为技术有限公司 | 资源调度方法和计算机设备 |
US11102289B2 (en) * | 2020-01-03 | 2021-08-24 | Wangsu Science & Technology Co., Ltd. | Method for managing resource state information and system for downloading resource |
CN111666140A (zh) * | 2020-05-28 | 2020-09-15 | 北京百度网讯科技有限公司 | 资源调度方法、装置、设备和存储介质 |
-
2022
- 2022-06-28 CN CN202210740074.3A patent/CN116028208B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896386A (zh) * | 2016-10-04 | 2018-04-10 | 联发科技股份有限公司 | 基于场景的电子设备性能和功率管理方法及装置 |
CN110347503A (zh) * | 2019-06-27 | 2019-10-18 | 杭州数梦工场科技有限公司 | 资源重调度方法及装置 |
CN114443256A (zh) * | 2022-04-07 | 2022-05-06 | 荣耀终端有限公司 | 资源调度方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116028208A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115599513B (zh) | 资源调度方法及电子设备 | |
CN116028205B (zh) | 资源调度方法和电子设备 | |
JP2013522724A (ja) | プロセッサにおいてスレッドを実行するシステムおよび方法 | |
CN116028210B (zh) | 资源调度方法、电子设备及存储介质 | |
CN116028207B (zh) | 调度策略确定方法、装置、设备和存储介质 | |
CN116027880B (zh) | 资源调度方法和电子设备 | |
WO2023221752A1 (zh) | 信息处理方法和电子设备 | |
CN116069209A (zh) | 焦点窗口处理方法、装置、设备和存储介质 | |
CN117130454A (zh) | 功耗调整方法和电子设备 | |
CN116028208B (zh) | 系统负载确定方法、装置、设备和存储介质 | |
CN116027879B (zh) | 确定参数的方法、电子设备和计算机可读存储介质 | |
CN115904863B (zh) | 一种pc场景识别方法及电子设备 | |
US8281091B2 (en) | Automatic selection of storage volumes in a data storage system | |
CN116028211A (zh) | 显卡调度方法、电子设备和计算机可读存储介质 | |
CN117632460A (zh) | 一种负载调节方法及终端设备 | |
CN116028005B (zh) | 音频会话获取方法、装置、设备和存储介质 | |
CN116025580A (zh) | 调节风扇转速的方法和电子设备 | |
CN116055443B (zh) | 识别社交场景的方法、电子设备及计算机可读存储介质 | |
CN116028209B (zh) | 资源调度方法、电子设备及存储介质 | |
CN111459653B (zh) | 集群调度方法、装置和系统以及电子设备 | |
CN116089055B (zh) | 资源调度方法和装置 | |
CN116027878B (zh) | 功耗调整方法和电子设备 | |
CN117130772A (zh) | 资源调度方法、电子设备及存储介质 | |
WO2023221720A1 (zh) | 资源调度方法及装置 | |
US20220408271A1 (en) | Techniques for optimizing wireless deployments using location-based association affinity |
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 |