一种处理器检测方法、处理器检测装置以及计算机设备与流程

文档序号:16262998发布日期:2018-12-14 21:43阅读:134来源:国知局
一种处理器检测方法、处理器检测装置以及计算机设备与流程

本申请涉及计算机领域,尤其涉及一种处理器检测方法、处理器检测装置以及计算机设备。

背景技术

中央处理器(centralprocessingunit,cpu)是集中处理计算机信息的硬件结构,负责读取计算机中的指令,并对指令进行译码,然后执行各种指令。计算机中担任着另一重要角色的设备是存储设备,用于存储程序代码和各种数据,根据控制器指定的位置保存或调取数据。

存储设备工作的特点是实时性和高效率,其中的一种工作模式是采用轮询的方式处理每个端口的流量数据,具体的来说就是会一直检测接口数据包的来临,以便在接收到数据包时第一时间能够进行处理。

在上述工作模式下,不管有没有数据包进入,cpu都一直处于检测接口数据的状态中,因此用传统的系统观测工具例如top命令对cpu进行观测时,观测得到的结果是cpu的占用率一直持续在百分之百。即使在没有接口数据进来的情况下,由于存储设备对接口数据的持续检测使得cpu观测结果依然是百分之百的占用率,由此可看出这种检测方式并不能真实地反映cpu的工作状态。



技术实现要素:

本申请实施例提供了一种处理器检测方法,可以真实地反映处理器的占用率,从而准确地描述处理器的工作状态,有利于操作系统对任务进行合理调度。

有鉴于此,本发明第一方面提供了一种方法,包括:

预估执行目标任务所需的第一执行时间;

若所述第一执行时间大于所述预设值,则对所述目标任务进行拆分得到多个子任务;

获取每个所述子任务的执行时间并进行累加得到第二执行时间;

根据所述第二执行时间和cpu运行总时间的比值判断所述cpu的状态,所述cpu运行总时间为所述第二执行时间与cpu空闲时间的总和。

结合本申请实施例第一方面,在本申请实施例第一方面的第一种实施方式中,所述获取每个所述子任务的执行时间并进行累加得到第二执行之前,所述方法还包括:

设置时间戳,所述时间戳用于记录每个所述子任务的开始时间和结束时间。

结合本申请实施例第一方面的第一种实施方式,在本申请实施例第一方面的第二种实施方式中,所述获取每个所述子任务的执行时间并进行累加得到第二执行时间包括:

通过所述时间戳记录获取第一子任务的开始时间和结束时间;

根据所述第一子任务的开始时间和结束时间之间的时间段得到第三执行时间;

通过所述时间戳记录获取第二子任务的开始时间和结束时间;

根据所述第二子任务的开始时间和结束时间之间的时间段得到第四执行时间,所述多个子任务至少包括第一子任务和第二子任务;

累加所述第三执行时间和所述第四执行时间得到所述第二执行时间。

结合本申请实施例第一方面,在本申请实施例第一方面的第三种实施方式中,所述预估执行目标任务所需的第一执行时间之前,所述方法还包括:

将所述目标任务对应的线程与所述cpu进行绑定。

结合本申请实施例第一方面,在本申请实施例第一方面的第四种实施方式中,所述预设值为100ms。

结合本申请实施例第一方面至第一方面的第三种实施方式中的任意一种实施方式,在本申请实施例第一方面的第五种实施方式中,所述目标任务具有线程无关性。

本发明第二方面提供了一种处理器,所述处理器包括:

预估单元,用于预估执行目标任务所需的第一执行时间;

拆分单元,用于当所述第一执行时间大于所述预设值时,对所述目标任务进行拆分得到多个子任务;

累加单元,用于获取每个所述子任务的执行时间并进行累加得到第二执行时间;

判断单元,用于根据所述第二执行时间和cpu运行总时间的比值判断所述cpu的状态,所述cpu运行总时间为所述第二执行时间与cpu空闲时间的总和。

结合本申请实施例第二方面,在本申请实施例第二方面的第一种实施方式中,所述处理器还包括:

设置单元,用于所述累加单元之前设置时间戳,所述时间戳用于记录每个所述子任务的开始时间和结束时间。

结合本申请实施例第二方面的第一种实施方式,在本申请实施例第二方面的第二种实施方式中,所述处理器还包括:

绑定单元,用于所述预估单元之前将所述目标任务对应的线程与所述cpu进行绑定。

本申请第三方面提供一种计算机设备,所述计算机设备包括所述处理器、存储器以及总线,所述处理器和所述存储器通过所述总线进行连接,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器的所述软件程序使得计算机可以执行上述任一方面的方法。

本申请第四方面提供一种计算机存储介质,用于储存为上述方法所用的计算机软件指令,当其在计算机上运行时,使得计算机执行上述任一方面的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例提供了一种处理器检测方法,首先处理器预估执行目标任务所需的第一执行时间;若所述第一执行时间大于所述预设值,则对所述目标任务进行拆分得到多个子任务;然后获取每个所述子任务的执行时间并进行累加得到第二执行时间;再根据所述第二执行时间和cpu运行总时间的比值判断所述cpu的状态,所述cpu运行总时间为所述第二执行时间与cpu空闲时间的总和。通过记录时间戳的方式得到目标任务下每个子任务执行所需要的时间,将每个子任务的执行时间进行累加,根据累加得到的第二执行时间与cpu运行总时间的比值可以真实地反映cpu的占用率,从而准确地描述cpu的工作状态。

附图说明

图1为传统的cpu检测方法与实际cpu工作状态的对比示意图;

图2为本申请实施例中处理器检测方法的流程示意图;

图3为本申请实施例中任务执行时间和cpu运行总时间的场景示意图;

图4为本申请实施例中处理器检测装置的结构示意图;

图5为本申请实施例中处理器检测装置的另一结构示意图;

图6为本申请实施例中处理器检测装置的另一结构示意图;

图7为本申请实施例中计算机设备的结构示意图。

具体实施方式

本申请实施例提供了一种处理器检测方法,首先处理器预估执行目标任务所需的第一执行时间;若所述第一执行时间大于所述预设值,则对所述目标任务进行拆分得到多个子任务;然后获取每个所述子任务的执行时间并进行累加得到第二执行时间;再根据所述第二执行时间和cpu运行总时间的比值判断所述cpu的状态,所述cpu运行总时间为所述第二执行时间与cpu空闲时间的总和。通过记录时间戳的方式得到执行每个子任务所需要的时间,将每个子任务的执行时间进行累加,根据累加得到的第二执行时间与cpu运行总时间的比值可以真实地反映cpu的占用率,从而准确地描述cpu的工作状态。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

随着科技的快速发展,人们对计算机的运算速度也提出了更高的要求,运算速度的快慢重点取决于cpu,因此具备多个cpu的计算机运算速度明显加快,同时每个cpu中又可包含多个物理核,例如现有的双核、四核和八核处理器等。所谓双核心处理器,简单地说就是在一块cpu基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来,两个核心能相互配合,并行处理业务,从而提高cpu的运行速度。

另外还可以通过多线程的方式提高cpu的工作效率。线程,有时被称为轻量进程(lightweightprocess,lwp),是程序执行流的最小单元。进程是操作系统中基本的运行单元,一个进程可以包含多个线程,由于线程比进程小,基本上不拥有系统资源,因此操作系统对线程的调度所付出的开销就会小得多,如此一来能够更高效地提高系统多个程序间的并发性。

计算机中的存储设备具有很高的实时性,会一直检测接口数据包的动态,一旦检测到有行为发生,可在第一时间进行处理,这样的特性使得存储设备在没有数据包来临时,也会持续进行检测,从而导致cpu的占用率一直在百分之百。如图1所示,利用top命令观测到的cpu的占用率一直维持在百分之百,但cpu实际上因有效工作产生的占用率是低于百分之百且一直处于变化状态,由此可见传统的对于cpu的检测方式并不能真实地反映cpu的工作状态。

因此本申请实施例提供了一种处理器检测方法,具体的处理器检测方法的流程图如图2所示:

101、预估执行目标任务所需的第一执行时间;

任务可以理解为函数,存储控制器处理的任务都是与流量数据有关的内容,每个任务都包含了流量数据的信息,例如流量数据请求等等。本申请实施例中要求任务的处理时间不能太长,如果处理时间太长,便会占用cpu太长时间,影响cpu的工作效率,因此本申请实施例中需要提前预估执行目标任务可能耗费的时间。

102、若所述第一执行时间大于所述预设值,则对所述目标任务进行拆分得到多个子任务;

本申请实施例中通过第一执行时间判断目标任务是否是超长任务的临界值为100ms,如果预估的第一执行时间大于100ms,则认为该任务所需的处理时间太长,需要对该目标任务进行拆分得到多个子任务。

103、获取每个所述子任务的执行时间并进行累加得到第二执行时间;

本申请实施例中cpu获取多个子任务的执行时间并进行累加得到总的第二执行时间,如图2所示,假设某个cpu上分配到的任务是任务1和任务2,那么可以通过提前设置的时间戳模式得到每个任务的开始时间和结束时间,根据两个时间点得到执行每个任务所需的执行时间,然后将每个子任务的执行时间进行累加得到总的第二执行时间。

104、根据所述第二执行时间和cpu运行总时间的比值判断所述cpu的状态,所述cpu运行总时间为所述第二执行时间与cpu空闲时间的总和。

本申请实施例中累加多个子任务的执行时间得到第二执行时间,并通过第二执行时间与cpu的运行总时间的比值大小判断cpu的忙碌状态。需要说明的是,在任务1和任务2执行期间可能会有空闲期,因此cpu的总运行时间是大于或等于每个子任务执行时间的累加和。

由于执行任务所需的执行时间一定是cpu有效处理数据的体现,因此通过第二执行时间与cpu的运行总时间的比值判断cpu忙碌状态的方式有效且准确,有利于操作系统接下来对任务进行合理地调度,提高cpu的工作效率。

可选地,在上述实施例的基础上,本发明实施例提供的处理器检测方法的另一实施例中,所述获取每个所述子任务的执行时间并进行累加得到第二执行之前,时间所述方法还包括:

设置时间戳,所述时间戳用于记录每个所述子任务的开始时间和结束时间。

本申请实施例中会提前设置好时间戳,每当有事件发生时,便会记录下当时的时间点,例如图3中任务1和任务2的任务开始时间和任务结束时间,也就是本申请中cpu需要获取的事件时间点,通过开始时间和结束时间可以确定执行该任务所需的执行时间,该执行时间能够真实地反映cpu的有效工作。

可选地,在上述实施例的基础上,本发明实施例提供的cpu检测方法的实施例中,所述获取每个所述子任务的执行时间并进行累加得到第二执行时间包括:

通过所述时间戳记录获取第一子任务的开始时间和结束时间;

根据所述第一子任务的开始时间和结束时间之间的时间段得到第三执行时间;

通过所述时间戳记录获取第二子任务的开始时间和结束时间;

根据所述第二子任务的开始时间和结束时间之间的时间段得到第四执行时间,所述多个子任务至少包括第一子任务和第二子任务;

累加所述第三执行时间和所述第四执行时间得到所述第二执行时间。

由于有时cpu会处于空闲状态,因此本申请实施例并没有笼统地将cpu的运行总时间当做判断cpu有效工作的唯一标准,而是通过精确地记录每个子任务开始时间和结束时间的方式确定每个任务的执行时间,并且考虑到了cpu空闲时间对于cpu工作状态判断的干扰,根据各个子任务执行时间之和与cpu运行总时间的比值表示cpu的占用率,通过上述方式,可以准确的得到cpu的使用情况,为合理的进行任务调度提供数据支持。

