CN114003367A - 风险监控方法、装置、设备及存储介质 - Google Patents
风险监控方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114003367A CN114003367A CN202210000535.3A CN202210000535A CN114003367A CN 114003367 A CN114003367 A CN 114003367A CN 202210000535 A CN202210000535 A CN 202210000535A CN 114003367 A CN114003367 A CN 114003367A
- Authority
- CN
- China
- Prior art keywords
- thread
- cpu
- increment
- acquisition
- abnormal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012544 monitoring process Methods 0.000 title claims abstract description 34
- 230000002159 abnormal effect Effects 0.000 claims abstract description 77
- 238000012806 monitoring device Methods 0.000 claims description 6
- 230000002547 anomalous effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 206010016754 Flashback Diseases 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013021 overheating Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种风险监控方法、装置、设备及存储介质,该方法包括:获取相邻两个采集时刻的CPU唤醒次数增量;在唤醒次数增量大于第一增量阈值时,获取当前CPU的异常线程;基于CPU唤醒次数增量和异常线程的CPU占有率确定异常线程的风险等级。本公开实施例能够实时监控应用程序唤醒CPU次数的增量和各线程占用率,确定各线程的风险状态,为解决CPU过度唤醒提供监控数据。
Description
技术领域
本发明涉及应用程序控制技术领域,尤其涉及一种风险监控方法、装置、设备及存储介质。
背景技术
在手机应用市场中,所有的应用程序(Application,简称APP)在运行期间会频繁唤醒中央处理器(central processing unit,简称CPU)用于实现APP某一功能,但应用程序过于频繁的唤醒CPU,不仅会导致额外的耗电,而且当唤醒频率达到一定值时,会导致CPU过热甚至引起APP闪退。
目前,无论是安卓系统还是各类应用程序并没有完整的监控APP过度唤醒方案,无法收集到CPU被过度唤醒的次数和原因。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种风险监控方法、装置、设备及存储介质,实现对于APP存在的CPU过度唤醒提供数据监控。
根据本公开的一方面提供了一种风险监控方法,包括:
获取相邻两个采集时刻的CPU唤醒次数增量;
在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占有率;
基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定所述异常线程的风险等级。
根据本公开的另一方面提供了一种风险监控装置,包括:增量获取模块、CPU占用率获取模块和风险等级确定模块;
所述增量获取模块,用于获取相邻两个采集时刻的CPU唤醒次数增量;
所述异常线程获取模块,用于在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占有率;
所述风险等级确定模块,用于基于所述CPU唤醒次数增量和所述异常线程异常线程的CPU占有率确定所述异常线程的风险等级。
根据本公开的另一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行本公开上述第一方面中所述的风险监控方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面中所述的风险监控方法。
本公开申请实施例中提供一种风险监控方法、装置、设备及存储介质,该方法包括:获取相邻两个采集时刻的CPU唤醒次数增量;在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占有率;基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定异常线程的风险等级。本公开实施例能够实时监控应用程序唤醒CPU次数的增量和各线程占用率,确定各线程的风险状态,为解决CPU过度唤醒提供监控数据。本公开实施例提供的技术方案与现有技术相比具有如下优点:采集数据为CPU唤醒次数的增量,不在单纯的是CPU唤醒次数,能够更加动态的了解线程切换的动态变化;通过阈值分析运行程序APP过度唤醒问题,能精准筛选异常线程,并划分异常线程的风险等级,提供监控数据。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1示出了根据本公开示例性实施例的一种监控方法实施的流程图;
图2示出了根据本公开示例性实施例的风险监控模型的示意性结构框图;
图3示出了根据本公开示例性实施例的风险等级划分的示意图;
图4示出了根据本公开示例性实施例的风险监控装置的示意性结构框图;
图5示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在手机应用市场中,所有的应用程序(Application,简称APP)在运行期间会频繁唤醒中央处理器(central processing unit,简称CPU)用于实现APP某一功能,但应用程序过于频繁的唤醒CPU,不仅会导致额外的耗电,而且当唤醒频率达到一定值时,会导致CPU过热甚至引起APP闪退。目前,无论是安卓系统还是各类应用程序并没有完整的监控APP过度唤醒方案,无法收集到CPU被过度唤醒的次数和原因。
针对该问题,本公开实施例提供了一种风险监控方法、装置、设备及存储介质,该方法可以实时监控APP唤醒CPU的情况。以下参照附图描述本公开的方案。
本公开实施例提供一种风险监控方法,如图1所示,该方法具体步骤如下:
S101、获取相邻两个采集时刻的CPU唤醒次数增量。
具体的,中央处理器CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。在计算机体系结构中,CPU是对计算机的所有硬件资源(如存储器、输入输出单元)进行控制调配、执行通用运算的核心硬件单元,计算机系统中所有软件层的操作最终都将通过指令集映射为CPU的操作。
本公开示实施例中的CPU唤醒主要指线程的切换,其中,线程是操作系统能够进行运算调度的最小单位。用户下达运行程序的命令后就会产生进程,同一程序可产生多个进程,进程需要一些资源才能完成工作,如CPU使用时间、存储器、文件以及I/O设备,且为依序逐一进行,也就是每个CPU核心任何时间内仅能运行一项进程,线程被包含在进程之中,是进程的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,在执行多线程任务时,线程切换一次就是CPU唤醒一次。
进一步的,具体的,由于CPU运行速度足够快和在各个进程之间切换,CPU运行像是在并发执行多个进程,但在任何时刻,单处理器系统只能执行一个进程中的代码,当操作系统决定要把控制权从当前进程转移到某个新进程时,就会进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文,然后将控制权传递到新进程,新进程就会从上次停止的地方开始。线程是进程的实际运作单位,一个进程中可以并发多个线程,CPU在执行某一进程的过程就是在执行该进程中的多线程,线程的切换相比进程切换主要区别是每个进程都有自己的虚拟地址空间,进程内的所有线程共享进程的虚拟地址空间,线程的切换相当于CPU执行下一线程代码,也可以理解为CPU唤醒。
在按照系统或APP指令,CPU执行计算命令的过程,CPU唤醒次数的多少与命令的复杂程度和任务量的多少有直接关系,在没有任务执行时CPU处于低负荷休息状态,当有任务或命令时唤醒CPU执行运算指令,当有较大的任务量或复杂的命令时,CPU的计算量相应的会变的非常庞大,单位时间内的CPU唤醒次数同样会增加。可选的,本公开实施例的风险监控方法同样适用于多核CPU的风险监控。
具体的,本公开实施例中的采集时刻是一个具体的时间点,例如本公开实施例中,设定CPU启动时刻为t0,第一采集时刻为t1,第二采集时刻为t2,第三采集时刻为t3,CPU启动后即开始采集唤醒次数,在t1时刻采集t0与t1期间的CPU唤醒次数N1,在t2时刻采集t0与t2期间的CPU唤醒次数N2,其中,第一采集时刻t1和第二采集时刻t2为两个相邻的采集时刻。其中,第一采集时刻t1和第二采集时刻t2之间的时间间隔,可以根据实际情况进行设定,本实施例中不进行限定。可选的,第一采集时刻t1和第二采集时刻t2之间的时间间隔为1秒。
具体的,第一采集时刻和第二采集时刻是两个相邻的时间点,并且这两个相邻的时间点可以是CPU运行期间的任意两个相邻的时间段,例如按照时间顺序的采集时刻是t1、t2、t3,其中t1和t2可以是两个相邻的采集时刻,并且t1是第一采集时刻,t2是第二采集时刻,t2和t3也可以是两个相邻的采集时刻,但t1和t3不是两个相邻的采集时刻。其中,第一采集时刻t1和第二采集时刻t2之间的时间间隔与第二采集时刻t2和第三采集时刻t3之间的时间间隔相同。
进一步的,相邻两个采集时刻的CPU唤醒次数增量可以是第二采集时刻t2采集到的CPU唤醒次数N2与第一采集时刻t1采集到的CPU唤醒次数N1之间的增量,还可以是第三采集时刻t3采集到的CPU唤醒次数N3与第二采集时刻t2采集到的CPU唤醒次数N2之间的增量。
在一个可能的实现方式中,获取相邻两个采集时刻的CPU唤醒次数增量,包括:获取第一采集时刻线程切换次数和第二采集时刻线程切换次数,其中,所述第一采集时刻和所述第二采集时刻是相邻的两个采集时刻;基于第一采集时刻线程切换次数和第二采集时刻线程切换次数,确定相邻两个采集时刻的CPU唤醒次数增量。
具体的,获取第一采集时刻t1的线程切换次数N1,获取第二采集时刻t2的线程切换次数N2,其中,第一采集时刻t1和第二采集时刻t2为两个相邻的采集时刻;并根据第一采集时刻t1的线程切换次数N1和第二采集时刻t2的线程切换次数N2确定第一采集时刻t1与第二采集时刻t2之间的CPU唤醒次数增量。
进一步的,在一个可能的实现方式中,基于第一采集时刻线程切换次数和第二采集时刻线程切换次数,确定相邻两个采集时刻的CPU唤醒次数增量,包括:将第二采集时刻线程切换次数与第一采集时刻线程切换次数的差值,作为相邻两个采集时刻的CPU唤醒次数增量。
具体的,第二采集时刻t2的线程切换次数N2与第一采集时刻t1的线程切换次数N1之间的差值N2-N1作为相邻两个采集时刻的CPU唤醒次数增量。
S102、在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占用率。
具体的,线程是操作系统能够进行运算调度的最小单位,所述唤醒次数增量指的是CPU在两个相邻采集时刻线程切换次数的增量。本公开实施例中设定具体的第一增量阈值,当两个相邻采集时刻线程切换次数的增量值大于第一增量阈值时,本公开实施例执行下一步操作,即判断是否存在异常线程,存在异常线程时,获取异常线程的CPU占用率。大部分情况下,第一增量阈值为人工设定,并且第一增量阈值不宜设定过高的值,因为可能存在CPU唤醒次数增量变化较小,但当前采集周期内某单一线程CPU占用率过高的情况;但第一增量阈值也不适合设定过低的值,如果设定阈值过低,每个采集周期都需要获取异常线程,本公开实施例的意义会减小。
应用程序APP卡顿甚至闪退场景不单是处理器CPU唤醒次数过多,也可能是当前周期内多个线程的CPU占用率过高,因此风险监控方法也需要获取了处理器CPU的各个线程的占用率,对确定各线程风险状态以及后续处理提供了详细的监控信息。
在一个可能的实现方式中,获取异常线程的CPU占有率之前,还包括:获取当前CPU中各个线程的CPU占有率;基于所述各个线程的CPU占有率和第一CPU占有率阈值确定异常线程。
在一个可能的实现方式中,基于所述各个线程的CPU占有率和第一CPU占有率阈值确定异常线程,包括:将所述CPU占有率大于所述第一CPU占有率阈值的线程确定为异常线程。
具体的,CPU使用率关乎整个系统的使用情况,使用率越低,表示CPU能更及时的响应外部情况,整个系统的性能也会越好,但CPU使用率是从系统的整体考虑的,并不能反应单个线程的执行情况。例如,虽然CPU使用率是30%,但某一个线程占据了25%的使用率,另一个线程占用了剩下的5%,因此需要考虑每一个具体的线程占用CPU的情况。处理器CPU的使用率为CPU计算时间比采集周期的时间,例如CPU采集周期时间是1秒,计算时间是0.3秒,则CPU使用率为30%,某一线程的CPU占用率是值所述线程的计算时间比刺激周期的时间,例如所述线程计算时间为0.2秒,则所述线程的CPU占用率为20%。
第一占用率阈值的设定关乎异常线程的确定,当某一线程的CPU占用率超过第一占用率阈值时,所述线程将被“重点关注”,即确定为异常线程,本公开实施例中风险监控方法最主要的目的就是挑选出异常线程,确保系统安全平稳运行。如图2所示,线程监视器212的功能就是查阅所有线程的CPU占用率,当某一线程的CPU占有率超过第一占用率阈值时,标记所述线程,即确认为异常线程。
S103、基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定所述异常线程的风险等级。
具体的,CPU的运行状态与异常线程的状态相关,确定异常线程的两个重要指标是CPU唤醒次数的增量和异常线程CPU占用率,在不同的CPU唤醒次数增量和异常线程CPU占用率情况下,仅仅确定出异常线程是远远不够的,因此划分异常线程的风险等级,针对不同的风险等级采取不同的处理措施是更加合理的。
在一个可能的实现方式中,基于所述CPU唤醒次数增量和异常线程确定异常线程的风险等级,包括:在所述CPU唤醒次数增量大于第二增量阈值,且异常线程的CPU占有率大于第二CPU占有率阈值时,确定异常线程处于第一风险等级;在所述CPU唤醒次数增量小于第二增量阈值,或异常线程的CPU占有率小于第二CPU占有率阈值时,确定异常线程处于第二风险等级,其中,第一风险等级高于第二风险等级。
具体的,异常线程的风险等级划分为第一风险等级和第二风险等级,并且第一风险等级高于第二风险等级,即异常线程处于第一风险等级时CPU运行情况将会非常糟糕,可能会出现卡困、反应异常等情况,严重时会出现运行程序APP闪退。
风险等级的划分主要由CPU唤醒次数的增量和异常现场的CPU占有率来划分,如图3所示的九宫格图,在CPU唤醒次数增量大于第二增量阈值并且异常线程的CPU占用率大于第二CPU占用率阈值时,此时确定异常线程处理第一风险等级。第二风险等级分三种情况,分别是异常线程大于第一CPU占有率阈值但小于第二CPU占有率阈值,CPU唤醒次数增量大于第二增量阈值;异常线程大于第二CPU占有率阈值,CPU唤醒次数增量大于第一增量阈值但小于第二增量阈值;异常线程大于第一CPU占有率阈值但小于第二CPU占有率阈值,CPU唤醒次数增量大于第一增量阈值但小于第二增量阈值。
在一个可能实现方式中,所述方法还包括:在异常线程的风险等级是第一风险等级的情况下,停止所述异常线程;在异常线程的风险等级是第二风险等级的情况下,将风险信息发送至用户终端,以使所述用户终端提示所述风险信息,其中,所述风险信息至少包括处于第二风险等级的异常线程。
具体的,根据异常线程不同的风险等级采取不同的对应操作,若异常线程处于第一风险等级,则说明现在CPU的运行状态非常差,可能已经出现卡顿、耗电快等情况,若不及时处理可能会出现APP闪退等情况,因此异常线程的第一风险等级是高风险的情况,需要及时处理,本公开实施例中风险监控方法已将异常线程挑选出来,为保持CPU和操作系统的正常运行,将强制停止处于第一风险等级的异常线程,并将监控信息和强制停止所述线程的报告发送至用户。若异常线程处于第二风险等级,则说明CPU可能会出现计算量过大的情况,可能出现操作较慢的情况,此时没有必要停止异常线程的工作,而是将风险信息发送至用户终端,提供存在处于第二风险等级的线程,以使用户尽快对处于第二风险等级的线程进行处理,避免风险等级升级,导致的APP卡顿、闪退等情况。
如图2所示为风险监控的架构模型,其中包括监视器21、优化器22、管理器23和工具集24,监视器21包括线程监视器212和计数监视器211。所述监视器21用于周期性监听CPU唤醒次数和所有线程的CPU占用率,并发送至优化器22,所述优化器22用于执行本公开实施例中任一所述的风险监控方法,所述管理器23用于接收到启动指令后,控制优化器开启,所述工具集包括为监视器21、优化器22、管理器23提供服务工具的集合,并包括计时器,而计时器是用于控制所述线程监视器和所述计数监视器的采集周期,所述的风险监控模型中监视器21包括线程监视器212和计数监视器211,其中线程监视器212用于周期性监听所有线程的CPU占用率,计数监视器211用于周期性监听CPU唤醒次数。
如图2所示本公开实施里中的架构模型计数监视器211用于实时监控线程切换次数,当CPU从某一线程切换至另一线程时,计数监视器计数一次,一个采集周期结束时,计数监视器主动和将监测到的线程切换的总次数发送至优化器22;也可以是一个周期结束时,优化器22向计数监视器发送数据请求,该数据请求用于请求计数监视器211将监测到的线程切换总次数发送至优化器22。本实施例中,仅对优化器获取线程切换次数的方式进行说明,而非限定。
进一步的,计数监视器检测到一次线程切换过程,计数监视器加1,在一个采集周期结束后,计数监视器将计数结果作为当前采集时刻的CPU唤醒次数发送给优化器,同时计数结果清零,开始下一采集周期计数,优化器22获取到第一采集时刻与第二采集时刻的CPU唤醒总次数时,计算相邻两个采集时刻的CPU唤醒次数的差值,并将所述差值确定为两个采集时刻的CPU唤醒次数的增量。
图4为本公开实施例提供的一种风险监控装置的结构示意图。该风险监控装置具体可以是如上所述的处理器,或者是该处理器中的部件。本公开实施例提供的风险监控装置可以执行风险监控方法实施例提供的处理流程,如图4所示,风险监控装置40包括:增量获取模块41、CPU占用率获取模块42、风险等级确定模块43。
其中,增量获取模块41,用于获取相邻两个采集时刻的CPU唤醒次数增量;
CPU占用率获取模块42,用于在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占有率;
风险等级确定模块43,用于基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定所述异常线程的风险等级。
可选的,增量获取模块41包括:
线程切换次数获取单元411,用于获取第一采集时刻线程切换次数和第二采集时刻线程切换次数,其中,所述第一采集时刻和所述第二采集时刻是相邻的两个采集时刻;
唤醒次数增量确定单元412,用于基于第一采集时刻线程切换次数和第二采集时刻线程切换次数,确定相邻两个采集时刻的CPU唤醒次数增量。
可选的,所述唤醒次数增量确定单元412,还可以用于将第二采集时刻线程切换次数与第一采集时刻线程切换次数的差值,作为相邻两个采集时刻的CPU唤醒次数增量。
可选的,CPU占用率获取模块42还用于获取当前CPU中各个线程的CPU占有率;基于所述CPU占有率和第一CPU占有率阈值确定异常线程。
可选的,CPU占用率获取模块42具体用于将所述CPU占有率大于所述第一CPU占有率阈值的线程确定为异常线程。
可选的,风险等级确定模块43,包括:
第一风险等级确定单元,用于在所述CPU唤醒次数增量大于第二增量阈值,且异常线程的CPU占有率大于第二CPU占有率阈值时,确定异常线程处于第一风险等级;
第二风险等级确定单元,用于在所述CPU唤醒次数增量小于第二增量阈值,或异常线程的CPU占有率小于第二CPU占有率阈值时,确定异常线程处于第二风险等级,其中,第一风险等级高于第二风险等级。
可选的,所述装置还包括:
异常线程停止模块,用于在所述异常线程的风险等级是第一风险等级的情况下,停止所述异常线程;
风险信息发送模块,用于在所述异常线程的风险等级是第二风险等级的情况下,将风险信息发送至用户终端,以使所述用户终端提示所述风险信息,其中,所述风险信息至少包括处于第二风险等级的异常线程。
图4所示实施例的风险监控装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
参考图5,现将描述可以作为本公开的服务器或客户端的电子设备500的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,电子设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
电子设备500中的多个部件连接至I/O接口505,包括:输入单元506、输出单元507、存储单元508以及通信单元509。输入单元506可以是能向电子设备500输入信息的任何类型的设备,输入单元506可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元507可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元504可以包括但不限于磁盘、光盘。通信单元509允许电子设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理。例如,在一些实施例中,所述风险监控方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到电子设备500上。在一些实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行所述风险监控方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
Claims (10)
1.一种风险监控方法,其特征在于,包括:
获取相邻两个采集时刻的CPU唤醒次数增量;
在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占有率;
基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定所述异常线程的风险等级。
2.根据权利要求1所述的方法,其特征在于,获取相邻两个采集时刻的CPU唤醒次数增量,包括:
获取第一采集时刻线程切换次数和第二采集时刻线程切换次数,其中,所述第一采集时刻和所述第二采集时刻是相邻的两个采集时刻;
基于所述第一采集时刻线程切换次数和所述第二采集时刻线程切换次数,确定相邻两个采集时刻的CPU唤醒次数增量。
3.根据权利要求2所述的方法,其特征在于,基于所述第一采集时刻线程切换次数和所述第二采集时刻线程切换次数,确定相邻两个采集时刻的CPU唤醒次数增量,包括:
将所述第二采集时刻线程切换次数与所述第一采集时刻线程切换次数的差值,作为相邻两个采集时刻的CPU唤醒次数增量。
4.根据权利要求1所述的方法,其特征在于,获取异常线程的CPU占有率之前,还包括:
获取当前CPU中各个线程的CPU占有率;
基于所述各个线程的CPU占有率和第一CPU占有率阈值确定异常线程。
5.根据权利要求4所述的方法,其特征在于,基于所述各个线程的CPU占有率和第一CPU占有率阈值确定异常线程,包括:
将所述CPU占有率大于所述第一CPU占有率阈值的线程确定为异常线程。
6.根据权利要求1-5中任一项所述的方法,其特征在于,基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定所述异常线程的风险等级,包括:
在所述CPU唤醒次数增量大于第二增量阈值,且所述异常线程的CPU占有率大于第二CPU占有率阈值时,确定所述异常线程处于第一风险等级;
在所述CPU唤醒次数增量小于所述第二增量阈值,或所述异常线程的CPU占有率小于所述第二CPU占有率阈值时,确定所述异常线程处于第二风险等级,其中,所述第一风险等级高于所述第二风险等级。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述异常线程的风险等级是第一风险等级的情况下,停止所述异常线程;
在所述异常线程的风险等级是第二风险等级的情况下,将风险信息发送至用户终端,以使所述用户终端提示所述风险信息,其中,所述风险信息至少包括处于第二风险等级的异常线程。
8.一种风险监控装置,包括:
增量获取模块,用于获取相邻两个采集时刻的CPU唤醒次数增量;
CPU占用率获取模块,用于在所述唤醒次数增量大于第一增量阈值时,获取异常线程的CPU占有率;
风险等级确定模块,用于基于所述CPU唤醒次数增量和所述异常线程的CPU占有率确定所述异常线程的风险等级。
9.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000535.3A CN114003367B (zh) | 2022-01-04 | 2022-01-04 | 风险监控方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000535.3A CN114003367B (zh) | 2022-01-04 | 2022-01-04 | 风险监控方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003367A true CN114003367A (zh) | 2022-02-01 |
CN114003367B CN114003367B (zh) | 2022-03-15 |
Family
ID=79932633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210000535.3A Active CN114003367B (zh) | 2022-01-04 | 2022-01-04 | 风险监控方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003367B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198925A1 (en) * | 1999-09-16 | 2002-12-26 | Honeywell International Inc. | System and method for robust time partitioning of tasks in a real-time computing environment |
US20100223598A1 (en) * | 2009-02-27 | 2010-09-02 | International Business Machines Corporation | Collecting profile-specified performance data on a multithreaded data processing system |
CN107368400A (zh) * | 2017-08-01 | 2017-11-21 | 广东欧珀移动通信有限公司 | Cpu监测方法、装置、计算机可读存储介质和移动终端 |
CN109840141A (zh) * | 2018-12-15 | 2019-06-04 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN109840142A (zh) * | 2018-12-15 | 2019-06-04 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN112860401A (zh) * | 2021-02-10 | 2021-05-28 | 北京百度网讯科技有限公司 | 任务调度方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-04 CN CN202210000535.3A patent/CN114003367B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198925A1 (en) * | 1999-09-16 | 2002-12-26 | Honeywell International Inc. | System and method for robust time partitioning of tasks in a real-time computing environment |
US20030154234A1 (en) * | 1999-09-16 | 2003-08-14 | Aaron Raymond Larson | Method for time partitioned application scheduling in a computer operating system |
US20100223598A1 (en) * | 2009-02-27 | 2010-09-02 | International Business Machines Corporation | Collecting profile-specified performance data on a multithreaded data processing system |
CN107368400A (zh) * | 2017-08-01 | 2017-11-21 | 广东欧珀移动通信有限公司 | Cpu监测方法、装置、计算机可读存储介质和移动终端 |
CN109840141A (zh) * | 2018-12-15 | 2019-06-04 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN109840142A (zh) * | 2018-12-15 | 2019-06-04 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN112860401A (zh) * | 2021-02-10 | 2021-05-28 | 北京百度网讯科技有限公司 | 任务调度方法、装置、电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
SHINTARO IWASAKI等: "Analyzing the Performance Trade-Off in Implementing User-Level Threads", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
钱俊等: "网络应用监测系统的设计与实现", 《计算机工程与应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114003367B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021008543A1 (zh) | 一种资源调度的方法和电子设备 | |
CN102789305B (zh) | 推迟挂起 | |
CN104424031B (zh) | 一种处理器工作频率的控制方法及装置 | |
CN111625080B (zh) | 一种服务器节能方法、装置及电子设备和存储介质 | |
CN104239153A (zh) | 多核cpu负载均衡的方法和装置 | |
CN112559182A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN112527509B (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
US11640319B1 (en) | Task processing method and apparatus, electronic device and storage medium | |
CN110806918A (zh) | 基于深度学习神经网络的虚拟机运行方法和装置 | |
CN109840141A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN114327918B (zh) | 调整资源量的方法、装置、电子设备和存储介质 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN105094945A (zh) | 虚拟化平台线程控制方法、设备和系统 | |
CN113986000A (zh) | 一种服务器上电方法、系统、装置及介质 | |
CN114003367B (zh) | 风险监控方法、装置、设备及存储介质 | |
CN110362314B (zh) | 信息处理方法及装置、计算机可读介质、电子设备 | |
CN110673958B (zh) | 调频方法、调频装置、存储介质与电子设备 | |
CN112631843A (zh) | 设备测试方法及装置、电子设备、可读介质、产品 | |
CN115129565A (zh) | 日志数据处理方法、装置、系统、设备和介质 | |
CN114879832A (zh) | 用于运算装置的功耗控制方法、装置、芯片、设备及介质 | |
CN110647401B (zh) | 调频方法、调频装置、存储介质与电子设备 | |
CN114416326A (zh) | 大数据管控方法、装置、管控系统及可读存储介质 | |
CN117785403A (zh) | 设备的心跳任务执行、装置、电子设备及存储介质 | |
CN116893893B (zh) | 一种虚拟机调度方法、装置、电子设备及存储介质 | |
CN113835733B (zh) | 云应用更新方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |