CN107977302B - 一种cpu使用率输出方法及装置 - Google Patents
一种cpu使用率输出方法及装置 Download PDFInfo
- Publication number
- CN107977302B CN107977302B CN201711189889.2A CN201711189889A CN107977302B CN 107977302 B CN107977302 B CN 107977302B CN 201711189889 A CN201711189889 A CN 201711189889A CN 107977302 B CN107977302 B CN 107977302B
- Authority
- CN
- China
- Prior art keywords
- message processing
- duration
- flow
- cpu utilization
- idle
- 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
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/3419—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 by assessing time
- G06F11/3423—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 by assessing time where the assessed time is active or idle time
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种CPU使用率输出方法,其特征在于,所述方法包括:对报文处理线程中循环执行流程的次数进行计数,所述流程包括两种类型,其中,有报文处理类型的流程包括报文处理阶段和空闲阶段,无报文处理类型的流程仅包括空闲阶段,两种类型中的空闲阶段占用时长相同;针对给定的统计时刻t0,获取t0以及(t0‑T)两个时刻的计数差值n,所述T为预设的统计时长;确认所述空闲阶段的占用时长t;计算(t0‑T)至t0时长内的CPU使用率:以所计算的CPU使用率,作为给定的统计时刻t0的CPU使用率输出。本申请方案通过给定的时刻及该时刻之前的预设时长内,报文处理线程中流程的循环执行次数,以及空闲时段的时长,计算并输出给定时刻的CPU使用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种CPU使用率输出方法及装置。
背景技术
CPU使用率表示设备中CPU的程序运行情况,CPU使用率越高表示运行程序时占用的CPU资源越多,因此CPU的使用率是判断其工作状态的重要指标,例如,需要判断CPU的运行情况能否胜任当前任务的要求时,可以通过CPU使用率来考量。现代分时多任务操作系统对CPU一般是是分时间片使用的,CPU在多个线程之间切换时,会为不同的线程分配不同的占用时间,而CPU处于空运行状态时,相当于被空闲进程占用,因此现有技术中对CPU使用率的计算一般是采用CPU执行非空闲进程的时间/CPU总的执行时间的方式。
但是,现在许多设备中都采用多核处理器,将不同的任务分到不同的CPU核,例如,在许多网络设备中,可能包括一个控制核和多个数据核,控制核处理管理设备相关的任务,而数据核处理报文的转发等任务。数据核启动后只运行一个报文处理线程,该线程始终循环执行同一个流程,流程中包括判断是否接收到报文、按配置处理报文及发送报文等步骤,并且每次循环必然执行判断的步骤,因此是否接收到并需要处理报文,只会影响每次循环中执行流程的耗时,而不会导致上述的线程切换与空闲进程,因此,上述CPU使用率的一般计算方法,并不适用于这种启动后只运行一个线程的CPU核的CPU使用率计算。
发明内容
有鉴于此,本申请提供一种CPU使用率输出方法及装置,技术方案如下:
一种CPU使用率输出方法,该方法包括:
对报文处理线程中循环执行流程的次数进行计数,所述流程包括两种类型,其中,有报文处理类型的流程包括报文处理阶段和空闲阶段,无报文处理类型的流程仅包括空闲阶段,两种类型中的空闲阶段占用时长相同;
针对给定的统计时刻t0,获取t0以及(t0-T)两个时刻的计数差值n,所述T为预设的统计时长;
确认所述空闲阶段的占用时长t;
以所计算的CPU使用率,作为给定的统计时刻t0的CPU使用率输出。
一种CPU使用率输出装置,该装置包括:
次数计数模块,用于对报文处理线程中循环执行流程的次数进行计数,所述流程包括两种类型,其中,有报文处理类型的流程包括报文处理阶段和空闲阶段,无报文处理类型的流程仅包括空闲阶段,两种类型中的空闲阶段占用时长相同;
差值获取模块,用于针对给定的统计时刻t0,获取t0以及(t0-T)两个时刻的计数差值n,所述T为预设的统计时长;
时长确认模块,用于确认所述空闲阶段的占用时长t;
使用率输出模块,用于以所计算的CPU使用率,作为给定的统计时刻t0的CPU使用率输出。
本申请所提供的技术方案,对于现在许多网络设备的多核处理器中,启动后只运行一个报文处理线程的数据核,以其未进行报文处理时为CPU的空闲阶段,通过统计给定的时刻t0及t0之前T段时间内空闲阶段对CPU的占用率,即CPU空闲率,得到t0及t0之前T段时间内的CPU使用率,并近似地作为t0时刻的CPU使用率输出。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。此外,本申请中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请的报文处理线程循环执行的流程的示意图;
图2是本申请的CPU使用率输出方法的流程示意图;
图3是本申请的报文处理线程循环执行的另一种流程的示意图;
图4是本申请的CPU使用率输出装置的结构示意图;
图5是本申请的时长确认模块的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
本申请可以用于计算输出启动后只运行一个线程的CPU核的CPU使用率,如现在许多网络设备的多核处理器中的数据核,启动后只运行一个报文处理线程,该报文处理线程中可能会循环执行同一个流程,流程中可以包括如图1所示的几个步骤,其中一定会进行是否接受到报文的判断,当判断接收到报文时,则按照预先的配置处理并发送报文,当判断未接收到报文时,则立即进行下一次判断,即进入下一次循环。对于网络设备的数据核而言,用户需要获知其使用率,主要是作为当前需要处理和发送的报文流量的参考指标,因此本申请中以CPU对报文处理和发送的时间,作为CPU资源被占用的非空闲时间,相对地,以非报文处理或发送的时间,作为CPU的空闲时间,基于此本申请提供了一种CPU使用率输出方法,参见图2所示,可以包括以下步骤:
S101,对报文处理线程中循环执行流程的次数进行计数,所述流程包括两种类型,其中,有报文处理类型的流程包括报文处理阶段和空闲阶段,无报文处理类型的流程仅包括空闲阶段,两种类型中的空闲阶段占用时长相同;
S102,针对给定的统计时刻t0,获取t0以及(t0-T)两个时刻的计数差值n,所述T为预设的统计时长;
S103,确认所述空闲阶段的占用时长t;
S105,以所计算的CPU使用率,作为给定的统计时刻t0的CPU使用率输出。
如上所述,数据核的报文处理线程中循环执行的流程分为两种,在接收到报文的情况下,包括空闲阶段和报文处理阶段,在未接收到报文的情况下,只包括空闲阶段,并且由于两种情况中空闲阶段执行的步骤相同,因而在此阶段的耗时也相同。因此,数据核的报文处理线程在循环执行流程的总时长,分为报文处理阶段的时长和空闲阶段的时长,在某段时间T内,CPU使用率为报文处理阶段的时长/T,亦等于1-空闲阶段的时长/T。
但在实际中其实难以区分一段时间内,在报文处理阶段和空闲阶段的时间分配,而同一数据核执行空闲阶段的步骤的耗时是相同的,因此可以通过计算执行一次空闲阶段的时长,及统计一段时间内流程的循环执行次数,得到这段时间内空闲阶段的时长之和,从而计算这段时间内CPU空闲率,进而计算CPU使用率。
对报文处理线程中循环执行流程的次数进行计数,可以是在数据核循环执行的流程中加入计数步骤,如图3所示。例如,可以增加一个每次循环时均自增1的循环技术变量,计数步骤不涉及对报文的处理或发送,也属于空闲阶段。此外,对次数进行计数也可以在控制核中通过多种方式实现,在实际应用中,本领域技术人员可以根据具体需求选择适合的计数方式,本申请的基本方案对此不做限定。
在本申请的一种具体实施例中,可以预先计算该数据核空闲阶段的时长t,具体的可以是,在数据核无报文需要处理时,即数据核的报文处理线程循环执行只包括空闲阶段的流程时,统计预设的一段时间T’内流程的执行次数n’,则可得到空闲阶段的时长t为定值保存计算结果,以便之后计算CPU使用率时可以直接调用。
为了避免影响数据核的报文转发性能,对数据核使用率的计算可以在控制核中实现,在预先持续对报文处理线程中循环执行流程的次数进行计数、计算并保存空闲阶段的时长t后,若某一时刻t0用户发出获取当前CPU使用率的指令,则可以进行CPU使用率计算。例如,获取t0及(t0-T)两个时刻的计数值,其中T可以是预设的时长,如1秒。假设两个时刻的计数值分别为100和30,则其差值为70。再通过调用预存的计算结果,确认空闲阶段时长t的值,假设为0.01秒,则可以计算在(t0-1)至t0的1秒的时间内,CPU空闲率为则这段时间内CPU使用率为30%,并可以近似地认为在用户指定的时刻t0,CPU使用率为30%。
在本申请的一种具体实施方式中,还可以预设CPU使用率的阈值,在计算的CPU使用率超过阈值的情况下,向用户发出CPU使用率过高警告,使用户更直观地衡量CPU当前的工作状态。
此外,由于数据核的CPU使用率主要是受数据核中的报文流量影响,而数据核报文流量过大极有可能是受到了攻击,因此通过CPU使用率还可以反映数据核的安全情况。但是用户可能并不会时刻关注CPU使用率,因此,在本申请的一种具体实施方式中,除预设CPU使用率的阈值外,还可以在后台定时地进行CPU使用率计算,当计算的CPU使用率超过阈值时,提示用户可能受到了攻击,需要进行攻击检测,从而提高数据核的安全性。
相应于上述方法实施例,本申请还提供一种CPU使用率输出装置,参照图4所示,该装置可以包括:
次数计数模块110,用于对报文处理线程中循环执行流程的次数进行计数,所述流程包括两种类型,其中,有报文处理类型的流程包括报文处理阶段和空闲阶段,无报文处理类型的流程仅包括空闲阶段,两种类型中的空闲阶段占用时长相同;
差值获取模块120,用于针对给定的统计时刻t0,获取t0以及(t0-T)两个时刻的计数差值n,所述T为预设的统计时长;
时长确认模块130,用于确认所述空闲阶段的占用时长t;
使用率输出模块150,用于以所计算的CPU使用率,作为给定的统计时刻t0的CPU使用率输出。
在本申请的一种具体实施方式中,参照图5所示,时长确认模块130可以包括:
次数统计子模块131,用于在报文处理线程中只循环执行无报文处理类型的流程时,统计预设时长T’内的循环执行次数n’;
时长返回子模块133,用于在接收到t值的确认请求的情况下,返回所保存的t值。
在本申请的一种具体实施方式中,该装置还可以包括:
警告模块,用于在所计算的CPU使用率超过预设阈值的情况下,输出CPU使用率过高警告。
在本申请的一种具体实施方式中,该装置还可以包括:
提示模块,用于在所计算的CPU使用率超过预设阈值的情况下,输出攻击检测提示。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (8)
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所计算的CPU使用率超过预设阈值的情况下,输出CPU使用率过高警告。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所计算的CPU使用率超过预设阈值的情况下,输出攻击检测提示。
5.一种CPU使用率输出装置,所述装置用于计算输出启动后只运行一个线程的CPU核的CPU使用率,其特征在于,所述装置包括:
次数计数模块,用于对报文处理线程中循环执行流程的次数进行计数,所述流程包括两种类型,其中,有报文处理类型的流程包括报文处理阶段和空闲阶段,无报文处理类型的流程仅包括空闲阶段,两种类型中的空闲阶段占用时长相同;
差值获取模块,用于针对给定的统计时刻t0,获取t0以及(t0-T)两个时刻的计数差值n,所述T为预设的统计时长;
时长确认模块,用于确认所述空闲阶段的占用时长t;
使用率输出模块,用于以所计算的CPU使用率,作为给定的统计时刻t0的CPU使用率输出。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
警告模块,用于在所计算的CPU使用率超过预设阈值的情况下,输出CPU使用率过高警告。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
提示模块,用于在所计算的CPU使用率超过预设阈值的情况下,输出攻击检测提示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711189889.2A CN107977302B (zh) | 2017-11-24 | 2017-11-24 | 一种cpu使用率输出方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711189889.2A CN107977302B (zh) | 2017-11-24 | 2017-11-24 | 一种cpu使用率输出方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107977302A CN107977302A (zh) | 2018-05-01 |
CN107977302B true CN107977302B (zh) | 2021-04-27 |
Family
ID=62011386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711189889.2A Active CN107977302B (zh) | 2017-11-24 | 2017-11-24 | 一种cpu使用率输出方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977302B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684167A (zh) * | 2018-12-06 | 2019-04-26 | 北京城市网邻信息技术有限公司 | 应用程序cpu使用率的计算方法、装置、存储介质及终端 |
CN112559276B (zh) * | 2019-09-10 | 2022-05-13 | 武汉斗鱼网络科技有限公司 | 一种cpu使用率监控方法及装置 |
CN111198800B (zh) * | 2020-01-03 | 2023-08-04 | 北京小米移动软件有限公司 | Cpu占有率检测方法、cpu占有率检测装置及电子设备 |
CN112540886A (zh) * | 2020-11-26 | 2021-03-23 | 北京和利时系统工程有限公司 | Cpu负荷值检测方法和装置 |
CN112764934B (zh) * | 2021-01-29 | 2024-01-30 | 上海弘积信息科技有限公司 | 一种负载均衡设备cpu使用率的计算方法 |
CN117453486A (zh) * | 2023-11-13 | 2024-01-26 | 摩尔线程智能科技(北京)有限责任公司 | 面向进程的gpu利用率的确定方法、装置、设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897203A (zh) * | 2017-03-29 | 2017-06-27 | 北京经纬恒润科技有限公司 | 一种cpu负载率计算方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140108861A (ko) * | 2013-03-04 | 2014-09-15 | 삼성전자주식회사 | 도메인 사이의 메모리 복사를 위한 방법 및 장치 |
-
2017
- 2017-11-24 CN CN201711189889.2A patent/CN107977302B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897203A (zh) * | 2017-03-29 | 2017-06-27 | 北京经纬恒润科技有限公司 | 一种cpu负载率计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107977302A (zh) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977302B (zh) | 一种cpu使用率输出方法及装置 | |
CA2849565C (en) | Method, apparatus, and system for scheduling processor core in multiprocessor core system | |
CN106557369B (zh) | 一种多线程的管理方法及系统 | |
US10802877B2 (en) | Task management methods and system, and computer storage medium | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
CN108073446B (zh) | 超时预判方法及装置 | |
CN111045810B (zh) | 一种任务调度处理方法及装置 | |
CN103092682A (zh) | 异步网络应用程序处理方法 | |
CN107491346A (zh) | 一种应用的任务处理方法、装置及系统 | |
CN106528318B (zh) | 线程死循环检测方法和装置 | |
US20180329750A1 (en) | Resource management method and system, and computer storage medium | |
CN110704185B (zh) | 集群系统分片定时任务调度方法及集群系统 | |
WO2016177081A1 (zh) | 通知消息处理方法及装置 | |
CN109462646B (zh) | 一种异常响应的方法及设备 | |
CN109426554B (zh) | 一种服务器的定时实现方法及装置 | |
CN107729207B (zh) | 一种应用程序主线程的监控方法及装置 | |
CN110275780B (zh) | 用于限制流量的方法和装置 | |
US20190340034A1 (en) | Device and method for processing jobs | |
CN109379605B (zh) | 基于弹幕顺序的弹幕分发方法、装置、设备和存储介质 | |
CN109413489B (zh) | 串行式的多线程弹幕分发方法、装置、设备和存储介质 | |
CN114443241A (zh) | 一种任务动态调度方法、任务下发方法及其装置 | |
CN110673937A (zh) | 单片机及其同步异步控制方法 | |
CN113965523A (zh) | 一种基于环路的pfc死锁的处理方法及装置 | |
CN109246470B (zh) | 多线程同步的弹幕分发方法、装置、设备及存储介质 | |
CN114546926A (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 |