可选地,在上述实施例的基础上,本发明实施例提供的处理器检测方法的另一实施例中,所述预估执行目标任务所需的第一执行时间之前,所述方法还包括:

将线程与所述cpu进行绑定。

进程是操作系统分配资源的基本单位,在内存中有完备的数据空间和代码空间,系统会为进程分配cpu资源,例如各种表格、内存空间和i/o设备等。而线程是存在于进程中的一部分,各线程可以共享相同的代码和全局数据,因此线程比进程更加紧密,比单独的进程更趋向于相互作用。本申请中的任务是指一系列为达到某一目的的操作,是一个较为宽泛的概念,任务可以是一个进程也可以是一个线程。

多任务的执行可采用在系统级上运行多个进程来实现,在配置过程中需要先将进程下的线程与cpu进行绑定,由于cpu之间的缓存是不共享的,因此如果线程频繁的在各个cpu间进行切换,就会大大影响cpu的工作效率。

在linux中,我们可以把多个线程绑定在一个cpu上,也可以把单个线程绑定在一个cpu上,在后者的处理模式下,系统的效率会更高一些,因此在主程序启动的时候,需要把进程下的每个线程分别绑定在不同的cpu上,以便提高执行效率。

可选地,在上述实施例的基础上,本发明实施例提供的cpu检测方法的实施例中,所述目标任务具有线程无关性。

目标任务的线程无关性意味着任务的执行与在哪个线程执行无关,任务也无需知道自身在哪个线程执行,如此一来消减了任务执行的限制性,使得执行任务的过程能够更加顺利。

对应的本申请实施例中处理器检测方法,下面从虚拟装置方面对本发明中处理器进行详细描述,请参阅图4,处理器检测装置20包括:

预估单元201,用于预估执行目标任务所需的第一执行时间;

拆分单元202,用于当所述第一执行时间大于所述预设值时,对所述目标任务进行拆分得到多个子任务;

累加单元203,用于获取每个所述子任务的执行时间并进行累加得到第二执行时间;

判断单元204,用于根据所述第二执行时间和cpu运行总时间的比值判断所述cpu的状态,所述cpu运行总时间为所述第二执行时间与cpu空闲时间的总和。

本申请实施例中的处理器可通过累加单元303对每个子任务的执行时间进行累加得到处理器有效的工作总时间即第二执行时间,并在判断单元根据第二执行时间和cpu运行总时间的比值判断cpu的工作状态,通过上述方式确定cpu的忙碌状态有效且准确,有利于操作系统对任务进行合理调度,从而提高cpu的工作效率。

可选地,在图4对应的实施例的基础上,请参阅图5,本发明实施例提供的处理器检测装置中还包括:

设置单元205,用于所述累加单元之前设置时间戳,所述时间戳用于记录每个所述子任务的开始时间和结束时间。

本申请实施例处理器通过设置单元205可提前设置时间戳,记录每个子任务的开始时间和结束时间,从而确定子任务的执行时间,该执行时间能够真实地反映cpu的有效工作

可选地,在上图4对应的实施例的基础上,请参阅图6,本发明实施例提供的处理器检测装置还包括:

绑定单元206,用于所述预估单元之前将线程与所述cpu进行绑定。

本申请通过处理器的绑定单元提前将线程与处理器进行绑定,由绑定的处理器对线程进行处理,保证线程不会迁移到其他处理器,导致处理器工作效率降低。

下面从计算机设备的角度进行描述,如图7所示,本申请实施例中计算机设备的一个实施例包括:

处理器501和存储器502(其中计算机设备中的处理器501的数量可以一个或多个,图5中以一个处理器501为例)。在本发明的一些实施例中,处理器501和存储器502可通过总线或其它方式连接,其中,图5中以通过总线连接为例。

存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行计算机设备的各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1