一种进程处理方法、装置、系统及存储介质
技术领域
本发明涉及系统管理技术领域,尤其涉及一种进程处理方法、装置、系统及存储介质。
背景技术
目前,服务器系统(server system)通常来讲是指安装在服务器上的操作系统,比如安装在Web服务器、应用服务器和数据库服务器等上的操作系统,是企业IT系统的基础架构平台,也是按应用领域划分的3类操作系统之一。
传统服务器上应用程序经常出现死机、卡顿、崩溃问题,目前业界通用的解决方案是让运维人员检查服务器运行状态,然后根据经验找出有问题的进程,然后用系统命令杀死掉进程,严重的问题则需要卸载并重装服务或者重装系统。
发明内容
为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种进程处理方法、装置、系统及存储介质。
第一方面,本发明实施例提供了一种进程处理方法,所述处理方法包括:
获取进程的运行参数;
根据所述运行参数,基于预先训练得到的进程状态识别模型,得到所述运行参数对应的运行状态;
根据所述运行状态对应的修复程序对所述进程进行处理。
基于上述技术方案,本发明实施例还可以做出如下改进。
结合第一方面,在第一方面的第一种实施例中,所述处理方法还包括:
获取所述进程的运行状态识别错误的错误数量;
根据所述错误数量和所有已识别的所述进程的数量,得到错误率;
若所述错误率大于或等于预设错误率阈值,则获取运行状态识别错误的所述进程的运行参数和正确的真实运行状态,并通过运行状态识别错误的所述进程的运行参数和正确的真实运行状态对所述进程状态识别模型进行调参;
若所述错误率小于预设错误率阈值,则不作处理。
结合第一方面的第一种实施例,在第一方面的第二种实施例中,所述通过运行状态识别错误的所述进程的运行参数和正确的真实运行状态对所述进程状态识别模型进行调参,包括:
获取所述进程状态识别模型的主要影响参数;
确定所述主要影响参数的参数调整范围;
将所述运行状态识别错误的所述进程的运行参数和正确的真实运行状态作为样本集;
将所述样本集加入训练所述进程状态识别模型的训练样本集中;
通过所述训练样本集和所述参数调整范围对所述进程状态识别模型中的所述主要影响参数进行训练,得到调参后的进程状态识别模型。
结合第一方面的第二种实施例,在第一方面的第三种实施例中,所述获取所述进程状态识别模型的主要影响参数,包括:
根据特征选取方法、决策树最大深度、再划分最小样本数和叶子节点所需最少样本数中的至少两项确定所述进程状态识别模型的主要影响参数。
结合第一方面,在第一方面的第四种实施例中,所述获取进程的运行参数,包括:
通过流式处理框架获取进程运行日志;
根据所述进程运行日志得到所述进程的运行参数。
结合第一方面或第一方面的第一、第二、第三或第四种实施例,在第一方面的第五种实施例中,所述进程状态识别模型的训练过程,包括:
建立进程状态识别模型;
获取历史系统日志;
根据所述历史系统日志得到多组训练样本集,所述训练样本集包括:样本运行参数和样本运行状态;
将所述样本运行参数分别输入所述进程状态识别模型,分别得到预测运行状态;
获取所述预测运行状态与所述样本运行状态相匹配的数量在所有所述预测运行状态的数量的占比值;
若所述占比值符合预设占比值范围,则所述进程状态识别模型收敛,得到训练完成的状态识别模型;
若所述占比值不符合预设占比值范围,则调整所述进程状态识别模型的参数,通过调整后的所述进程状态识别模型重新识别所述样本运行参数,得到预测运行状态,直至所述占比值符合预设占比值范围。
结合第一方面的第五种实施例,在第一方面的第六种实施例中,所述样本运行参数包括:用户名、进程命令名、进程id、进程父id、进程优先级、进程运行时间、进程运行目录、进程执行绝对路径、进程启动命令、进程环境变量、平均负载、CPU状态、内存状态、IO读写状态和缓存状态中的至少两种。
第二方面,本发明实施例提供了一种进程处理装置,所述处理装置包括:
获取单元,用于获取进程的运行参数;
识别单元,用于根据所述运行参数,基于预先训练得到的进程状态识别模型,得到所述运行参数对应的运行状态;
处理单元,用于根据所述运行状态对应的修复程序对所述进程进行处理。
第三方面,本发明实施例提供了一种进程处理系统,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面中任一所述的进程处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中任一所述的进程处理方法。
本发明的上述技术方案与现有技术相比具有如下优点:本发明实施例通过预先训练的进程状态识别模型对进程的运行参数进行识别,得到运行参数对应的运行状态,以实现对进程的自动监控,并对出现问题的进程进行处理,以保证系统的良好运行,本方案实现了自动应急处理,能够自动检测并修复系统中应用进程发生的常见问题。
附图说明
图1是本发明实施例提供的一种进程处理方法流程示意图;
图2是本发明另一实施例提供的一种进程处理方法流程示意图;
图3是本发明又一实施例提供的一种进程处理方法流程示意图其一;
图4是本发明又一实施例提供的一种进程处理方法流程示意图其二;
图5是本发明又一实施例提供的一种数据管理装置结构示意图;
图6是本发明又一实施例提供的一种数据管理系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种进程处理方法。参照图1,所述处理方法包括如下步骤:
S11、获取进程的运行参数。
在本实施例中,实时监控操作系统进程运行时日志并将日志经过一般大数据方法进行采集、整理、存储,这里采用STORM流式处理框架增加数据处理的实时性,输出运行参数,其中,采集、整理和存储的处理方法可以通过现有的逻辑算法进行处理,本方案中不再赘述。
在本实施例中,通过流式处理框架获取进程运行日志;根据所述进程运行日志得到所述进程的运行参数。
S12、根据所述运行参数,基于预先训练得到的进程状态识别模型,得到所述运行参数对应的运行状态。
在本实施例中,将运行参数作为进程状态识别模型的入参,输入到进程状态识别模型分析出当前进程运行状态,可以根据运行状态对进程标注标记,以方便系统对进程进行处理,比如,进程标注为stern,常见表面现象为内存占用过高,应用程序卡死,可以通过将该进程终止以解决该进程的问题,修复程序可以是stern-kill;进程标注为overthread,常见表面现象为大量相同进程,程序运行不正常,可以通过固定其中之一的进程,修复程序可以是thread-fix;进程标注overcpu,常见表面现象为进程CPU占用过高,导致程序无法正常服务或崩溃。
S13、根据所述运行状态对应的修复程序对所述进程进行处理。
在本实施例中,根据不同的运行状态调用相关的修复程序对相应的进程继续处理,具体的,可以根据进程的标注查找进程位置,而后对相应进程进行处理,以解决进程出现的问题。
如图2所示,本发明实施例提供了一种进程处理方法。参照图2,所述处理方法包括如下步骤:
S21、获取进程的运行参数。
有关步骤S21,详细可参见步骤S11中的描述,本实施例在此不再赘述。
S22、根据所述运行参数,基于预先训练得到的进程状态识别模型,得到所述运行参数对应的运行状态。
有关步骤S22,详细可参见步骤S12中的描述,本实施例在此不再赘述。
S23、根据所述运行状态对应的修复程序对所述进程进行处理。
有关步骤S23,详细可参见步骤S13中的描述,本实施例在此不再赘述。
S24、获取所述进程的运行状态识别错误的错误数。
在本实施例中,因为本方案重点是自动分析并检测应用程序运行问题,所以采用的评价指标是解决问题的准确度,也就是是否分析出正确的运行状态,其中判断进行的运行状态是否识别错误可以通过进程的问题在调用修复程序进行处理后是否解决来得到,比如,在调用修复程序进行处理后,进程的问题并未解决,可以说明进程的运行状态识别错误。
S25、根据所述错误数量和所有已识别的所述进程的数量,得到错误率。
在本实施例中,由于运行状态识别模型的识别精度与训练样本的数量相关,训练样本的数量越多,训练得到的运行状态识别模型的精度就越高,所以,运行状态识别模型在对各个进程进行运行状态识别时会存在识别错误的情况,但是,精度越高的模型不仅对数据要求较高,其训练所耗费的时长也会越长,所以,在保证模型的识别精度的前提下,适当提高识别效率也是很有必要的,这就导致运行状态识别模型会存在一定的识别错误的情况,根据识别错误的数量和所有已识别的进程的数量,即可得到该模型的识别错误率,当错误率较高时,需要及时对模型进行调整,避免模型无法及时纠正错误,反而导致占用内存。
S26a、若所述错误率大于或等于预设错误率阈值,则获取运行状态识别错误的所述进程的运行参数和正确的真实运行状态,并通过运行状态识别错误的所述进的运行参数和正确的真实运行状态对所述进程状态识别模型进行调参。
S26b、若所述错误率小于预设错误率阈值,则不作处理。
在本实施例中,若模型的识别错误率较高,则通过该模型识别错误的进程的运行参数和正确的运行状态对该运行状态识别模型进行调整,使得调参后的运行状态识别模型适应识别错误的进程,以提高后续对同类型的进程的识别的正确率。
如图3所示,在本实施例中,步骤S26a中,所述通过运行状态识别错误的所述进程的运行参数和正确的真实运行状态对所述进程状态识别模型进行调参,包括如下步骤:
S31、获取所述进程状态识别模型的主要影响参数。
在本实施例中,一个进程状态识别模型主要的影响参数为特征选取方法(criterion)、决策树最大深度(MAX_DEPTH)、再划分最小样本数(MIN_SAMPLES_SPLIT)、叶子节点所需最少样本数(min_SPLIT_LEAF),所以我们选取这几个参数做为调参指标。
S32、确定所述主要影响参数的参数调整范围。
在本实施例中,由于主要影响参数均具备相应的特性或者或性质,所以,相应的主要影响参数具有相应的参数调整范围,以避免参数调整超过限制,举例说明,特征选取方法做为调参参数,参数调整范围是GINI和ENTROPY,将决策树最大深度做为调参参数,参数调整范围是30到100,粒度为10,而通过限制参数的调整范围,也可以提高运行状态识别模型的训练效率。
S33、将所述运行状态识别错误的所述进程的运行参数和正确的真实运行状态作为样本集。
S34、将所述样本集加入训练所述进程状态识别模型的训练样本集中。
在本实施例中,通过将识别错误的进程的参数作为样本集并加入到训练样本集中,使得训练样本集中存在模型无法准确识别的进程,再通过训练样本集训练模型,可以使得模型对各个类型的进程的识别准确率得到有效提高。
S35、通过所述训练样本集和所述参数调整范围对所述进程状态识别模型中的所述主要影响参数进行训练,得到调参后的进程状态识别模型。
在本实施例中,训练得到调参后的进程状态识别模型,可以通过训练完成后的进程状态识别模型对与之前识别错误的进程相类似的进程进行识别,以确定进程是否可以准确识别某种类型的进程。
如图4所示,本发明实施例提供了一种进程处理方法。参照图4,所述进程状态识别模型的训练过程,包括如下步骤:
S41、建立进程状态识别模型。
在本实施例中,可以根据一些常用的模型算法,例如ID3算法,ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。通过ID3算法来生成决策树来作为进程状态识别模型。
S42、获取历史系统日志。
S43、根据所述历史系统日志得到多组训练样本集,所述训练样本集包括:样本运行参数和样本运行状态。
在本实施例中,因为自动构易拟合的,所以本方案从历史系统日志提取出训练集,过程包括数据解析、清洗、存储,其中,数据解析、清洗、存储可以通过现有技术中的算法实现,本方案对此不再赘述。
其中,样本运行参数包括:用户名、进程命令名、进程id、进程父id、进程优先级、进程运行时间、进程运行目录、进程执行绝对路径、进程启动命令、进程环境变量、平均负载、CPU状态、内存状态、IO读写状态、缓存状态等参数。
S44、将所述样本运行参数分别输入所述进程状态识别模型,分别得到预测运行状态。
在本实施例中,根据进程状态识别模型,每个样本运行参数均可以得到一个对应的预测运行状态。
S45、获取所述预测运行状态与所述样本运行状态相匹配的数量在所有所述预测运行状态的数量的占比值。
在本实施例中,通过准确的样本运行状态对预测运行装填进行比对,以确定模型对样本运行参数识别准确的数量,即相匹配的数量,并根据匹配的数量和所有预测运行状态的数量,得到所述占比值,即该进程状态识别模型的识别准确率,识别的准确率越高,最终得到的模型的识别效率越高。
S46a、若所述占比值符合预设占比值范围,则所述进程状态识别模型收敛,得到训练完成的状态识别模型。
S46b、若所述占比值不符合预设占比值范围,则调整所述进程状态识别模型的参数,通过调整后的所述进程状态识别模型重新识别所述样本运行参数,得到预测运行状态,直至所述占比值符合预设占比值范围。
在本实施例中,当占比值符合预设占比值范围,则说明进程状态识别模型的识别准确率到达预设要求,预设占比值范围可以是百分之98至百分之100,若占比值不符合预设占比值范围,则调整进程状态识别模型的参数,使得进程状态识别模型的识别结果符合预设条件。
如图5所示,本发明实施例提供了一种进程处理装置。参照图5,所述处理装置包括:获取单元11、识别单元12和处理单元13。
在本实施例中,所述获取单元11,用于获取进程的运行参数。
在本实施例中,所述识别单元12,用于根据所述运行参数,基于预先训练得到的进程状态识别模型,得到所述运行参数对应的运行状态。
在本实施例中,所述处理单元13,用于根据所述运行状态对应的修复程序对所述进程进行处理。
在本实施例中,所述处理系统还包括:第一获取单元、第一处理单元、第二处理单元。
在本实施例中,所述第一获取单元,用于获取所述进程的运行状态识别错误的错误数量;
在本实施例中,所述第一处理单元,用于根据所述错误数量和所有已识别的所述进程的数量,得到错误率;
在本实施例中,所述第二处理单元,用于若所述错误率大于或等于预设错误率阈值,则获取运行状态识别错误的所述进程的运行参数和正确的真实运行状态,并通过运行状态识别错误的所述进程的运行参数和正确的真实运行状态对所述进程状态识别模型进行调参;若所述错误率小于预设错误率阈值,则不作处理。
在本实施例中,所述第二处理单元,具体用于获取所述进程状态识别模型的主要影响参数;确定所述主要影响参数的参数调整范围;将所述运行状态识别错误的所述进程的运行参数和正确的真实运行状态作为样本集;将所述样本集加入训练所述进程状态识别模型的训练样本集中;通过所述训练样本集和所述参数调整范围对所述进程状态识别模型中的所述主要影响参数进行训练,得到调参后的进程状态识别模型。
在本实施例中,所述第二处理单元,具体用于根据特征选取方法、决策树最大深度、再划分最小样本数和叶子节点所需最少样本数中的至少两项确定所述进程状态识别模型的主要影响参数。
在本实施例中,所述获取单元,具体用于通过流式处理框架获取进程运行日志;根据所述进程运行日志得到所述进程的运行参数。
在本实施例中,所述处理系统还包括:训练单元。
在本实施例中,所述训练单元用于建立进程状态识别模型;获取历史系统日志;根据所述历史系统日志得到多组训练样本集,所述训练样本集包括:样本运行参数和样本运行状态;将所述样本运行参数分别输入所述进程状态识别模型,分别得到预测运行状态;获取所述预测运行状态与所述样本运行状态相匹配的数量在所有所述预测运行状态的数量的占比值;若所述占比值符合预设占比值范围,则所述进程状态识别模型收敛,得到训练完成的状态识别模型;若所述占比值不符合预设占比值范围,则调整所述进程状态识别模型的参数,通过调整后的所述进程状态识别模型重新识别所述样本运行参数,得到预测运行状态,直至所述占比值符合预设占比值范围。
如图6所示,本发明实施例提供了一种进程处理系统,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
存储器1130,用于存放计算机程序;
处理器1110,用于执行存储器1130上所存放的程序时,实现如下所述的进程处理方法:
获取进程的运行参数;
根据所述运行参数,基于预先训练得到的进程状态识别模型,得到所述运行参数对应的运行状态;
根据所述运行状态对应的修复程序对所述进程进行处理。
本发明实施例提供的电子设备,处理器1110通过执行存储器1130上所存放的程序实现了通过预先训练的进程状态识别模型对进程的运行参数进行识别,得到运行参数对应的运行状态,以实现对进程的自动监控,并对出现问题的进程进行处理,以保证系统的良好运行,本方案实现了自动应急处理,能够自动检测并修复系统中应用进程发生的常见问题。
上述电子设备提到的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一实施例所述的进程处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidStateDisk(SSD))等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。