CN106528318A - 线程死循环检测方法和装置 - Google Patents

线程死循环检测方法和装置 Download PDF

Info

Publication number
CN106528318A
CN106528318A CN201611077748.7A CN201611077748A CN106528318A CN 106528318 A CN106528318 A CN 106528318A CN 201611077748 A CN201611077748 A CN 201611077748A CN 106528318 A CN106528318 A CN 106528318A
Authority
CN
China
Prior art keywords
cycle
thread
concern
run time
cpu
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
Application number
CN201611077748.7A
Other languages
English (en)
Other versions
CN106528318B (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.)
Maipu Communication Technology Co Ltd
Original Assignee
Maipu Communication Technology 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 Maipu Communication Technology Co Ltd filed Critical Maipu Communication Technology Co Ltd
Priority to CN201611077748.7A priority Critical patent/CN106528318B/zh
Publication of CN106528318A publication Critical patent/CN106528318A/zh
Application granted granted Critical
Publication of CN106528318B publication Critical patent/CN106528318B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种线程死循环检测方法和装置,涉及计算机领域,用于解决在Linux系统的公平调度模型中根据请求响应的查询方法会消耗被检测线程资源的问题。该线程死循环检测方法,应用于Linux系统的公平调度模型,方法包括:分别统计在[1,M]周期内的中央处理单元CPU内核利用率,M为正整数且M>1;如果在[1,N]周期内的CPU内核利用率均大于第一门限,则获取[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M;分别统计在[N,M]周期内关注线程的CPU占用率;如果在[N,M]周期内的CPU内核利用率均大于第一门限,并且关注线程的CPU占用率均大于第二门限,则确定关注线程为死循环线程。本发明实施例应用于线程死循环检测。

Description

线程死循环检测方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种线程死循环检测方法和装置。
背景技术
在Linux操作系统中,通常采用公平调度模型,在检测线程死循环时,通常采用请求响应的查询方法,即创建检测线程,该检测线程周期性向其他所有线程发送查询消息等待其他线程响应回复消息,如果在几个查询周期中,检测线程都未收到某个线程的回复消息,则认为该线程出现了死循环。其中,完全公平调度(CFS,completely fail schedule)为Linux系统进程/线程调度器的一种调度方法,特点是根据各个调度对象的权重来分配运行时间;死循环是指多线程系统中,某个线程一直在运行一小段逻辑,没有跳出该段逻辑,去执行线程应该运行的其他正常逻辑。此种情况为线程软件中不正常现场,需要排查软件错误并解决。
但是上述方案会为被检测线程带来额外系统开销,因为被检测线程需要消耗时间片用于接收并回复查询消息。
发明内容
本发明的实施例提供一种线程死循环检测方法和装置,用于解决在Linux系统的公平调度模型中根据请求响应的查询方法会消耗被检测线程资源的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种线程死循环检测方法,应用于Linux系统的公平调度模型,该方法包括:
分别统计在[1,M]周期内的中央处理单元CPU内核利用率,M为正整数且M>1;
如果在[1,N]周期内的CPU内核利用率均大于第一门限,则获取所述[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M;
分别统计在[N,M]周期内所述关注线程的CPU占用率;
如果在所述[N,M]周期内的CPU内核利用率均大于第一门限,并且所述关注线程的CPU占用率均大于第二门限,则确定所述关注线程为死循环线程。
第二方面,提供了一种线程死循环检测装置,应用于Linux系统的公平调度模型,该装置包括:
统计单元,用于分别统计在[1,M]周期内的中央处理单元CPU内核利用率,M为正整数且M>1;
获取单元,用于如果在[1,N]周期内的CPU内核利用率均大于第一门限,则获取所述[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M;
所述统计单元,还用于分别统计在[N,M]周期内所述关注线程的CPU占用率;
确定单元,用于如果在所述[N,M]周期内的CPU内核利用率均大于第一门限,并且所述关注线程的CPU占用率均大于第二门限,则确定所述关注线程为死循环线程。
本发明的实施例提供的线程死循环检测方法和装置,通过检测CPU(centralprocessing unit,中央处理单元)内核利用率来判断可能发生死循环的时机,当内核利用率持续较高时检测各个线程的CPU占用率,将CPU占用率持续较高的线程判定为死循环线程,因为是通过检测内核利用率和CPU占用率来检测线程死循环,不必与被检测线程通信交互,解决了在Linux系统的公平调度模型中根据请求响应的查询方法会消耗被检测线程资源的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种线程死循环检测方法的流程示意图;
图2为本发明的实施例提供的一种统计在[1,M]周期内的CPU内核利用率的流程示意图;
图3为本发明的实施例提供的一种获取[1,N]周期内的CPU占用率最高的线程作为关注线程的流程示意图;
图4为本发明的实施例提供的一种统计在[N,M]周期内关注线程的CPU占用率的流程示意图;
图5为本发明的实施例提供的一种线程死循环检测装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的线程死循环检测方法和装置,通过单独线程检测CPU(central processing unit,中央处理单元)内核利用率,当内核利用率较高时检测线程的CPU占用率,将CPU占用率持续较高的线程判定为死循环线程,不必与被检测线程通信交互,解决了在Linux系统的公平调度模型中根据请求响应的查询方法会消耗被检测线程资源的问题。
实施例1、
本发明实施例提供了一种线程死循环检测方法,应用于Linux系统的公平调度模型,参照图1中所示,该方法包括步骤S101-S104:
S101、分别统计在[1,M]周期内的CPU内核利用率,M为正整数且M>1。
在这里将M个周期的检测作为一轮,可以在满足一定条件时提前中止本轮检测。
另外,可以在系统初始化时新建单独的检测线程,用于对业务线程进行检测。对于多核CPU可以分别获取每个内核的CPU内核利用率。优选的,每个周期的时间长度可以为20秒,M可以为9。
具体的,参照图2中所示,步骤S101可以包括:S1011-S1012。
S1011、在[1,M]周期内的第i个周期的起始时刻读取/proc/stat文件,以获取第i个周期的CPU内核运行时间;在第i+1个周期的起始时刻读取/proc/stat文件,以获取第i+1个周期的CPU内核运行时间,1≤i<M。
在Linux系统中每个/proc/stat会统计当前CPU各个内核运行时间,此处的内核运行时间为绝对时间值,例如2000001秒。
S1012、根据(第i+1个周期的CPU内核运行时间-第i个周期CPU的内核运行时间)/每个周期时间长度得到第i个周期的CPU内核利用率。
即根据第i+1个周期的CPU内核运行时间减去第i个周期CPU的内核运行时间的差除以每个周期时间长度得到第i个周期的CPU内核利用率。
示例性的,对于每个周期的时间长度为20秒时,可以根据(20秒时CPU内核运行时间-0秒时CPU内核运行时间)/20秒得到第一个周期的CPU内核利用率。
S102、如果在[1,N]周期内的CPU内核利用率均大于第一门限,则获取[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M。
优选的,第一门限为95%,N为2。在[1,N]周期内CPU内核利用率均大于第一门限时,可能在该内核上存在死循环任务,也可能是正常任务因为计算量较大而需要占用较高的CPU内核利用率。如果在[1,N]周期内的任一周期中出现CPU内核利用率小于第一门限,则可以确定是正常任务结束使得CPU内核利用率降低,因此退出本轮检测,重新开始新一轮的检测,即重新开始步骤S101。
具体的,参照图3中所示,获取[1,N]周期内的CPU占用率最高的线程作为关注线程可以包括步骤S1021-S1023:
S1021、在[1,N]周期内的第N-1个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在第N-1个周期的运行时间;在第N个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在第N个周期的运行时间。
具体的,对于每个线程均可以得到该线程在第N-1个周期的运行时间和在第N个周期的运行时间。
S1022、将各个线程的第N个周期的运行时间减去第N-1个周期的运行时间得到各个线程的时间差值。
具体的,将每个线程在第N个周期的运行时间减去该线程在第N-1个周期的运行时间可以得到该线程的时间差值。
S1023、获取各个线程的时间差值中的最大值,将最大值对应的线程作为关注线程。
具体的,可以根据时间差值按照从大到小对各线程进行排序,最大值对应的线程即为关注线程。
S103、分别统计在[N,M]周期内关注线程的CPU占用率。
具体的,参照图4中所示,该步骤可以包括步骤S1031-S1032:
S1031、在[N,M]周期内的第j-1个周期的结束时刻读取/proc/PID/stat文件,以获取关注线程在第j-1个周期的运行时间;在第j个周期的结束时刻读取/proc/PID/stat文件,以获取关注线程在第j个周期的运行时间,N<j≤M;
S1032、根据(关注线程在第j个周期的运行时间-关注线程在第j-1个周期的运行时间)/每个周期时间长度得到关注线程在第j个周期的CPU占用率。
S104、如果在[N,M]周期内的CPU内核利用率均大于第一门限,并且关注线程的CPU占用率均大于第二门限,则确定关注线程为死循环线程。
优选的,第二门限为60%,属于单线程的CPU占用率门限。对于[N,M]周期内的任一周期均满足CPU内核利用率均大于第一门限,并且关注线程的CPU占用率均大于第二门限,才能确定该关注线程为死循环线程。当关注线程确定存在死循环时,则搜集该线程的堆栈信息,堆栈信息收集三次,每个之间间隔1个毫秒,主要为了多次收集死循环线程的堆栈,得到清晰的线程函数调用关系,便于定位问题,同时记录CPU高和死循环线程的系统日志信息。
本发明实施例提供的线程死循环检测方法,通过检测CPU(central processingunit,中央处理单元)内核利用率来判断可能发生死循环的时机,当内核利用率持续较高时检测各个线程的CPU占用率,将CPU占用率持续较高的线程判定为死循环线程,因为是通过检测内核利用率和CPU占用率来检测线程死循环,不必与被检测线程通信交互,解决了在Linux系统的公平调度模型中根据请求响应的查询方法会消耗被检测线程资源的问题。
实施例2、
本发明实施例提供了一种线程死循环检测装置10,应用于上述线程死循环检测方法,参照图5中所示,包括:
统计单元101,用于分别统计在[1,M]周期内的中央处理单元CPU内核利用率,M为正整数且M>1;
获取单元102,用于如果统计单元101统计的在[1,N]周期内的CPU内核利用率均大于第一门限,则获取[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M;
统计单元101,还用于分别统计在[N,M]周期内关注线程的CPU占用率;
确定单元103,用于如果统计单元101统计的在[N,M]周期内的CPU内核利用率均大于第一门限,并且获取单元102获取的关注线程的CPU占用率均大于第二门限,则确定关注线程为死循环线程。
在一种可能的设计中,统计单元101具体用于:
在[1,M]周期内的第i个周期的起始时刻读取/proc/stat文件,以获取第i个周期的CPU内核运行时间;在第i+1个周期的起始时刻读取/proc/stat文件,以获取第i+1个周期的CPU内核运行时间,1≤i<M;
根据所述关注线程在所述第j个周期的运行时间减去所述关注线程在所述第j-1个周期的运行时间的差除以每个周期时间长度得到所述关注线程在所述第j个周期的CPU占用率。
在一种可能的设计中,获取单元102具体用于:
在[1,N]周期内的第N-1个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在第N-1个周期的运行时间;在第N个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在第N个周期的运行时间;
将各个线程的第N个周期的运行时间减去第N-1个周期的运行时间得到各个线程的时间差值;
获取各个线程的时间差值中的最大值,将最大值对应的线程作为关注线程。
在一种可能的设计中,统计单元101具体用于:
在[N,M]周期内的第j-1个周期的结束时刻读取/proc/PID/stat文件,以获取关注线程在第j-1个周期的运行时间;在第j个周期的结束时刻读取/proc/PID/stat文件,以获取关注线程在第j个周期的运行时间,N<j≤M;
根据(关注线程在第j个周期的运行时间-关注线程在第j-1个周期的运行时间)/每个周期时间长度得到关注线程在第j个周期的CPU占用率。
由于本发明实施例中的线程死循环检测装置可以应用于上述线程死循环检测方法,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
需要说明的是,统计单元、获取单元、确定单元可以为单独设立的处理器,也可以集成在控制器的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制器的存储器中,由控制器的某一个处理器调用并执行以上统计单元、获取单元、确定单元的功能。这里所述的处理器可以是一个中央处理器(英文全称:central processing unit,英文简称:CPU),或者是特定集成电路(英文全称:application specific integrated circuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种线程死循环检测方法,应用于Linux系统的公平调度模型,其特征在于,所述方法包括:
分别统计在[1,M]周期内的中央处理单元CPU内核利用率,M为正整数且M>1;
如果在[1,N]周期内的CPU内核利用率均大于第一门限,则获取所述[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M;
分别统计在[N,M]周期内所述关注线程的CPU占用率;
如果在所述[N,M]周期内的CPU内核利用率均大于第一门限,并且所述关注线程的CPU占用率均大于第二门限,则确定所述关注线程为死循环线程。
2.根据权利要求1所述的方法,其特征在于,所述分别统计在[1,M]周期内中央处理单元CPU内核利用率,包括:
在所述[1,M]周期内的第i个周期的起始时刻读取/proc/stat文件,以获取所述第i个周期的CPU内核运行时间;在第i+1个周期的起始时刻读取/proc/stat文件,以获取所述第i+1个周期的CPU内核运行时间,1≤i<M;
根据第i+1个周期的CPU内核运行时间减去第i个周期CPU的内核运行时间的差除以每个周期时间长度得到所述第i个周期的CPU内核利用率。
3.根据权利要求1所述的方法,其特征在于,所述获取所述[1,N]周期内的CPU占用率最高的线程作为关注线程,包括:
在所述[1,N]周期内的第N-1个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在所述第N-1个周期的运行时间;在第N个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在所述第N个周期的运行时间;
将各个线程的第N个周期的运行时间减去第N-1个周期的运行时间得到所述各个线程的时间差值;
获取所述各个线程的时间差值中的最大值,将最大值对应的线程作为关注线程。
4.根据权利要求1所述的方法,其特征在于,所述分别统计在[N,M]周期内所述关注线程的CPU占用率,包括:
在所述[N,M]周期内的第j-1个周期的结束时刻读取/proc/PID/stat文件,以获取所述关注线程在所述第j-1个周期的运行时间;在第j个周期的结束时刻读取/proc/PID/stat文件,以获取所述关注线程在所述第j个周期的运行时间,N<j≤M;
根据所述关注线程在所述第j个周期的运行时间减去所述关注线程在所述第j-1个周期的运行时间的差除以每个周期时间长度得到所述关注线程在所述第j个周期的CPU占用率。
5.一种线程死循环检测装置,应用于Linux系统的公平调度模型,其特征在于,所述装置包括:
统计单元,用于分别统计在[1,M]周期内的中央处理单元CPU内核利用率,M为正整数且M>1;
获取单元,用于如果在[1,N]周期内的CPU内核利用率均大于第一门限,则获取所述[1,N]周期内的CPU占用率最高的线程作为关注线程,N为正整数且1<N<M;
所述统计单元,还用于分别统计在[N,M]周期内所述关注线程的CPU占用率;
确定单元,用于如果在所述[N,M]周期内的CPU内核利用率均大于第一门限,并且所述关注线程的CPU占用率均大于第二门限,则确定所述关注线程为死循环线程。
6.根据权利要求5所述的装置,其特征在于,所述统计单元具体用于:
在所述[1,M]周期内的第i个周期的起始时刻读取/proc/stat文件,以获取所述第i个周期的CPU内核运行时间;在第i+1个周期的起始时刻读取/proc/stat文件,以获取所述第i+1个周期的CPU内核运行时间,1≤i<M;
根据第i+1个周期的CPU内核运行时间减去第i个周期CPU的内核运行时间的差除以每个周期时间长度得到所述第i个周期的CPU内核利用率。
7.根据权利要求5所述的装置,其特征在于,所述获取单元具体用于:
在所述[1,N]周期内的第N-1个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在所述第N-1个周期的运行时间;在第N个周期的结束时刻读取/proc/PID/stat文件,以获取所有线程在所述第N个周期的运行时间;
将各个线程的第N个周期的运行时间减去第N-1个周期的运行时间得到所述各个线程的时间差值;
获取所述各个线程的时间差值中的最大值,将最大值对应的线程作为关注线程。
8.根据权利要求5所述的装置,其特征在于,所述统计单元具体用于:
在所述[N,M]周期内的第j-1个周期的结束时刻读取/proc/PID/stat文件,以获取所述关注线程在所述第j-1个周期的运行时间;在第j个周期的结束时刻读取/proc/PID/stat文件,以获取所述关注线程在所述第j个周期的运行时间,N<j≤M;
根据所述关注线程在所述第j个周期的运行时间减去所述关注线程在所述第j-1个周期的运行时间除以每个周期时间长度得到所述关注线程在所述第j个周期的CPU占用率。
CN201611077748.7A 2016-11-29 2016-11-29 线程死循环检测方法和装置 Active CN106528318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611077748.7A CN106528318B (zh) 2016-11-29 2016-11-29 线程死循环检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611077748.7A CN106528318B (zh) 2016-11-29 2016-11-29 线程死循环检测方法和装置

Publications (2)

Publication Number Publication Date
CN106528318A true CN106528318A (zh) 2017-03-22
CN106528318B CN106528318B (zh) 2020-02-04

Family

ID=58353936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611077748.7A Active CN106528318B (zh) 2016-11-29 2016-11-29 线程死循环检测方法和装置

Country Status (1)

Country Link
CN (1) CN106528318B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399117A (zh) * 2018-02-28 2018-08-14 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN110609773A (zh) * 2019-09-05 2019-12-24 北京宝兰德软件股份有限公司 Java线程CPU使用率获取方法及装置
CN111045832A (zh) * 2019-11-13 2020-04-21 烽火通信科技股份有限公司 一种软件死循环或阻塞监控的方法及系统
CN111159051A (zh) * 2019-12-31 2020-05-15 北京天融信网络安全技术有限公司 死锁检测方法、装置、电子设备及可读存储介质
CN111831519A (zh) * 2019-04-16 2020-10-27 阿里巴巴集团控股有限公司 一种数据获取方法、装置及设备
WO2023109338A1 (zh) * 2021-12-14 2023-06-22 中兴通讯股份有限公司 内核的负荷控制方法及装置、计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044909A1 (en) * 2000-05-15 2001-11-22 Lg Electronics Inc. Method and apparatus for adjusting clock throttle rate based on usage of CPU
CN1508683A (zh) * 2002-12-17 2004-06-30 深圳市中兴通讯股份有限公司 一种在多任务实时操作系统中检测cpu占用率的方法
CN101561778A (zh) * 2008-04-15 2009-10-21 中兴通讯股份有限公司 一种检测多任务操作系统任务死循环的方法
CN102110043A (zh) * 2010-12-30 2011-06-29 上海顶竹通讯技术有限公司 一种cpu占用率的计算方法及装置
CN102222015A (zh) * 2010-04-13 2011-10-19 三星电子(中国)研发中心 检测多线程程序中的死锁的方法及系统
CN102929770A (zh) * 2012-09-25 2013-02-13 烽火通信科技股份有限公司 嵌入式linux系统用户态任务独占的监测定位方法
CN103455407A (zh) * 2013-09-03 2013-12-18 小米科技有限责任公司 一种移动终端cpu占用率监测方法、装置及移动终端
CN204886410U (zh) * 2015-07-02 2015-12-16 国网北京市电力公司 一种基于智能变电站的二次设备状态监测系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044909A1 (en) * 2000-05-15 2001-11-22 Lg Electronics Inc. Method and apparatus for adjusting clock throttle rate based on usage of CPU
CN1508683A (zh) * 2002-12-17 2004-06-30 深圳市中兴通讯股份有限公司 一种在多任务实时操作系统中检测cpu占用率的方法
CN101561778A (zh) * 2008-04-15 2009-10-21 中兴通讯股份有限公司 一种检测多任务操作系统任务死循环的方法
CN102222015A (zh) * 2010-04-13 2011-10-19 三星电子(中国)研发中心 检测多线程程序中的死锁的方法及系统
CN102110043A (zh) * 2010-12-30 2011-06-29 上海顶竹通讯技术有限公司 一种cpu占用率的计算方法及装置
CN102929770A (zh) * 2012-09-25 2013-02-13 烽火通信科技股份有限公司 嵌入式linux系统用户态任务独占的监测定位方法
CN103455407A (zh) * 2013-09-03 2013-12-18 小米科技有限责任公司 一种移动终端cpu占用率监测方法、装置及移动终端
CN204886410U (zh) * 2015-07-02 2015-12-16 国网北京市电力公司 一种基于智能变电站的二次设备状态监测系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399117A (zh) * 2018-02-28 2018-08-14 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN108399117B (zh) * 2018-02-28 2022-02-01 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN111831519A (zh) * 2019-04-16 2020-10-27 阿里巴巴集团控股有限公司 一种数据获取方法、装置及设备
CN110609773A (zh) * 2019-09-05 2019-12-24 北京宝兰德软件股份有限公司 Java线程CPU使用率获取方法及装置
CN111045832A (zh) * 2019-11-13 2020-04-21 烽火通信科技股份有限公司 一种软件死循环或阻塞监控的方法及系统
CN111045832B (zh) * 2019-11-13 2022-09-30 烽火通信科技股份有限公司 一种软件死循环或阻塞监控的方法及系统
CN111159051A (zh) * 2019-12-31 2020-05-15 北京天融信网络安全技术有限公司 死锁检测方法、装置、电子设备及可读存储介质
WO2023109338A1 (zh) * 2021-12-14 2023-06-22 中兴通讯股份有限公司 内核的负荷控制方法及装置、计算机可读存储介质

Also Published As

Publication number Publication date
CN106528318B (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN106528318A (zh) 线程死循环检测方法和装置
CN105487930B (zh) 一种基于Hadoop的任务优化调度方法
CN105376100B (zh) 一种适用于云平台资源监控的分布式告警规则评估方法
CN107392412A (zh) 订单调度方法和装置
US9721240B2 (en) Software license serving in a massively parallel processing environment
CN106713396B (zh) 服务器调度方法和系统
CN106104483A (zh) 微处理器系统中的异常处理
CN110928655A (zh) 一种任务处理方法及装置
CN101566977B (zh) 处理器访问共享数据的方法、装置及系统
CN103440173A (zh) 一种多核处理器的调度方法和相关装置
CN110716800B (zh) 任务调度方法及装置、存储介质及电子设备
CN110163473A (zh) 一种任务进度的监控方法及设备
CN108112038B (zh) 一种控制访问流量的方法及装置
CN106062716B (zh) 在单任务系统中实现多任务的方法、装置及单任务系统
CN102521662A (zh) 一种云计算环境中消费计费的方法
CN106201676A (zh) 一种任务分配方法及装置
CN105378668A (zh) 多处理器系统中的操作系统管理的中断引导
CN105022668B (zh) 一种作业调度方法及系统
CN110708369B (zh) 设备节点的文件部署方法、装置、调度服务器及存储介质
CN101561778B (zh) 一种检测多任务操作系统任务死循环的方法
CN105242954B (zh) 一种虚拟cpu与物理cpu之间的映射方法及电子设备
CN102117468A (zh) 一种基于云计算的租借实例的方法
CN106021619A (zh) 全网搜索系统
CN109117280A (zh) 电子装置及其限制进程间通信的方法、存储介质
CN103763373A (zh) 一种基于云计算的调度方法和调度器

Legal Events

Date Code Title Description
C06 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
CP02 Change in the address of a patent holder

Address after: 610041 15-24 floor, 1 1 Tianfu street, Chengdu high tech Zone, Sichuan

Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 610041 16 Hing Hing Road, Chengdu high tech Development Zone, Sichuan, China 16

Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 610041 nine Xing Xing Road 16, hi tech Zone, Sichuan, Chengdu

Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 610041 15-24 floor, 1 1 Tianfu street, Chengdu high tech Zone, Sichuan

Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder