CN117331793B - 一种自动值守的进程监控方法与系统 - Google Patents
一种自动值守的进程监控方法与系统 Download PDFInfo
- Publication number
- CN117331793B CN117331793B CN202311589673.0A CN202311589673A CN117331793B CN 117331793 B CN117331793 B CN 117331793B CN 202311589673 A CN202311589673 A CN 202311589673A CN 117331793 B CN117331793 B CN 117331793B
- Authority
- CN
- China
- Prior art keywords
- target process
- target
- decision
- attribute value
- sql
- 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
- 238000000034 method Methods 0.000 title claims abstract description 185
- 230000008569 process Effects 0.000 title claims abstract description 147
- 238000012544 monitoring process Methods 0.000 title claims abstract description 35
- 238000012163 sequencing technique Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000003066 decision tree Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000013386 optimize process Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Abstract
本发明提出一种自动值守的进程监控方法与系统,该方法包括:获取当前目标数据库服务器的CPU使用率,当所述CPU使用率大于等于预设的阈值时,生成触发信号;响应于所述触发信号,采集所述CPU中正在运行的目标进程的基础数据;基于所述基础数据,确定所述目标进程的属性值,并设置每个所述属性值的权重;将所述目标进程的属性值和权重输入预训练的决策模型,得到决策值;按照所述决策值从大到小的顺序,将所述目标进程进行排序;基于所述排序,逐个结束所述目标进程,直至所述目标数据库服务器的CPU使用率小于所述阈值。本发明能够避免将即将完成的进程和优先级比较高的进程错误地结束,可以最大程度上保障用户体验。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种自动值守的进程监控方法及系统。
背景技术
随着业务的不断发展,承载业务系统的数据库服务器压力会越来越大。每台数据库服务器有着自己承载能力的上限,一旦超过既定的承载能力,会导致数据库崩溃,大面积的业务不可用,甚至会导致整个系统宕机。现有技术普遍是通过监控系统监控数据库服务器的CPU使用率,当CPU使用率超过既定阈值时,触发执行脚本直接结束掉耗费CPU的前N个进程。但是现有技术在结束进程时,并未对进程进行分析,而是直接筛选前N个进程。这种方式可能会将即将执行完毕的进程结束掉,也可能将一些重要进程结束掉,进而导致部分重要的业务(登陆、转账、下单等)不可用,影响用户体验。
发明内容
发明目的:本发明旨在克服当前进程结束方案对于待结束的进程选择不合理的技术问题,提出一种自动值守的进程监控方法及系统。
发明内容:为实现上述目的,本发明提出以下技术方案:
根据第一方面,本发明提出一种自动值守的进程监控方法,包括步骤:
(1)获取当前目标数据库服务器的CPU使用率,当所述CPU使用率大于等于预设的阈值时,生成触发信号;
(2)响应于所述触发信号,采集所述CPU中正在运行的目标进程的基础数据;
(3)基于所述基础数据,确定所述目标进程的属性值,并设置每个所述属性值的权重;所述属性值包括所述目标进程的优先级、复杂度和执行完毕所需时间;
(4)将所述目标进程的属性值和权重输入预训练的决策模型,得到决策值;所述决策模型表示为:
其中,表示所述目标进程的属性值,/>表示决策条件/>下属性值/>对应的权重,/>表示条件判断符号,/>表示决策条件,/>表示判断/>是否满足决策条件/>;
(5)按照所述决策值从大到小的顺序,将所述目标进程进行排序;
(6)基于所述排序,逐个结束所述目标进程,直至所述目标数据库服务器的CPU使用率小于所述阈值。
在第一方面所述方法的一种或多种可选实施方式中,所述基础数据包括所述目标进程的基础信息、开始运行时间、已运行时间、历史平均执行时间、耗费的CPU、耗费的内存。
在第一方面所述方法的一种或多种可选实施方式中,所述目标进程的历史平均执行时间采用以下方式确定,具体包括:
统计预设时间段内所述目标进程的运行次数和总耗时,基于所述总耗时和所述运行次数,确定所述目标进程的历史平均执行时间。
在第一方面所述方法的一种或多种可选实施方式中,所述目标进程执行完毕所需时间采用以下方式确定:
基于所述目标进程的历史平均执行时间和所述目标进程的已运行时间,确定所述目标进程执行完毕所需时间。
在第一方面所述方法的一种或多种可选实施方式中,所述目标进程的基础信息包括:查询表的大小、查询中使用的列数、WHERE条件的复杂性、JOIN操作的复杂性、GROUP BY和聚合函数的使用情况、排序操作的使用情况及子查询的使用情况。
在第一方面所述方法的一种或多种可选实施方式中,所述目标进程的复杂度是基于所述目标进程的基础信息和预设的不同维度的评价指标确定的。
在第一方面所述方法的一种或多种可选实施方式中,所述目标进程的属性值的权重是采用以下方式确定的,具体包括:
将所述目标进程的属性值与预设的权重评价指标进行比对,基于比对结果,确定所述属性值的权重。
在第一方面所述方法的一种或多种可选实施方式中,所述决策条件是基于所述目标进程的属性值确定的。
根据第二方面,本发明提出一种自动值守的进程监控系统,该系统用于实现所述的自动值守的进程监控方法,该系统包括:
数据监控系统,用于监控所述目标数据库服务器的CPU使用率,当所述CPU使用率大于等于预设的阈值时,生成触发信号;
数据采集系统,用于响应于所述触发信号,采集所述CPU中正在运行的目标进程的基础数据;
数据统计系统,用于基于所述基础数据,确定所述目标进程的属性值,并设置每个所述属性值的权重;所述属性值包括所述目标进程的优先级、复杂度和执行完毕所需时间;
数据排序系统,用于将所述目标进程的属性值和权重输入预训练的决策模型,得到决策值;所述决策模型表示为:
其中,表示目标进程的属性值,/>表示决策条件/>下属性值/>对应的权重,表示条件判断符号,/>表示分支条件,/>表示判断/>是否满足决策条件/>,若满足,则/>,否则,/>;
数据执行系统,用于按照所述决策值从大到小的顺序,将所述目标进程进行排序;以及,基于所述排序,逐个结束所述目标进程,直至所述目标数据库服务器的CPU使用率小于所述阈值。
在第二方面所述系统的一种或多种可选实施方式中,所述数据执行系统还用于基于目标数据库的类型,选取预先构建的与所述目标数据库匹配的执行程序,基于所述排序,逐个结束所述目标进程。
有益效果:与现有技术相比,本发明具有以下优势:
本发明通过将进程的优先级、复杂度和执行完毕所需时间输入决策模型,计算出决策值,通过设计决策模型的决策条件,可以充分考虑进程的优先级、复杂度和执行完毕所需时间,避免将即将完成的进程和优先级比较高的进程结束掉,从而可以最大程度上保障用户体验。
附图说明
图1为实施例涉及的自动值守的进程监控方法的流程示意图;
图2为实施例涉及的自动值守的进程监控系统的结构示意图;
图3为实施例涉及的自动值守的进程监控系统的工作流程示意图;
图4为实施例涉及的决策模型的结构图。
具体实施方式
下面将结合附图和具体实施例对本发明作更进一步的说明。但应当理解的是,本发明可以以各种形式实施,以下在附图中出示并且在下文中描述的一些示例性和非限制性实施例,并不意图将本发明限制于所说明的具体实施例。
应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外的实施例。此外,本发明所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤、顺序做出相应修改而不脱离本发明的保护范围。
随着业务的不断发展,承载业务系统的数据库服务器压力会越来越大。但每台数据库服务器有着自己承载能力的上限,一旦超过既定的承载能力,会导致数据库崩溃,大面积的业务不可用,甚至会导致整个系统宕机。现有技术普遍是通过监控系统监控数据库服务器的CPU使用率(监控系统通过采集服务器CPU、内存等信息计算CPU使用率),当CPU使用率超过既定阈值时,触发执行脚本的作用就是直接结束掉耗费CPU的前N个进程。但是技术在kill进程时,并未对执行的SQL运行的时长、复杂度、优先级进行分析,而是直接筛选前N个进程。
上述方案有以下缺陷:
1:没有对SQL已执行的时间进行判断,部分SQL可能已经快结束了却被错误地结束掉。
2:没有对SQL的优先级进行判断,部分SQL优先级高(登陆、支付、下单等),直接结束掉之后会直接影响用户体验(导致登录失败、支付失败、下单失败等)。
3:没有对SQL的复杂度进行判断,导致部分复杂度高的SQL没有及时被结束掉,实效性不高。
4:只能针对本公司使用的数据库操作,适用性范围比较单一,不能广泛适用于市面上常见的数据库(MYSQL、ORACLE、POSTGRESQL、DB2等)。
基于现有技术的上述缺陷,本发明在原有系统的基础上,针对SQL进程的筛选开发了一套自动值守的进程监控方法及系统,能够至少部分地克服上述技术缺陷。
请参考图1,本实施例提出一种自动值守的进程监控方法,其流程包括以下步骤:
S101、获取当前目标数据库服务器的CPU使用率,当CPU使用率大于等于预设的阈值时,生成触发信号。
S102、响应于触发信号,采集CPU中正在运行的目标进程(下文简称为SQL)的基础数据。
S103、基于基础数据,确定目标进程的属性值,并设置每个属性值的权重;属性值包括目标进程的优先级、复杂度和执行完毕所需时间。
S104、将目标进程的属性值和权重输入预训练的决策模型,得到决策值。
S105、按照决策值从大到小的顺序,将目标进程进行排序。
S106、基于排序结果,逐个结束目标进程,直至目标数据库服务器的CPU使用率小于预设的阈值。
由上述技术方案内容可知,该方法可以根据进程的基础数据计算出进程的属性值(优先级、复杂度和执行完毕所需时间)并设计不同属性的权重,然后通过一个预训练的决策模型对属性值和权重数据进行决策,从而可以根据决策值生成一个优化后的排序,根据这个排序来逐个结束进程,可以降低误结束进程和错结束进程的风险,更加精准高效的结束掉耗费CPU的SQL进程。
下面对图1所示的自动值守的进程监控方法进行详细介绍。
首先对于步骤S101,获取当前目标数据库服务器的CPU使用率,当CPU使用率大于等于预设的阈值时,生成触发信号。
目标数据库服务器本地的监控系统会采集服务器CPU、内存等信息,从而可以计算出CPU的使用率,当CPU的使用率达到一个预设的阈值,比如90%时,监控系统会进行告警,同时发出触发信号,启动进程结束流程。
接着对于步骤S102,响应于触发信号,采集CPU中正在运行的目标进程的基础数据。
在本地监控系统监控到CPU使用率满足告警阈值后,会触发采集系统采集对应数据库服务器的SQL进程信息。在获取数据库连接后,再获取SQL的基础数据,主要包括执行的SQL本身的基础信息、SQL开始运行时间、SQL已运行时间、SQL耗费的CPU、SQL耗费的内存等信息。采集系统定时对上述基础数据进行采集,例如每隔1s采集一次SQL进程信息,持续采集,直到监控系统监控到CPU使用率不再满足告警条件为止。
具体来说,SQL的基础数据主要包括SQL的基础信息、开始运行时间、已运行时间、历史平均执行时间、耗费的CPU、耗费的内存等。其中,每一个SQL的历史平均执行时间可以通过以下方式计算得到:统计预设时间段内该SQL的运行次数和总耗时,基于总耗时和运行次数,确定该SQL的历史平均执行时间。
在一些更具体的实施方式中,历史平均执行时间在初始化时,会预设一个固定值,比如0.5s。当系统运行后每天固定时间点,比如在凌晨12点,会统计该SQL在一天内出现的次数、总耗时,然后计算并更新该SQL最新的历史平均执行时间,保证该历史平均执行时间的准确性。
对于步骤S103,基于基础数据,确定目标进程的属性值,并设置每个属性值的权重;属性值包括目标进程的优先级、复杂度和执行完毕所需时间。
在本实施例中采用的进程选择策略为:选择复杂度更高、执行完毕所需时间更久、优先级更低的进程来结束掉,而保留优先级高、复杂度低和即将执行完毕的进程,从而实现尽量保障用户体验的前提下,提高系统运行的效率。
为实现该策略,本实施例在属性值方面考虑了SQL的优先级、复杂度和执行完毕所需时间。
SQL的优先级是预先设计好的,不同进程的优先级可以根据数据库的应用场景进行自适应设置,比如,登陆系统、支付系统、订单系统SQL的优先级是要优先于查询系统、报表系统SQL的优先级的。所以在其他因素都相同的情况下,优先把查询系统、报表系统的SQL给结束掉也不结束登陆、支付、订单系统的SQL。基于上述优先级的设计原理,可以将用户体验更敏感的进程和在系统功能上更重要的进程的优先级设置的更高,这样在进行决策时,可以尽可能地使这些优先级高的进程的决策值尽量低。
SQL的复杂度跟SQL的基础信息有关,基础信息包括:查询表的大小、查询中使用的列数、WHERE条件的复杂性、JOIN操作的复杂性、GROUP BY和聚合函数的使用情况、排序操作的使用情况及子查询的使用情况等。为便于理解,下面对各基础信息与复杂度的关系进行解释:
(1)表的大小:查询的表越大,需要的时间和资源就越多,相应的,复杂度就越高。
(2)查询中使用的列数:查询选择的列越多,需要的时间和资源就越多,相应的,复杂度就越高。
(3)WHERE条件的复杂性:使用多个WHERE条件、多个表关联、嵌套子查询、正则表达式等复杂条件,会增加查询的复杂度。
(4)JOIN操作的复杂性:JOIN操作会涉及多个表,连接表的数量和连接条件的复杂度都会增加查询的复杂度。
(5)GROUP BY和聚合函数:使用GROUP BY进行分组和聚合函数(如COUNT、SUM、AVG等)会对查询结果进行计算和汇总,需要额外的计算资源,因此这类函数使用的越多,复杂度就会越高。
(6)排序操作:ORDER BY语句需要对查询结果进行排序,消耗较多的时间和资源,特别是在大数据量情况下,会增加复杂度。
(7)子查询:嵌套子查询、相关子查询等复杂子查询会增加查询的复杂度,特别是在嵌套层数较多或返回结果集较大的情况下。
因此,在对SQL的复杂度进行计算时,可以根据SQL的不同情况设计不同维度的指标,来量化上述各基础信息,最终可以通过将各个指标项的量化结果进行加权求和的方式得到SQL的复杂度。应理解,本申请不限定对SQL的复杂度进行量化的方式。
SQL执行完毕所需时间可以采用以下方式确定:
基于该SQL的历史平均执行时间、已运行时间和/或开始运行的时间,确定该SQL执行完毕所需时间。
在确认SQL的属性值之后,可以根据属性值来为不同的SQL分配权重。具体可以采用以下方法:
第一步,可以通过SQL所属系统进行分类,比如登陆系统为A1,订单系统为A2,报表系统为A3等。
第二步,可以通过SQL语句的类型进行分类,比如select、update、delete分别设置为类型B1、B2、B3,这样每个SQL的类型就被设定成”A1-B1”、“A2-B2”、“A3-B3”等类型。
第三步,每一类SQL在预设时间段内运行的总时间,除以运行该类SQL的总条数,就可以计算出该类SQL的历史平均执行时间。例入:登陆系统 select * from xxx where id= xxx 这个类型就是A1-B1, 订单系统:update xxx set xxx=123 where id = xxxx这个类型就是B1-B2, 报表系统: delete from xxx where id = xxx 这个类型就是A3-B3。
第四步,可以根据系统的类型、平均运行时间和复杂度来设计权重。例如:登陆系统查询SQL、历史平均执行时间小于0.1s、复杂度低于2.0的权重为1;查询系统查询SQL、历史平均运行时间小于0.1s、复杂度低于2.0的权重为2;订单系统查询SQL、历史平均运行时间小于0.1s、复杂度低于2.0的权重为3;订单系统更新SQL update、历史平均运行时间小于0.1s、复杂度低于2.0的权重为4。
总的来说,SQL不同属性值的权重可以根据具体需求进行自适应设置。应理解,本申请不限定SQL的不同属性值的权重设置方式。
对于步骤S104,将目标进程的属性值和权重输入预训练的决策模型,得到决策值。
具体来说,该决策模型的表达式示为:
其中,表示目标进程的属性值,/>表示决策条件/>下属性值/>对应的权重,/>表示条件判断符号,/>表示分支条件,/>表示判断/>是否满足决策条件/>,若满足,则/>,否则,/>。
请参考图4,图4示意性地给出了上述决策模型的一种结构图,如图4所示,该决策模型为一个决策树模型。该决策模型具有多个决策分支,每个决策节点的输入数据都是SQL的属性值,比如复杂度、优先级、执行完毕所需时间、CPU消耗等。前一级的决策节点根据输入的属性值决定下一跳节点,最后一级节点的输出为属性值对应的权重。
以图4所示的决策树模型为例,首先从输入决策模型的属性值当中筛选出SQL消耗的CPU大小的属性值,若SQL消耗的CPU大小很小,例如小于一个预设的第一阈值,则该SQL的属性值不满足决策1,则不再跳转其他决策节点,直接将该SQL的决策值设置为0。若SQL消耗的CPU大小较大,例如大于上述第一阈值,则表示该SQL在消耗的CPU大小方面满足决策1,此时进行下一步决策。由于决策2至决策4是同一级的,因此,该SQL的不同属性值需要分别经由决策2、决策3和决策4进行决策。决策2是基于该SQL的执行完毕所需时间进行决策的,即若该SQL的行完毕所需时间满足决策2的决策条件,就可以得到一个权重A,若不满足,则该属性值的权重为0,执行完毕所需时间越多,权重A越大。决策3是基于该SQL的优先级进行决策的,即若该SQL的优先级满足决策3的决策条件,就可以得到一个权重B,若不满足,则该属性值的权重为0,优先级越高,权重B越小。决策4是基于该SQL的复杂度进行决策的,即若该SQL的复杂度满足决策4的决策条件,则可以得到一个权重C,若不满足,则该属性值的权重为0,该SQL的复杂度越高,权重C越大。最后,通过决策模型的表达式,计算得到不同属性值对应的权重的和,即可得到决策值。
上述决策模型可以采用深度决策算法模型训练得到,训练时,可采用以下方式:
S201、获取样本数据,样本数据可以为不同场景下的SQL的属性数据;
S202、通过设置不同的分支条件b(x),将样本数据分割为若干子集Dc,并为Dc中的样本数据设置原始权重标签;
S203、在Dc上进行基于对应分支条件b(x)的分类训练,分类结果就是权重;
S204、基于分类得到权重和子集Dc中各样本的原始权重标签,确定损失函数;
S205、基于该损失函数,更新深度决策算法模型的网络参数;
S206、重复步骤S203至S205,直至深度决策算法模型满足预设的收敛条件。
对于步骤S105,按照决策值从大到小的顺序,将目标进程进行排序。
通过步骤S104,已经可以得到数据库CPU进程表中的SQL的决策值,以决策值从大到小的属性,对各SQL重新进行排序,排在前面的表示建议先结束该SQL。
对于步骤S106,基于排序结果,逐个结束目标进程,直至目标数据库服务器的CPU使用率小于预设的阈值。
每结束一个SQL,需要重新采集一次当前目标数据库服务器的CPU使用率。若CPU使用率仍然大于等于预设的阈值,则按照步骤S105确定的顺序,继续结束下一个SQL。若CPU使用率小于预设的阈值,则结束本次进程优化过程,直到CPU的使用率再次达到预警条件。
为实现上述自动值守的进程监控方法,本实施例还提供了一种自动值守的进程监控系统,该系统的结构如图2所示,包括:
数据监控系统,用于监控所述目标数据库服务器的CPU使用率,当所述CPU使用率大于等于预设的阈值时,生成触发信号;
数据采集系统,用于响应于所述触发信号,采集所述CPU中正在运行的目标进程的基础数据;
数据统计系统,用于基于所述基础数据,确定所述目标进程的属性值,并设置每个所述属性值的权重;所述属性值包括所述目标进程的优先级、复杂度和执行完毕所需时间;
数据排序系统,用于将所述目标进程的属性值和权重输入预训练的决策模型,得到决策值;所述决策模型表示为:
其中,表示目标进程的属性值,/>表示决策条件/>下属性值/>对应的权重,/>表示条件判断符号,/>表示分支条件,/>表示判断/>是否满足决策条件/>,若满足,则/>,否则,/>;
数据执行系统,用于按照所述决策值从大到小的顺序,将所述目标进程进行排序;以及,基于所述排序,逐个结束所述目标进程,直至所述目标数据库服务器的CPU使用率小于所述阈值。
该系统的工作流程如图3所示,包括以下步骤:
S301、在本地数据监控系统满足告警阈值后,会触发数据采集系统采集对应数据库服务器的SQL进程信息。通过代码获取数据库连接后,代码再获取SQL进程的其他信息,主要包括执行的SQL本身的基础信息、SQL开始运行时间、SQL已运行时间、SQL耗费的CPU、SQL耗费的内存等信息。采集系统可以每隔1s采集一次SQL进程信息,持续采集,直到数据监控系统的告警条件不再满足为止。
S302、数据统计系统对数据采集系统实时传递过来的数据进行统计分析,通过代码计算出同一类型SQL的平均运行时间、SQL的优先级、SQL的复杂度等,并且对传递过来的基础数据进行落库处理。数据全部落库后,会对根据SQL不同的指标设定对应的权重,并且将带有权重的SQL信息传递给数据排序系统。
S303、数据排序系统对数据统计系统传递过来的数据,通过提前训练好的决策模型进行处理,然后依据决策值对SQL重新进行排序,并将排序后的进程信息传递给数据执行系统。
S304、数据执行系统对数据排序系统传过来的SQL进程按照顺序进行进程结束的操作,以达到降低数据库服务器CPU和负载的要求。
在上述自动值守的进程监控系统中,在该系统获取数据库连接后,加载数据库驱动程序需要下载相应的数据库驱动包,每个数据库都有其特定的驱动程序,当系统运行后,会根据提前配置好的数据库类型,并下载相应的驱动程序。
目前流行的数据库类型主要有MySql、PostgreSQL、Oracle等。在结束进程前,数据执行系统会获取到数据库的类型,选取预先构建的与该数据库匹配的执行程序,然后基于确定好的排序逐个结束进程。也就是说,最后数据执行系统会通过匹配对应的数据库类型执行对应的数据库进程结束语法,将优化后的进程结束掉。例如,MySql数据库结束进程的方式为 “KILL <进程ID>”、PostgreSQL数据库结束进程的方式为 “SELECT pg_terminate_backend(<进程ID>)”、Oracle数据库结束进程的方式为 “ALTER SYSTEM DISCONNECTSESSION '<SID>,<SERIAL#>' IMMEDIATE”。
采用上述自动值守的进程监控系统,至少具有以下技术效果:
1:降低误杀率。对SQL进行数据分析,通过优化算法计算出该SQL执行所需剩余耗时,对长时间执行但是即将要执行结束的SQL并不会强制结束。
2:提高系统稳定性。对SQL进行数据分析,通过优化算法计算出该SQL执行的优先级,对于重要SQL(登录、支付、下单等)予以保护机制,不会轻易强制结束。
3:提高系统健壮性。对SQL进行数据分析,通过优化算法计算出该SQL的复杂程度,对于复杂程度高且耗费资源优先强制结束。
4:提高了兼容性。对使用的数据库类型和版本定制化分析,通过数据库类型和版本匹配对应的执行脚本。大面积覆盖了市场常用的数据库类型和版本。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种自动值守的进程监控方法,其特征在于,包括步骤:
获取当前目标数据库服务器的CPU使用率,当所述CPU使用率大于等于预设的阈值时,生成触发信号;
响应于所述触发信号,采集所述CPU中正在运行的目标进程的基础数据;所述基础数据包括所述目标进程的基础信息、开始运行时间、已运行时间、历史平均执行时间、耗费的CPU、耗费的内存;所述目标进程的基础信息包括:查询表的大小、查询中使用的列数、WHERE条件的复杂性、JOIN操作的复杂性、GROUP BY和聚合函数的使用情况、排序操作的使用情况及子查询的使用情况;
基于所述基础数据,确定所述目标进程的属性值,并设置每个所述属性值的权重;所述属性值包括所述目标进程的优先级、复杂度和执行完毕所需时间;
将所述目标进程的属性值和权重输入预训练的决策模型,得到决策值;所述决策模型表示为:
其中,x表示所述目标进程的属性值,Gc(x)表示决策条件c下属性值x对应的权重,表示条件判断符号,b(x)表示决策条件,/>表示判断b(x)是否满足决策条件c;
按照所述决策值从大到小的顺序,将所述目标进程进行排序;
基于所述排序,逐个结束所述目标进程,直至所述目标数据库服务器的CPU使用率小于所述阈值。
2.根据权利要求1所述的方法,其特征在于,所述目标进程的历史平均执行时间采用以下方式确定,具体包括:
统计预设时间段内所述目标进程的运行次数和总耗时,基于所述总耗时和所述运行次数,确定所述目标进程的历史平均执行时间。
3.根据权利要求1所述的方法,所述目标进程执行完毕所需时间采用以下方式确定:
基于所述目标进程的历史平均执行时间和所述目标进程的已运行时间,确定所述目标进程执行完毕所需时间。
4.根据权利要求1所述的方法,其特征在于,所述目标进程的复杂度是基于所述目标进程的基础信息和预设的不同维度的评价指标确定的。
5.根据权利要求1所述的方法,其特征在于,所述目标进程的属性值的权重是采用以下方式确定的,具体包括:
将所述目标进程的属性值与预设的权重评价指标进行比对,基于比对结果,确定所述属性值的权重。
6.根据权利要求1所述的方法,其特征在于,所述决策条件是基于所述目标进程的属性值确定的。
7.一种自动值守的进程监控系统,用于实现所述权利要求1至6任一项所述的方法,其特征在于,包括:
数据监控系统,用于监控所述目标数据库服务器的CPU使用率,当所述CPU使用率大于等于预设的阈值时,生成触发信号;
数据采集系统,用于响应于所述触发信号,采集所述CPU中正在运行的目标进程的基础数据;所述基础数据包括所述目标进程的基础信息、开始运行时间、已运行时间、历史平均执行时间、耗费的CPU、耗费的内存;所述目标进程的基础信息包括:查询表的大小、查询中使用的列数、WHERE条件的复杂性、JOIN操作的复杂性、GROUP BY和聚合函数的使用情况、排序操作的使用情况及子查询的使用情况;
数据统计系统,用于基于所述基础数据,确定所述目标进程的属性值,并设置每个所述属性值的权重;所述属性值包括所述目标进程的优先级、复杂度和执行完毕所需时间;
数据排序系统,用于将所述目标进程的属性值和权重输入预训练的决策模型,得到决策值;所述决策模型表示为:
其中,x表示目标进程的属性值,Gc(x)表示决策条件c下属性值x对应的权重,表示条件判断符号,b(x)表示分支条件,/>表示判断b(x)是否满足决策条件c,若满足,则否则,/>
数据执行系统,用于按照所述决策值从大到小的顺序,将所述目标进程进行排序;以及,基于所述排序,逐个结束所述目标进程,直至所述目标数据库服务器的CPU使用率小于所述阈值。
8.根据权利要求7所述的系统,其特征在于,所述数据执行系统还用于基于目标数据库的类型,选取预先构建的与所述目标数据库匹配的执行程序,基于所述排序,逐个结束所述目标进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311589673.0A CN117331793B (zh) | 2023-11-27 | 2023-11-27 | 一种自动值守的进程监控方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311589673.0A CN117331793B (zh) | 2023-11-27 | 2023-11-27 | 一种自动值守的进程监控方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117331793A CN117331793A (zh) | 2024-01-02 |
CN117331793B true CN117331793B (zh) | 2024-02-23 |
Family
ID=89277705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311589673.0A Active CN117331793B (zh) | 2023-11-27 | 2023-11-27 | 一种自动值守的进程监控方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331793B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323111A (zh) * | 2015-11-17 | 2016-02-10 | 南京南瑞集团公司 | 一种运维自动化系统及方法 |
CN111209131A (zh) * | 2019-12-30 | 2020-05-29 | 航天信息股份有限公司广州航天软件分公司 | 一种基于机器学习确定异构系统的故障的方法和系统 |
KR102176028B1 (ko) * | 2020-08-24 | 2020-11-09 | (주)에오스와이텍 | 실시간 통합 모니터링 시스템 및 그 방법 |
CN112052088A (zh) * | 2020-08-31 | 2020-12-08 | 北京升鑫网络科技有限公司 | 自适应的进程cpu资源限制方法、装置、终端及存储介质 |
WO2022111265A1 (zh) * | 2020-11-25 | 2022-06-02 | 深圳前海微众银行股份有限公司 | 一种信息告警方法、设备及存储介质 |
CN114996079A (zh) * | 2022-04-24 | 2022-09-02 | 平安普惠企业管理有限公司 | 运维监控方法、装置、计算机设备及计算机可读存储介质 |
-
2023
- 2023-11-27 CN CN202311589673.0A patent/CN117331793B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323111A (zh) * | 2015-11-17 | 2016-02-10 | 南京南瑞集团公司 | 一种运维自动化系统及方法 |
CN111209131A (zh) * | 2019-12-30 | 2020-05-29 | 航天信息股份有限公司广州航天软件分公司 | 一种基于机器学习确定异构系统的故障的方法和系统 |
KR102176028B1 (ko) * | 2020-08-24 | 2020-11-09 | (주)에오스와이텍 | 실시간 통합 모니터링 시스템 및 그 방법 |
CN112052088A (zh) * | 2020-08-31 | 2020-12-08 | 北京升鑫网络科技有限公司 | 自适应的进程cpu资源限制方法、装置、终端及存储介质 |
WO2022111265A1 (zh) * | 2020-11-25 | 2022-06-02 | 深圳前海微众银行股份有限公司 | 一种信息告警方法、设备及存储介质 |
CN114996079A (zh) * | 2022-04-24 | 2022-09-02 | 平安普惠企业管理有限公司 | 运维监控方法、装置、计算机设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117331793A (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134659B (zh) | 运行程序的日志监控系统、方法、介质及设备 | |
US10061678B2 (en) | Automated validation of database index creation | |
CN111176953B (zh) | 一种异常检测及其模型训练方法、计算机设备和存储介质 | |
CN110727690B (zh) | 一种数据更新方法 | |
CN110322143B (zh) | 模型实体化管理方法、装置、设备及计算机存储介质 | |
CN115442242A (zh) | 一种基于重要性排序的工作流编排系统及其方法 | |
CN112579603A (zh) | 基于cdc的数据模型动态信息感知监测方法及装置 | |
CN114647790A (zh) | 应用于行为意图分析的大数据挖掘方法及云端ai服务系统 | |
CN117331793B (zh) | 一种自动值守的进程监控方法与系统 | |
CN110795614A (zh) | 一种索引自动优化方法及装置 | |
CN111090401B (zh) | 存储设备性能预测方法及装置 | |
CN112860736A (zh) | 大数据查询优化方法、设备及可读存储介质 | |
CN113569162A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110099061B (zh) | 一种云平台视频流服务选择方法及装置 | |
CN104077361A (zh) | 一种用于大数据的排序方法及系统 | |
CN116860789A (zh) | 一种数据分布优化方法及分布式数据库系统 | |
CN111124791A (zh) | 一种系统测试方法及装置 | |
CN111930476A (zh) | 一种任务调度方法、装置及电子设备 | |
CN113886393A (zh) | 数据处理方法、装置、存储介质和电子装置 | |
CN115660730A (zh) | 基于分类算法的流失用户分析方法及系统 | |
CN113448747A (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN113010310A (zh) | 作业数据的处理方法、装置和服务器 | |
CN117439995B (zh) | 信息发布方法、装置、设备及存储介质 | |
CN115686583B (zh) | 海量物联网设备升级方法、装置、电子设备和存储介质 | |
CN115563167B (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 |