CN117827596A - 一种安全可控线程实时监控方法及系统 - Google Patents
一种安全可控线程实时监控方法及系统 Download PDFInfo
- Publication number
- CN117827596A CN117827596A CN202410245063.7A CN202410245063A CN117827596A CN 117827596 A CN117827596 A CN 117827596A CN 202410245063 A CN202410245063 A CN 202410245063A CN 117827596 A CN117827596 A CN 117827596A
- Authority
- CN
- China
- Prior art keywords
- thread
- moment
- task
- thread task
- time
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000035772 mutation Effects 0.000 claims abstract description 34
- 230000002159 abnormal effect Effects 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 4
- 238000003064 k means clustering Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 13
- 230000008859 change Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及数据处理了技术领域,具体涉及一种安全可控线程实时监控方法及系统,包括:获取每个线程任务的处理器占用序列与内存占用序列,获得每个线程任务在每个时刻的数据突变程度,根据数据突变程度,获得每个线程任务的死锁系数,根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,得到每个线程任务在每个时刻的死锁程度;获得大簇和小簇,获取异常监测空间中目标数据点,根据目标数据点与大簇和小簇之间距离,获得每个线程任务在每个时刻的最终离群因子;进行线程的实时监控。本发明优化了离群因子的参数,提高了离群因子对线程进行监控时的准确性。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种安全可控线程实时监控方法及系统。
背景技术
多线程技术在计算机应用领域得到了广泛的应用,通过同时处理多个任务充分发挥计算机处理器的性能,在针对海量数据的大数据处理和分析邻域具有广泛应用,通过同时处理数据集中的不同部分,加速数据清理、转换和分析的过程,提高了数据处理的效率和响应速度。
在通过CBLOF算法(Cluster-Based Local Outlier Factor,基于集成局部离群因子的聚类算法)对数据处理和分析邻域时,由于数据处理量巨大、大量的业务代码层线程池被使用,导致线程池超过容量、请求的线程产生堆积继而报错,引发处理系统响应时间长、处理成功率低、CPU和内存使用率突增等问题,使得其他线程不得不等待更长时间才能被处理,造成大数据实时处理的延迟和瓶颈的问题,导致CBLOF算法中获取到的离群因子的存在很大的偏差,则根据离群因子对线程进行监控时的准确性降低。
发明内容
本发明提供一种安全可控线程实时监控方法及系统,以解决现有的问题。
本发明的一种安全可控线程实时监控方法及系统采用如下技术方案:
本发明一个实施例提供了一种安全可控线程实时监控方法,该方法包括以下步骤:
采集每个线程任务的连续若干个时刻的处理器占用率和内存占用率;
获取每个线程任务的处理器占用序列与内存占用序列,根据每个线程任务的处理器占用序列与内存占用序列中相邻数据之间的差异,获得每个线程任务在每个时刻的数据突变程度,根据每个线程任务在每个时刻的数据突变程度,获得每个线程任务的总时刻个数和稳定时刻个数,根据每个线程任务的总时刻个数和稳定时刻个数之间的差异,获得每个线程任务的死锁系数,根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,对每个线程任务的死锁系数和每个时刻的死锁系数进行融合得到每个线程任务在每个时刻的死锁程度;
根据每个线程任务的处理器占用序列与内存占用序列之间的相关系数构建异常监测空间,对异常监测空间中的所有点进行聚类,获得大簇和小簇,根据相关系数获得异常监测空间中的目标数据点,根据目标数据点与大簇和小簇之间距离,获得每个线程任务在每个时刻的初始离群因子,根据每个线程任务在每个时刻的死锁程度,对初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子;
根据每个线程任务在每个时刻的最终离群因子进行线程的实时监控。
进一步地,所述获取每个线程任务的处理器占用序列与内存占用序列,根据每个线程任务的处理器占用序列与内存占用序列中相邻数据之间的差异,获得每个线程任务在每个时刻的数据突变程度,包括的具体步骤如下:
将每个线程任务的若干个时刻的处理器占用率按照时间的顺序组成每个线程任务的处理器占用序列,将每个线程任务的若干个时刻的内存占用率按照时间的顺序组成每个线程任务的内存占用序列;
每个线程任务在每个时刻的数据突变程度的计算公式为:
式中,表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的内存占用率,/>表示第/>个线程任务的第/>个时刻的内存占用率,/>表示第/>个线程任务在第/>个时刻的数据突变程度,/>表示每个时刻的之前的若干个时刻个数,/>表示以自然常数为底的指数函数,/>为绝对值符号。
进一步地,所述根据每个线程任务在每个时刻的数据突变程度,获得每个线程任务的总时刻个数和稳定时刻个数,根据每个线程任务的总时刻个数和稳定时刻个数之间的差异,获得每个线程任务的死锁系数,包括的具体步骤如下:
将任意一个时刻记为当前时刻;
从当前时刻开始,依次对当前时刻之前的每个时刻的数据突变程度进行遍历,具体过程为:先对当前时刻之前的一个时刻的数据突变程度进行分析,当/>大于或者等于预设阈值A时,则再对/>进行分析,当/>大于或者等于预设阈值A时,则再对/>进行分析,当/>大于或者等于预设阈值A时,继续进行分析,直至第一个小于预设阈值A的时刻的数据突变程度出现,则就停止迭代,将停止迭代的时刻记为停止时刻;
将第个线程任务的停止时刻和当前时刻之间的所有时刻的个数记为第/>个线程任务的稳定时刻个数/>,其中,包括停止时刻和当前时刻;
将个线程任务的起始时刻和当前时刻之间的所有时刻的个数记为第/>个线程任务的总时刻个数/>,其中,包括线程任务的起始时刻和当前时刻;
将第个线程任务的稳定时刻个数/>与第/>个线程任务的总时刻个数/>的比值,作为第/>个线程任务的死锁系数。
进一步地,所述根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,包括的计算公式如下:
式中,表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示以自然常数为底的指数函数,/>表示第/>个时刻的死锁系数,/>为绝对值符号,/>表示在每个时刻的所有线程任务的总数量。
进一步地,所述对每个线程任务的死锁系数和每个时刻的死锁系数进行融合得到每个线程任务在每个时刻的死锁程度,包括的具体步骤如下:
将每个线程任务的死锁系数与每个时刻的死锁系数的乘积结果,作为每个线程任务在每个时刻的死锁程度。
进一步地,所述根据每个线程任务的处理器占用序列与内存占用序列之间的相关系数构建异常监测空间,对异常监测空间中的所有点进行聚类,获得大簇和小簇,包括的具体步骤如下:
计算每个线程任务的处理器占用序列与内存占用序列之间的皮尔逊相关系数,以线程任务的序号为横轴,以皮尔逊相关系数为纵轴建立参考坐标系,将多线程系统中所有线程任务的皮尔逊相关系数映射在参考坐标系中,获得异常监测空间;
将异常监测空间中所有数据点通过k-means聚类算法进行聚类,获得若干个类簇;
根据类簇中的数据点的个数对所有的类簇按照从大到小的顺序进行降序排序,得到类簇降序序列;从类簇降序序列的第一个类簇开始,计算第一个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,当所述比值小于预设阈值B时,则继续计算类簇降序序列中前两个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,当所述比值小于预设阈值B时,则继续计算类簇降序序列中前三个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,直至出现大于或者等于预设阈值B时,则停止,此时将停止之前的所有类簇组成一个大簇,将除了大簇之外的所有类簇组成一个小簇。
进一步地,所述根据相关系数获得异常监测空间中的目标数据点,根据目标数据点与大簇和小簇之间距离,获得每个线程任务在每个时刻的初始离群因子,包括的具体步骤如下:
获取大簇中的聚类中心,将其记为大簇中心点;获取小簇中的聚类中心,将其记为小簇中心点;
将任意一个时刻记为当前时刻,获取第个线程任务在当前时刻的对应的第/>个线程任务的处理器占用序列与内存占用序列,并根据第/>个线程任务的处理器占用序列与内存占用序列获得第/>个线程任务的皮尔逊相关系数,并将所述皮尔逊相关系数映射在异常监测空间中获得一个点,记为目标数据点;
获取目标数据点到大簇中心点的距离和目标数据点到小簇中心点距离,将目标数据点与大簇中心点和小簇中心点之间的最小距离记为初始离群因子。
进一步地,所述根据每个线程任务在每个时刻的死锁程度,对初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子,包括的计算公式如下:
式中,表示第/>个线程任务在第/>个时刻的初始离群因子,/>表示第/>个线程任务在第/>个时刻的死锁程度,/>表示第/>个线程任务在第/>个时刻的最终离群因子。
进一步地,所述根据每个线程任务在每个时刻的最终离群因子进行线程的实时监控,包括的具体步骤如下:
根据每个线程任务在每个时刻的最终离群因子对异常监测空间中的所有数据点,通过CBLOF算法进行异常检测,通过异常检测结果进行线程的实时监控。
本发明还提供了一种安全可控线程实时监控系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项一种安全可控线程实时监控方法的步骤。
本发明的技术方案的有益效果是:构建异常监测空间,通过异常监测空间对每个线程进行异常监控,减少了数据的大量堆积而造成的计算效率低的问题,通过每个线程任务在每个时刻的死锁程度,对初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子,避免了每个线程任务在异常监测空间中多个数据点的不相同的影响,根据每个线程任务在每个时刻的最终离群因子进行线程的实时监控,优化了离群因子的参数,提高了离群因子对线程进行监控时的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种安全可控线程实时监控方法的步骤流程图。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种安全可控线程实时监控方法及系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的一种安全可控线程实时监控方法及系统的具体方案。
请参阅图1,其示出了本发明一个实施例提供的一种安全可控线程实时监控方法的步骤流程图,该方法包括以下步骤:
步骤S001:采集每个线程任务的连续若干个时刻的处理器占用率和内存占用率。
需要说明的是,为了分析多线程任务进行过程中每个线程的资源占用情况,进而需要对每个线程实现实时的监控,避免多线程中出现死锁,因此首先需要采集多线程在运行过程中每个线程任务的资源占用情况,通过采集关于每个线程任务的资源使用情况来分析,实现线程任务的监测。
具体地,以0.1秒为时间间隔,通过Windows任务管理器采集一周内每个线程任务的处理器占用率、内存占用率。
步骤S002:构建异常监测空间,根据每个线程任务的处理器占用序列与内存占用序列中相邻数据之间的差异,获得每个线程任务在每个时刻的数据突变程度,根据每个线程任务在每个时刻的数据突变程度,获得每个线程任务的总时刻个数和稳定时刻个数,根据每个线程任务的总时刻个数和稳定时刻个数之间的差异,获得每个线程任务的死锁系数,根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,对每个线程任务的死锁系数和每个时刻的死锁系数进行融合得到每个线程任务在每个时刻的死锁程度。
需要说明的是,当多线程系统出现死锁时,此时的线程任务在处理器占用率和内存占用率上存在范围内稳定变化的特征,每个线程任务持续执行,并且不释放CPU资源,并且每个线程任务都在等待其他线程任务释放多余的内存占用率和处理器占用率,并且所有线程的总占用率一直较高,因此可以通过每个线程任务的处理器占用率和内存占用率之间的关系来进行分析。
进一步需要说明的是,在多线程系统处理线程任务时,由于内存占用率受到处理器占用率的影响,当处理器能处理更多数据时处理器占用较高,那么数据需要从低速存储器向高速缓冲存储器传输,此时内存占用率随着处理器占用率的升高而升高,因此处理器占用率和内存占用率呈现正比关系,那么在一个线程任务执行时间内,内存占用率与处理器占用率呈现正比关系,因此本实施例通过内存占用率和处理器占用率在执行时间内的比例关系,获得每个线程任务在当前采集时刻的皮尔逊相关系数,根据皮尔逊相关系数构建异常监测空间。其中,每个线程任务指的是每个线程在一次处理数据的过程中,起始到终止的整个过程。
需要说明的是,在多线程系统中每个线程任务不止运行一次,因此本实施例的二维空间中每个线程任务存在多个皮尔逊相关系数。
具体地,将每个线程任务的若干个时刻的处理器占用率按照时间的顺序组成每个线程任务的处理器占用序列,将每个线程任务的若干个时刻的内存占用率按照时间的顺序组成每个线程任务的内存占用序列,计算每个线程任务的处理器占用序列与内存占用序列之间的皮尔逊相关系数。其中,皮尔逊相关系数的计算过程为公知技术,此处不再进行具体赘述。以线程任务的序号为横轴,以皮尔逊相关系数为纵轴建立参考坐标系;将多线程系统中所有线程任务的皮尔逊相关系数映射在参考坐标系中,获得异常监测空间。
需要说明的是,当多线程系统出现死锁时,每个线程任务都在等待其他线程任务释放的内存和处理器,此时所有未结束的线程任务的处理器占用率和内存占用率都在以一个变化较小、且占用率都逐步上升的趋势直至达到一个稳定的状态;因此可以根据每个线程任务的处理器占用率和内存占用率的变化趋势来分析每个线程任务的死锁状态。
具体地,将任意一个时刻记为当前时刻;根据每个线程任务的处理器占用序列与内存占用序列中相邻数据之间的差异,获得每个线程任务在每个时刻的数据突变程度,用公式表示为:
式中,表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的内存占用率,/>表示第/>个线程任务的第/>个时刻的内存占用率,/>表示第/>个线程任务在第/>个时刻的数据突变程度,/>表示每个时刻的之前的若干个时刻个数,/>表示以自然常数为底的指数函数,/>为绝对值符号。其中,第/>个时刻为当前时刻。公式中/>的最大取值范围为线程任务的所有时刻。
其中,表示相邻两个时刻的处理器占用率之间的差异,当处理器占用率之间的差异越大,表示该线程任务存在死锁异常的可能性越大,当处理器占用率之间的差异越小,表示该线程任务存在死锁异常的可能性越小。/>表示相邻两个时刻的内存占用率之间的差异,当内存占用率之间的差异越大,表示该线程任务存在死锁异常的可能性越大,当内存占用率之间的差异越小,表示该线程任务存在死锁异常的可能性越小。
预设一个阈值A,其中本实施例以A=0.05为例进行叙述,本实施例不进行具体限定,其中A可根据具体实施情况而定。
从当前时刻开始,依次对当前时刻之前的每个时刻的数据突变程度进行遍历,具体过程为:
先对当前时刻之前的一个时刻的数据突变程度进行分析,当/>大于或者等于预设阈值A时,则再对/>进行分析,当/>大于或者等于预设阈值A时,则再对/>进行分析,当/>大于或者等于预设阈值A时,继续进行分析,直至第一个小于预设阈值A的时刻的数据突变程度出现,则就停止迭代,将停止迭代的时刻记为停止时刻。
将第个线程任务的停止时刻和当前时刻之间的所有时刻的个数记为第/>个线程任务的稳定时刻个数/>,其中,包括停止时刻和当前时刻,其中,包括停止时刻和当前时刻。
将个线程任务的起始时刻和当前时刻之间的所有时刻的个数记为第/>个线程任务的总时刻个数/>,其中,包括线程任务的起始时刻和当前时刻。
根据每个线程任务的总时刻个数和稳定时刻个数之间的差异,获得每个线程任务的死锁系数,用公式表示为:
式中,表示第/>个线程任务的稳定时刻个数,/>表示第/>个线程任务的总时刻个数,/>表示第/>个线程任务的死锁系数。
其中,表示稳定时刻的个数在总时刻个数中的占比,当该占比越大时,表示该线程任务出现死锁的可能性越大。
至此,得到每个线程任务的死锁系数。
需要说明的是,当多线程系统中,当前时刻的处理器占用率和相邻的前一时刻的处理器占用率之间的差异很小时,则此时剩余的处理器空余占用率很小,则此时出现死锁的可能性很高;反之,当差异很大时,则此时剩余的处理器空余占用率很大,则此时出现死锁的可能性很低。
具体地,根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,用公式表示为:
式中,表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示以自然常数为底的指数函数,/>表示第/>个时刻的死锁系数,/>为绝对值符号,/>表示在每个时刻的所有线程任务的总数量。
其中,表示相邻两个时刻所有线程任务的处理器占用率的差异,当该差异越小,表示相邻两个时刻之间的空余处理器占用率差异较小,即当出现死锁时不能有很大的差异的空余处理器占用率来处理死锁线程问题,即此时出现死锁的可能性越高;当该差异越大,表示相邻两个时刻之间的空余处理器占用率差异较大,即当出现死锁时有很大的差异的空余处理器占用率来处理死锁线程问题,即此时出现死锁的可能性越低。
至此,得到每个时刻的死锁系数。
根据每个线程任务的死锁系数和每个时刻的死锁系数获得每个线程任务在每个时刻的死锁程度,用公式表示为:
式中,表示第/>个线程任务的死锁系数,/>表示第/>个时刻的死锁系数,/>表示第个线程任务在第/>个时刻的死锁程度。
其中,当每个线程的死锁系数越大,且每个时刻的死锁系数越大,则对应的线程在对应的时刻的死锁程度越大。
至此,得到每个线程任务在每个时刻的死锁程度。
步骤S003:对异常监测空间中的所有点进行聚类,获得大簇和小簇,获取异常监测空间中目标数据点,根据目标数据点与大簇和小簇之间距离,获得每个线程任务在每个时刻的初始离群因子,根据每个线程任务在每个时刻的死锁程度,对初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子。
需要说明的是,由于每个线程任务的处理器占用率和内存占用率之间的比例不同,使得在异常监测空间中每个线程任务的皮尔逊相关系数取值存在差异,因此对所有线程任务的皮尔逊相关系数进行聚类,通过聚类后的类簇进行分析。
具体地,将异常监测空间中所有线程任务的皮尔逊相关系数通过k-means聚类算法进行聚类,获得若干个类簇;其中,类簇的个数通过手肘法获取。其中k-means聚类算法和手肘法都为公知技术,此处不再进行具体赘述。其中,每个线程任务的皮尔逊相关系数在异常监测空间中就是一个数据点。
预设一个阈值B,其中本实施例以B=0.9为例进行叙述,本实施例不进行具体限定,其中B可根据具体实施情况而定。根据类簇中的数据点的个数对所有的类簇按照从大到小的顺序进行降序排序,得到类簇降序序列。从类簇降序序列的第一个类簇开始,计算第一个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,当所述比值小于预设阈值B时,则继续计算类簇降序序列中前两个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,当所述比值小于预设阈值B时,则继续计算类簇降序序列中前三个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,直至出现大于或者等于预设阈值B时,则停止,此时将停止之前的所有类簇组成一个大簇,将除了大簇之外的所有类簇组成一个小簇;获取大簇中的聚类中心,将其记为大簇中心点;获取小簇中的聚类中心,将其记为小簇中心点。
将任意一个时刻记为当前时刻,获取第个线程任务在当前时刻的对应的第/>个线程任务的处理器占用序列与内存占用序列,并根据第/>个线程任务的处理器占用序列与内存占用序列获得第/>个线程任务的皮尔逊相关系数,并将所述皮尔逊相关系数映射在异常监测空间中获得一个点,将所述点记为目标数据点。获取目标数据点到大簇中心点的距离和目标数据点到小簇中心点距离,将目标数据点与大簇中心点和小簇中心点之间的最小距离记为初始离群因子。
根据每个线程任务在每个时刻的死锁程度,对每个线程任务在每个时刻的初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子,用公式表示为:
式中,表示第/>个线程任务在第/>个时刻的初始离群因子,/>表示第/>个线程任务在第/>个时刻的死锁程度,/>表示第/>个线程任务在第/>个时刻的最终离群因子。
其中,当每个线程任务在每个时刻的死锁程度越大,则对每个线程任务在每个时刻的初始离群因子的修正程度越大,反之,则修正程度越小。
至此,得到每个线程任务在每个时刻的最终离群因子。
步骤S004:根据每个线程任务在每个时刻的最终离群因子进行线程的实时监控。
根据每个线程任务在每个时刻的最终离群因子对异常监测空间中的所有数据点,通过CBLOF算法进行异常检测,通过异常检测结果进行线程的实时监控。其中,CBLOF算法为公知技术,此处不再进行具体赘述。
本实施例提供了一种安全可控线程实时监控系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现步骤S001至步骤S004中的一种安全可控线程实时监控方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种安全可控线程实时监控方法,其特征在于,该方法包括以下步骤:
采集每个线程任务的连续若干个时刻的处理器占用率和内存占用率;
获取每个线程任务的处理器占用序列与内存占用序列,根据每个线程任务的处理器占用序列与内存占用序列中相邻数据之间的差异,获得每个线程任务在每个时刻的数据突变程度,根据每个线程任务在每个时刻的数据突变程度,获得每个线程任务的总时刻个数和稳定时刻个数,根据每个线程任务的总时刻个数和稳定时刻个数之间的差异,获得每个线程任务的死锁系数,根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,对每个线程任务的死锁系数和每个时刻的死锁系数进行融合得到每个线程任务在每个时刻的死锁程度;
根据每个线程任务的处理器占用序列与内存占用序列之间的相关系数构建异常监测空间,对异常监测空间中的所有点进行聚类,获得大簇和小簇,根据相关系数获得异常监测空间中的目标数据点,根据目标数据点与大簇和小簇之间距离,获得每个线程任务在每个时刻的初始离群因子,根据每个线程任务在每个时刻的死锁程度,对初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子;
根据每个线程任务在每个时刻的最终离群因子进行线程的实时监控。
2.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述获取每个线程任务的处理器占用序列与内存占用序列,根据每个线程任务的处理器占用序列与内存占用序列中相邻数据之间的差异,获得每个线程任务在每个时刻的数据突变程度,包括的具体步骤如下:
将每个线程任务的若干个时刻的处理器占用率按照时间的顺序组成每个线程任务的处理器占用序列,将每个线程任务的若干个时刻的内存占用率按照时间的顺序组成每个线程任务的内存占用序列;
每个线程任务在每个时刻的数据突变程度的计算公式为:
式中,表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的内存占用率,/>表示第/>个线程任务的第/>个时刻的内存占用率,/>表示第/>个线程任务在第/>个时刻的数据突变程度,/>表示每个时刻的之前的若干个时刻个数,表示以自然常数为底的指数函数,/>为绝对值符号。
3.根据权利要求2所述一种安全可控线程实时监控方法,其特征在于,所述根据每个线程任务在每个时刻的数据突变程度,获得每个线程任务的总时刻个数和稳定时刻个数,根据每个线程任务的总时刻个数和稳定时刻个数之间的差异,获得每个线程任务的死锁系数,包括的具体步骤如下:
将任意一个时刻记为当前时刻;
从当前时刻开始,依次对当前时刻之前的每个时刻的数据突变程度进行遍历,具体过程为:先对当前时刻之前的一个时刻的数据突变程度进行分析,当/>大于或者等于预设阈值A时,则再对/>进行分析,当/>大于或者等于预设阈值A时,则再对/>进行分析,当/>大于或者等于预设阈值A时,继续进行分析,直至第一个小于预设阈值A的时刻的数据突变程度出现,则就停止迭代,将停止迭代的时刻记为停止时刻;
将第个线程任务的停止时刻和当前时刻之间的所有时刻的个数记为第/>个线程任务的稳定时刻个数/>,其中,包括停止时刻和当前时刻;
将个线程任务的起始时刻和当前时刻之间的所有时刻的个数记为第/>个线程任务的总时刻个数/>,其中,包括线程任务的起始时刻和当前时刻;
将第个线程任务的稳定时刻个数/>与第/>个线程任务的总时刻个数/>的比值,作为第/>个线程任务的死锁系数。
4.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述根据相邻时刻的所有线程任务的处理器占用率的之间的差异,获取每个时刻的死锁系数,包括的计算公式如下:
式中,表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示第/>个线程任务的第/>个时刻的处理器占用率,/>表示以自然常数为底的指数函数,/>表示第/>个时刻的死锁系数,/>为绝对值符号,/>表示在每个时刻的所有线程任务的总数量。
5.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述对每个线程任务的死锁系数和每个时刻的死锁系数进行融合得到每个线程任务在每个时刻的死锁程度,包括的具体步骤如下:
将每个线程任务的死锁系数与每个时刻的死锁系数的乘积结果,作为每个线程任务在每个时刻的死锁程度。
6.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述根据每个线程任务的处理器占用序列与内存占用序列之间的相关系数构建异常监测空间,对异常监测空间中的所有点进行聚类,获得大簇和小簇,包括的具体步骤如下:
计算每个线程任务的处理器占用序列与内存占用序列之间的皮尔逊相关系数,以线程任务的序号为横轴,以皮尔逊相关系数为纵轴建立参考坐标系,将多线程系统中所有线程任务的皮尔逊相关系数映射在参考坐标系中,获得异常监测空间;
将异常监测空间中所有数据点通过k-means聚类算法进行聚类,获得若干个类簇;
根据类簇中的数据点的个数对所有的类簇按照从大到小的顺序进行降序排序,得到类簇降序序列;从类簇降序序列的第一个类簇开始,计算第一个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,当所述比值小于预设阈值B时,则继续计算类簇降序序列中前两个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,当所述比值小于预设阈值B时,则继续计算类簇降序序列中前三个类簇中数据点的个数与所有类簇中所有数据点的总个数之间的比值,直至出现大于或者等于预设阈值B时,则停止,此时将停止之前的所有类簇组成一个大簇,将除了大簇之外的所有类簇组成一个小簇。
7.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述根据相关系数获得异常监测空间中的目标数据点,根据目标数据点与大簇和小簇之间距离,获得每个线程任务在每个时刻的初始离群因子,包括的具体步骤如下:
获取大簇中的聚类中心,将其记为大簇中心点;获取小簇中的聚类中心,将其记为小簇中心点;
将任意一个时刻记为当前时刻,获取第个线程任务在当前时刻的对应的第/>个线程任务的处理器占用序列与内存占用序列,并根据第/>个线程任务的处理器占用序列与内存占用序列获得第/>个线程任务的皮尔逊相关系数,并将所述皮尔逊相关系数映射在异常监测空间中获得一个点,记为目标数据点;
获取目标数据点到大簇中心点的距离和目标数据点到小簇中心点距离,将目标数据点与大簇中心点和小簇中心点之间的最小距离记为初始离群因子。
8.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述根据每个线程任务在每个时刻的死锁程度,对初始离群因子进行修正,获得每个线程任务在每个时刻的最终离群因子,包括的计算公式如下:
式中,表示第/>个线程任务在第/>个时刻的初始离群因子,/>表示第/>个线程任务在第/>个时刻的死锁程度,/>表示第/>个线程任务在第/>个时刻的最终离群因子。
9.根据权利要求1所述一种安全可控线程实时监控方法,其特征在于,所述根据每个线程任务在每个时刻的最终离群因子进行线程的实时监控,包括的具体步骤如下:
根据每个线程任务在每个时刻的最终离群因子对异常监测空间中的所有数据点,通过CBLOF算法进行异常检测,通过异常检测结果进行线程的实时监控。
10.一种安全可控线程实时监控系统,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-9任意一项所述一种安全可控线程实时监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410245063.7A CN117827596B (zh) | 2024-03-05 | 2024-03-05 | 一种安全可控线程实时监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410245063.7A CN117827596B (zh) | 2024-03-05 | 2024-03-05 | 一种安全可控线程实时监控方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117827596A true CN117827596A (zh) | 2024-04-05 |
CN117827596B CN117827596B (zh) | 2024-04-26 |
Family
ID=90504342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410245063.7A Active CN117827596B (zh) | 2024-03-05 | 2024-03-05 | 一种安全可控线程实时监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827596B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114984A (zh) * | 2006-07-27 | 2008-01-30 | 中兴通讯股份有限公司 | 一种多线程网络负载控制方法 |
CN105389243A (zh) * | 2015-10-26 | 2016-03-09 | 华为技术有限公司 | 一种容器监控方法和装置 |
CN110727556A (zh) * | 2019-09-21 | 2020-01-24 | 苏州浪潮智能科技有限公司 | 一种bmc健康状态监控方法、系统、终端及存储介质 |
CN112764829A (zh) * | 2021-01-12 | 2021-05-07 | 湖北宸威玺链信息技术有限公司 | 一种用于Linux系统的指标监控方法 |
CN114328073A (zh) * | 2020-10-10 | 2022-04-12 | 深圳市腾讯计算机系统有限公司 | 线程监控方法、装置、设备及存储介质 |
CN115934471A (zh) * | 2022-12-15 | 2023-04-07 | 深圳市联合欣业科技有限公司 | 基于大数据的数据采集方法及大数据系统 |
CN117149482A (zh) * | 2023-08-10 | 2023-12-01 | 深圳市科陆电子科技股份有限公司 | 一种对线程状态进行检测的方法和装置、电子设备、介质 |
CN117632454A (zh) * | 2022-08-15 | 2024-03-01 | 北京车和家信息技术有限公司 | Linux操作系统资源监控方法、装置、存储介质和电子设备 |
-
2024
- 2024-03-05 CN CN202410245063.7A patent/CN117827596B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114984A (zh) * | 2006-07-27 | 2008-01-30 | 中兴通讯股份有限公司 | 一种多线程网络负载控制方法 |
CN105389243A (zh) * | 2015-10-26 | 2016-03-09 | 华为技术有限公司 | 一种容器监控方法和装置 |
CN110727556A (zh) * | 2019-09-21 | 2020-01-24 | 苏州浪潮智能科技有限公司 | 一种bmc健康状态监控方法、系统、终端及存储介质 |
CN114328073A (zh) * | 2020-10-10 | 2022-04-12 | 深圳市腾讯计算机系统有限公司 | 线程监控方法、装置、设备及存储介质 |
CN112764829A (zh) * | 2021-01-12 | 2021-05-07 | 湖北宸威玺链信息技术有限公司 | 一种用于Linux系统的指标监控方法 |
CN117632454A (zh) * | 2022-08-15 | 2024-03-01 | 北京车和家信息技术有限公司 | Linux操作系统资源监控方法、装置、存储介质和电子设备 |
CN115934471A (zh) * | 2022-12-15 | 2023-04-07 | 深圳市联合欣业科技有限公司 | 基于大数据的数据采集方法及大数据系统 |
CN117149482A (zh) * | 2023-08-10 | 2023-12-01 | 深圳市科陆电子科技股份有限公司 | 一种对线程状态进行检测的方法和装置、电子设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117827596B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046048B (zh) | 一种基于工作量自适应快速重分配的负载均衡方法 | |
CN113515351A (zh) | 一种基于能耗与QoS协同优化的资源调度实现方法 | |
CN111294234A (zh) | 一种基于智能合约优化模型的并行区块链分片方法 | |
CN111427686B (zh) | 一种处理器多线程并发方法 | |
CN110990121A (zh) | 一种基于应用画像的Kubernetes调度策略 | |
CN117827596B (zh) | 一种安全可控线程实时监控方法及系统 | |
CN114064294B (zh) | 移动边缘计算环境下的动态资源分配方法和系统 | |
CN113535387A (zh) | 一种异构感知的gpu资源分配与调度方法及系统 | |
CN111258730A (zh) | 一种基于竞态条件的任务调度方法 | |
CN116244050B (zh) | 一种基于高响应比的气动特性算例调度方法 | |
CN116841753A (zh) | 一种流处理和批处理的切换方法及切换装置 | |
CN116643844A (zh) | 面向电力超算云资源自动扩展的智能化管理系统及方法 | |
CN111488209B (zh) | 一种启发式Storm节点任务调度优化方法 | |
CN111813512B (zh) | 一种基于动态分区的高能效Spark任务调度方法 | |
CN114860449A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114723043A (zh) | 基于超图模型谱聚类的卷积神经网络卷积核剪枝方法 | |
CN115794322A (zh) | 一种面向大型移动设备移动数据中心的任务调度方法 | |
CN113722100A (zh) | 基于趋势预测的云平台内存资源动态超分配方法及设备 | |
CN109358954B (zh) | 一种基于MaxSAT最优解的过载实时系统可抢占式调度方法 | |
US9152451B2 (en) | Method of distributing processor loading between real-time processor threads | |
CN102663141B (zh) | 一种基于多核并行的多路量化分级聚类方法 | |
CN108228532B (zh) | 一种排队模型稳态机率计算方法 | |
Bhadana et al. | Fusion of K-means algorithm with Dunn's index for improved clustering | |
CN105512087B (zh) | 一种资源约束性多节点计算系统的可靠性评估方法 | |
CN116755848B (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 |