CN110489967A - 程序运行风险的分析方法及装置 - Google Patents

程序运行风险的分析方法及装置 Download PDF

Info

Publication number
CN110489967A
CN110489967A CN201810461878.3A CN201810461878A CN110489967A CN 110489967 A CN110489967 A CN 110489967A CN 201810461878 A CN201810461878 A CN 201810461878A CN 110489967 A CN110489967 A CN 110489967A
Authority
CN
China
Prior art keywords
program
data
operation data
described program
risk
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
CN201810461878.3A
Other languages
English (en)
Other versions
CN110489967B (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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201810461878.3A priority Critical patent/CN110489967B/zh
Publication of CN110489967A publication Critical patent/CN110489967A/zh
Application granted granted Critical
Publication of CN110489967B publication Critical patent/CN110489967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供的程序运行风险的分析方法及装置,获取程序的运行数据;根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;根据所述程序的异常运行数据,确定所述程序是否存在运行风险,从而能够在程序发生重大故障之前,及时发现程序运行过程中的潜在风险,使得运维人员可以及时针对程序存在的运行风险采取处理措施,避免程序发生重大故障,从而提高了程序运行过程的健壮性,保证了业务的正常运行。

Description

程序运行风险的分析方法及装置
技术领域
本发明涉及数据处理领域,更具体的说,涉及程序运行风险的分析方法及装置。
背景技术
随着计算机业务的不断增长,应用程序的种类越来越多,可能产生的程序问题也随之增长。电子业务的正常运行需要依赖于程序的正常运行,因此,提高程序运行的健壮性,是保证业务正常运行的关键。
目前通常在程序发生重大故障且影响到业务正常运行后,运维人员才会发现程序出现问题,并开始排查问题、解决问题,从而改善程序运行的健壮性,但是,在程序问题发生之后再去定位问题的难度较大,而且可能已经造成了不可挽回的损失。然而,目前并没有切实有效的技术方案能够及时发现程序运行过程中的潜在风险。
因此,目前迫切需要一种能够在程序发生重大故障且影响到业务正常运行之前,能够及时发现程序运行过程中的潜在风险的技术方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序运行风险的分析方法及装置
为实现上述目的,本发明提供如下技术方案:
一种程序运行风险的分析方法,包括:
获取程序的运行数据;
根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
优选的,在所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据之前,所述方法还包括:
获取所述程序的历史运行日志,以及,所述程序的关键运行指标;
根据所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据,确定所述程序的基准运行数据。
优选的,所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据包括:
将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值;
将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据。
优选的,所述程序包括服务器程序;所述根据所述程序的异常运行数据,确定所述程序是否存在运行风险包括:
根据所述服务器程序的异常运行数据,确定所述服务器程序的异常时段;
获取所述服务器程序在所述异常时段内对应的硬件资源占用信息;
根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险。
优选的,所述硬件资源占用信息包括:CPU使用状态、网络收发状态与磁盘读写状态;所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险包括:
根据所述CPU使用状态与预置的CPU基准使用状态,确定所述CPU使用状态是否正常;
当所述CPU使用状态不正常且为异常空闲状态时,确定所述网络收发状态与磁盘读写状态是否为繁忙状态;
当所述网络收发状态为繁忙状态时,确定所述服务器程序存在因网络收发性能受限导致的运行风险;
当所述磁盘读写状态为繁忙状态时,确定所述服务器程序存在因磁盘读写性能受限导致的运行风险。
优选的,在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,所述方法还包括:
提供针对所述网络收发性能的网络优化建议;
在所述确定所述服务器程序存在因磁盘读写性能受限导致的运行风险之后,所述方法还包括:
提供针对所述磁盘读写性能的磁盘优化建议。
优选的,在所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险之后,所述方法还包括:
在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,利用所述服务器程序的异常运行数据修正所述基准运行数据。
一种程序运行风险的分析装置,包括:
运行数据获取单元,用于获取程序的运行数据;
异常数据确定单元,用于根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
运行风险确定单元,用于根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行前述的程序运行风险的分析方法。
一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行前述的程序运行风险的分析方法。
借由上述技术方案,本发明先获取程序的运行数据,再根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据,然后根据所述程序的异常运行数据,确定所述程序是否存在运行风险,从而能够在程序发生重大故障之前,及时发现程序运行过程中的潜在风险,使得运维人员可以及时针对程序存在的运行风险采取处理措施,避免程序发生重大故障,从而提高了程序运行过程的健壮性,保证了业务的正常运行。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的程序运行风险的分析方法的一种流程图;
图2为本申请实施例提供的基准运行数据确定过程的流程图;
图3为本申请实施例提供的程序运行风险的分析方法的另一种流程图;
图4为本申请实施例提供的程序运行风险的分析方法的又一种流程图;
图5为本申请实施例提供的硬件资源占用信息的分析过程的流程图;
图6为本申请实施例提供的程序运行风险的分析处理过程的示例图;
图7为本申请实施例提供的程序运行风险的分析装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,图1为本申请实施例提供的程序运行风险的分析方法的一种流程图。
如图1所示,所述分析方法包括:
S101:获取程序的运行数据。
在程序运行过程中,会产生大量的运行数据,这些运行数据反映着程序的运行状态。运行数据的获取,可以是从程序的运行日志中获取,也可以是从系统内存中获取。
运行数据的获取方式,可以是实时获取,也可以是周期性获取。运行数据的获取范围可以包括预设时间范围内的运行数据,例如,最近一个小时内的运行数据、最近一天的运行数据、最近一星期的运行数据等。
程序的运行数据可以包括与程序中至少一项关键运行指标相对应的运行数据。其中,关键运行指标可以包括能够影响程序正常运行的指标,也可以包括用户关注和/或指定的指标,例如,程序运行的开始时间、结束时间、各阶段的耗时等。
S102:根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据。
其中,所述基准运行数据是反映程序正常运行过程中相关属性的数据,可以根据所述程序的历史运行日志中的正常运行数据确定出来的。
程序的历史运行日志中保存有大量的历史运行数据,这些历史运行数据中包括正常运行数据与异常运行数据。其中,正常运行数据反映了程序在正常运行状态下的相关特征。根据程序的历史运行日志中的正常运行数据,可以确定出与所述程序相匹配的基准运行数据。
一示例中,所述基准运行数据可以是根据所述程序的历史运行日志中的正常运行数据绘制出来的运行数据基线。
根据所述程序的运行数据与预置的基准运行数据,便能够确定出获取到的所述程序的运行数据中是否存在异常运行数据。
S103:根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
当所述程序的运行数据中存在异常运行数据时,表明程序已经出现问题
(可能已发生故障,也可能未发生故障),或者,程序目前未发生问题但后期可能会发生问题。所以,在确定出所述程序的异常运行数据后,可以直接确定所述程序存在运行风险,并指示运维人员及时采取处理措施。
在其他示例中,在确定出所述程序的异常运行数据后,也可以根据所述程序的异常运行数据,对程序相关其他指标信息进行逐步筛查、分析,从而进一步更加准确地确定出所述程序是否存在运行风险。
本实施例提供的程序运行风险的分析方法,先获取程序的运行数据,再根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据,然后根据所述程序的异常运行数据,确定所述程序是否存在运行风险,从而能够在程序发生重大故障之前,及时发现程序运行过程中的潜在风险,使得运维人员可以及时针对程序存在的运行风险采取处理措施,避免程序发生重大故障,从而提高了程序运行过程的健壮性,保证了业务的正常运行。
请参阅图2,图2为本申请实施例提供的基准运行数据确定过程的流程图。
本实施例提供的基准运行数据确定过程,可以在前述实施例中所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据的步骤之前执行。
如图2所示,所述基准运行数据确定过程包括:
S201:获取所述程序的历史运行日志,以及,所述程序的关键运行指标。
所述程序的历史运行日志中保存有与所述程序的关键运行指标相对应的历史运行数据。所述程序的历史运行日志可以是单独一种运行日志,也可以是从不同角度反映程序运行情况的多种类型的运行日志。
S202:根据所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据,确定所述程序的基准运行数据。
在另外一示例中,所述程序的基准运行数据为所述程序的日常基准运行数据。具体地,所述日常基准运行数据为,所述程序的历史运行日志中与所述程序的关键运行指标相对应的每日的正常运行数据的平均数据。
本实施例提供的基准运行数据确定过程,从程序的历史运行日志中,挖掘具有利用价值的正常运行数据来确定基准运行数据,充分有效地利用程序的历史运行日志挖掘了程序的正常运行状态下的固有特征,不仅为程序的异常运行数据的确定提供了真实有效的参考依据,而且还充分提高了程序运行日志的利用价值。
请参阅图3,图3为本申请实施例提供的程序运行风险的分析方法的另一种流程图。
如图3所示,程序运行风险的分析方法包括:
S301:获取程序的运行数据。
S302:将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值。
其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的。
所述程序的运行数据与预置的基准运行数据之间的偏差值,可以是所述程序的运行数据与预置的基准运行数据之间的差值,也可以是所述差值与与预置的基准运行数据之间的比值。除此之外,也可以采用其他计算方式来得到所述程序的运行数据与预置的基准运行数据之间的偏差值。
S303:将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据。
所述预设偏差阈值用于表征程序的运行数据的正常波动范围,超出所述正常波动范围的运行数据为异常运行数据。所述预设偏差阈值可以是由运维人员根据历史经验设定的。
S304:根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
本实施例提供的程序运行风险的分析方法,先获取程序的运行数据,再将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值,然后将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据,也就是说,本实施例允许所述程序的运行数据相对于基准运行数据存在一定的数据偏差,以避免异常运行数据的确定标准过于严苛而将正常运行数据错误确定为异常运行数据;最后,根据所述程序的异常运行数据,确定所述程序是否存在运行风险,从而能够在程序发生重大故障之前,及时发现程序运行过程中的潜在风险,并降低了异常运行数据的误判风险。
请参阅图4,图4为本申请实施例提供的程序运行风险的分析方法的又一种流程图。
本实施例中,所述程序包括服务器程序。
如图4所示,程序运行风险的分析方法包括:
S401:获取服务器程序的运行数据。
S402:根据所述服务器程序的运行数据与预置的基准运行数据,确定所述服务器程序的异常运行数据。
其中,所述基准运行数据是根据所述服务器程序的历史运行日志中的正常运行数据确定出来的。
其中,步骤S401-S402与前述实施例中的步骤S101-S102相类似,具体可参见前述实施例,在此不再赘述。
S403:根据所述服务器程序的异常运行数据,确定所述服务器程序的异常时段。
在获取程序的运行数据时,还可以记录各运行数据的产生时间。例如,程序的运行日志中记录有各运行数据的产生时间,可以直接从程序的运行日志中获取异常运行数据的产生时间,进而确定出程序的异常时段。
例如,服务器程序在每天的运行过程的开始时间、结束时间与各阶段耗时等运行数据通常是都是固定的,当服务器程序在当天的运行过程的开始时间与结束时间为异常运行数据时,根据服务器程序在当天的运行过程的开始时间与结束时间,以及基准运行数据中服务器程序的开始时间与结束时间,便可以确定出服务器程序的异常时段。
S404:获取所述服务器程序在所述异常时段内对应的硬件资源占用信息。
在确定出程序的异常时段后,就可以针对所述程序在异常时段的其他相关指标信息展开进一步分析,以确定异常根源。其中,对于服务器程序来说,可以获取所述服务器程序在所述异常时段内对应的硬件资源占用信息(如硬件资源图),并针对硬件资源占用信息来进一步分析运行风险。
S405:根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险。
根据所述硬件资源占用信息,就可以看出服务器程序在异常时段所占用的各硬件资源中,哪些硬件资源的占用情况存在异常,从而进一步确定出所述服务器程序是否存在运行风险。
一示例中,在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,表明所述服务器程序的异常运行数据并非真正的异常运行数据,实际上仍然为正常运行数据,由此可以利用所述服务器程序的异常运行数据修正所述基准运行数据,以提高基准运行数据的准确性。
另一示例中,当根据所述硬件资源占用信息确定出所述服务器程序存在运行风险时,可以针对存在异常的硬件资源提供相应的处理建议,以供运维人员参考。
本实施例提供的程序运行风险的分析方法,在确定出所述服务器程序的异常运行数据后,确定所述服务器程序的异常时段,并获取所述服务器程序在所述异常时段内对应的硬件资源占用信息,来进一步确定所述服务器程序是否存在运行风险,从而提高了程序运行风险的分析过程的全面性,提高了程序运行风险的分析结果的准确性;并且,在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,利用所述服务器程序的异常运行数据修正所述基准运行数据,以提高基准运行数据的准确性,从而进一步提高了程序运行风险的分析结果的准确性。
本实施例仅以服务器程序为例对本发明的程序运行风险的分析方法进行了介绍,在其他实施例中,所述程序还可以包括客户端程序、数据库程序等其他各种类型的程序。
请参阅图5,图5为本申请实施例提供的硬件资源占用信息的分析过程的流程图。
本实施例提供的硬件资源占用信息的分析过程,可用于实现前述实施例中所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险的步骤。
本实施例中,所述服务器程序在所述异常时段内对应的硬件资源占用信息至少包括:CPU使用状态、网络收发状态与磁盘读写状态。
如图5所示,所述硬件资源占用信息的分析过程包括:
S501:根据所述CPU使用状态与预置的CPU基准使用状态,确定所述CPU使用状态是否正常。
预置的CPU基准使用状态是根据所述CPU的历史使用状态的数据信息确定出来的。其中,CPU使用状态可以包括CPU使用率,也可以包括CPU峰值持续时间,CPU空闲时长等其他指标信息。
一示例中,若所述CPU使用状态与预置的CPU基准使用状态之间的偏差符合预设状态偏差条件,则确定所述CPU使用状态正常;否则,确定所述CPU使用状态不正常。其中,当CPU使用状态不正常时,CPU使用状态可包括异常繁忙状态与异常空闲状态。
当采用CPU使用率来衡量CPU的使用状态时,可以通过基准使用率表征CPU的正常工作状态,其中,CPU在不同时段可以具有不同的基准使用率。在一个时段内,当CPU使用率持续一定时长超过该时段的基准使用率,则认为CPU的使用状态为异常繁忙状态;相反,在另一个时段内,当CPU使用率持续一定时长低于该时段的基准使用率,则认为CPU的使用状态为异常空闲状态。
例如,在CPU基准使用率为50%~70%的时段,若CPU使用率持续为10%达到特定时长时,表明所述CPU使用状态不正常且为异常空闲状态。
S502:当所述CPU使用状态不正常且为异常空闲状态时,确定所述网络收发状态与磁盘读写状态是否为繁忙状态。
当所述CPU使用状态不正常且为异常空闲状态时,并不一定是CPU出现了问题,也可能是由于网络收发较为繁忙和/或磁盘收发较为繁忙造成的,当然还可能是由于其他原因造成的。本实施例以分析网络收发状态与磁盘收发状态为例,针对所述网络收发状态与磁盘收发状态是否为繁忙状态进行确定。
其中,网络收发状态是否为繁忙状态可取决于网卡的吞吐量。例如,当网卡的吞吐量持续超过预设吞吐量阈值(如网卡可支持的最大吞吐量的70%、80%或其他值)时,可以确定所述网络收发状态为繁忙状态。
磁盘读写状态是否为繁忙状态可取决于磁盘的读写速度。例如,当磁盘的读写速度持续超过预设读写速度阈值(如磁盘标准读写速度的70%、80%或其他值)时,可以确定所述磁盘读写状态为繁忙状态。
S503:当所述网络收发状态为繁忙状态时,确定所述服务器程序存在因网络收发性能受限导致的运行风险。
一示例中,在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,所述方法还可以包括:提供针对所述网络收发性能的网络优化建议,如调整网络拓扑结构、优化网络IO等,解决网络收发性能受限的问题,消除所述服务器程序因网络收发性能受限导致的运行风险。
S504:当所述磁盘读写状态为繁忙状态时,确定所述服务器程序存在因磁盘读写性能受限导致的运行风险。
一示例中,在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,所述方法还可以包括:提供针对所述磁盘读写性能的磁盘优化建议,例如,提醒更换经常出现异常的磁盘、选择读写速度更快的固定硬盘等,解决磁盘读写性能受限的问题,消除所述服务器程序因磁盘读写性能受限导致的运行风险。
在其他示例中,所述服务器程序在所述异常时段内对应的硬件资源占用信息还可以包括内存使用状态(如内存使用率)等其他指标信息。相应的,当内存使用率持续在90%以上时,也可以提供针对内存性能受限的内存优化建议,如在规定范围内对内存进行扩充。
一示例中,除了可以针对CPU使用状态,预置相应的CPU基准使用状态之外,还可以针对其他硬件资源占用信息,预置相应的硬件资源基准占用信息,来单独分析各硬件资源占用情况是否正常。例如,针对网络收发状态(如网卡吞吐量),预置相应的网络基准收发状态(如网卡基准吞吐量);针对磁盘读写状态(如磁盘读写速度),预置相应的磁盘基准读写状态(如磁盘基准读写速度);针对内存使用状态(如内存使用率),预置相应的内存基准使用状态(如内存基准使用率)。
需要说明的是,上述步骤S503和步骤S504的执行顺序不限于上述顺序,既可以先执行步骤S503后,再执行步骤S504,也可以先执行步骤S504后,再执行步骤S503,当然还可以同时执行两个步骤,得出具体的运行风险点所在。
本实施例提供的硬件资源占用信息的分析过程,在获取到所述服务器程序在所述异常时段内对应的硬件资源占用信息后,先确定所述CPU使用状态是否正常,并在所述CPU使用状态不正常且为异常空闲状态时,根据所述网络收发状态与磁盘读写状态,确定所述服务器程序是否存在运行风险以及存在怎样的运行风险,深入挖掘了服务器程序的异常运行数据产生的根源,提高了服务器程序运行风险的分析力度;并且,针对异常运行数据产生的根源,提供相应优化建议,在程序问题出现的萌芽阶段就及时予以处理,极大地提高了程序运行的健壮性。
本实施例是以CPU使用状态为切入点,结合网络收发状态与磁盘读写状态来分析服务器程序是否存在运行风险;在其他实施例中,还可以CPU使用状态之外的硬件资源占用信息为切入点,结合其他相关的硬件资源占用信息来分析服务器程序是否存在运行风险,在此不作赘述。
请参阅图6,图6为本申请实施例提供的程序运行风险的分析处理过程的示例图。
如图6所示,程序运行风险的分析处理过程包括:
S601:获取程序日志。
获取程序日志主要是用于获取所述程序的历史运行日志,以及所述历史运行日志中涵盖的所述程序的关键运行指标。
S602:确定基准运行数据
通过对所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据进行分析、汇总,确定出所述程序的基准运行数据。
S603:将运行数据与基准运行数据进行比对。
通过将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值。
S604:判断偏差值是否超过预设偏差阈值,若是,执行步骤S605;若否,执行步骤S611。
S605:确定异常运行数据。
将偏差值超过预设偏差阈值的关键运行指标的运行数据确定为异常运行数据。
S606:获取硬件资源图。
根据异常运行数据可以确定出服务器程序的异常时段,然后获取所述服务器程序在所述异常时段内对应的硬件资源图。所述硬件资源图表征了所述服务器程序在所述异常时段内硬件资源占用情况。
S607:分析异常根源。
分析服务器程序在异常时段内的其他各项指标的状态信息,如CPU使用率、网络IO状态、磁盘IO状态、内存使用率等,从中寻找异常根源。
S608:判断是否存在运行风险,若是,执行步骤S609;若否,执行步骤S610。
若发现了异常根源,则判定服务器程序存在运行风险,否则服务器程序不存在运行风险。
S609:修正基准运行数据。
在判断所述服务器程序不存在运行风险后,表明所述服务器程序的异常运行数据实际并非真正的异常数据,仍然是正常运行数据,可以利用所述异常运行数据修正所述基准运行数据,提高基准运行数据的准确性。
S610:提供处理建议。
当所述服务器程序存在运行风险时,可以针对存在异常根源向运维人员提出相应的处理建议。
S611:发送正常报告。
若偏差值未超过预设偏差阈值,则发送正常报告,以表示服务器程序不存在运行风险。
本实施例从整体上提供了一套较为全面的程序运行风险的分析处理过程,充分有效地利用程序的历史运行日志挖掘了程序的正常运行状态下的相关特征,为程序的异常运行数据的确定提供了真实有效的参考依据;并且,根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据,并结合服务器程序的硬件资源图深入分析异常根源,从而能够在程序发生重大故障之前,全面、及时、准确地发现程序运行过程中的潜在风险,并在服务器程序不存在运行风险时,利用异常运行数据修正所述基准运行数据,从而提高了基准运行数据的准确性;在服务器程序存在运行风险时,针对异常根源提供处理建议,进一步保证了服务器程序运行过程的健壮性。
本发明实施例还提供了程序运行风险的分析装置,所述程序运行风险的分析装置用于实现本发明实施例提供的程序运行风险的分析方法,下文描述的程序运行风险的分析装置内容,可与上文描述的程序运行风险的分析方法内容相互对应参照。
请参阅图7,图7为本申请实施例提供的程序运行风险的分析装置的一种结构示意图。
本实施例的程序运行风险的分析装置,用于实施前述实施例的程序运行风险的分析方法,如图7所示,所述分析装置包括:
运行数据获取单元100,用于获取程序的运行数据;
异常数据确定单元200,用于根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
运行风险确定单元300,用于根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
本实施例提供的程序运行风险的分析装置,先获取程序的运行数据,再根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据,然后根据所述程序的异常运行数据,确定所述程序是否存在运行风险,从而能够在程序发生重大故障之前,及时发现程序运行过程中的潜在风险,使得运维人员可以及时针对程序存在的运行风险采取处理措施,避免程序发生重大故障,从而提高了程序运行过程的健壮性,保证了业务的正常运行。
在其他实施例中,所述分析装置还可以包括:
历史日志获取单元,用于获取所述程序的历史运行日志,以及,所述程序的关键运行指标;
基准数据确定单元,用于根据所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据,确定所述程序的基准运行数据。
一示例中,所述异常数据确定单元200可具体用于:
将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值;
将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据。
一示例中,所述程序包括服务器程序;所述运行风险确定单元300可具体用于:
根据所述服务器程序的异常运行数据,确定所述服务器程序的异常时段;
获取所述服务器程序在所述异常时段内对应的硬件资源占用信息;
根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险。
一示例中,所述硬件资源占用信息包括:CPU使用状态、网络收发状态与磁盘读写状态;所述运行风险确定单元300根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险包括:
根据所述CPU使用状态与预置的CPU基准使用状态,确定所述CPU使用状态是否正常;
当所述CPU使用状态不正常且为异常空闲状态时,确定所述网络收发状态与磁盘读写状态是否为繁忙状态;
当所述网络收发状态为繁忙状态时,确定所述服务器程序存在因网络收发性能受限导致的运行风险;
当所述磁盘读写状态为繁忙状态时,确定所述服务器程序存在因磁盘读写性能受限导致的运行风险。
一示例中,所述分析装置还可以包括:处理建议提供单元;
所述处理建议提供单元,用于在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,提供针对所述网络收发性能的网络优化建议;在所述确定所述服务器程序存在因磁盘读写性能受限导致的运行风险之后,提供针对所述磁盘读写性能的磁盘优化建议。
一示例中,所述分析装置还可以包括:基准数据修正单元;
所述基准数据修正单元,用于在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,利用所述服务器程序的异常运行数据修正所述基准运行数据。
本实施例提供的程序运行风险的分析装置,在确定出所述服务器程序的异常运行数据后,确定所述服务器程序的异常时段,并获取所述服务器程序在所述异常时段内对应的硬件资源占用信息,来进一步确定所述服务器程序是否存在运行风险,从而提高了程序运行风险的分析过程的全面性,提高了程序运行风险的分析结果的准确性;并且,在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险时,利用所述服务器程序的异常运行数据修正所述基准运行数据,以提高基准运行数据的准确性,从而进一步提高了程序运行风险的分析结果的准确性。
本发明实施例提供的程序运行风险的分析装置,包括处理器和存储器,上述运行数据获取单元100、异常数据确定单元200、运行风险确定单元300、历史日志获取单元、基准数据确定单元、处理建议提供单元、基准数据修正单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决目前不能及时发现程序运行过程中的潜在风险的技术问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述程序运行风险的分析方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述程序运行风险的分析方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取程序的运行数据;
根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
优选的,在所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据之前,所述方法还包括:
获取所述程序的历史运行日志,以及,所述程序的关键运行指标;
根据所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据,确定所述程序的基准运行数据。
优选的,所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据包括:
将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值;
将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据。
优选的,所述程序包括服务器程序;所述根据所述程序的异常运行数据,确定所述程序是否存在运行风险包括:
根据所述服务器程序的异常运行数据,确定所述服务器程序的异常时段;
获取所述服务器程序在所述异常时段内对应的硬件资源占用信息;
根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险。
优选的,所述硬件资源占用信息包括:CPU使用状态、网络收发状态与磁盘读写状态;所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险包括:
根据所述CPU使用状态与预置的CPU基准使用状态,确定所述CPU使用状态是否正常;
当所述CPU使用状态不正常且为异常空闲状态时,确定所述网络收发状态与磁盘读写状态是否为繁忙状态;
当所述网络收发状态为繁忙状态时,确定所述服务器程序存在因网络收发性能受限导致的运行风险;
当所述磁盘读写状态为繁忙状态时,确定所述服务器程序存在因磁盘读写性能受限导致的运行风险。
优选的,在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,所述方法还包括:
提供针对所述网络收发性能的网络优化建议;
在所述确定所述服务器程序存在因磁盘读写性能受限导致的运行风险之后,所述方法还包括:
提供针对所述磁盘读写性能的磁盘优化建议。
优选的,在所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险之后,所述方法还包括:
在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,利用所述服务器程序的异常运行数据修正所述基准运行数据。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获取程序的运行数据;
根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
优选的,在所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据之前,所述方法还包括:
获取所述程序的历史运行日志,以及,所述程序的关键运行指标;
根据所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据,确定所述程序的基准运行数据。
优选的,所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据包括:
将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值;
将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据。
优选的,所述程序包括服务器程序;所述根据所述程序的异常运行数据,确定所述程序是否存在运行风险包括:
根据所述服务器程序的异常运行数据,确定所述服务器程序的异常时段;
获取所述服务器程序在所述异常时段内对应的硬件资源占用信息;
根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险。
优选的,所述硬件资源占用信息包括:CPU使用状态、网络收发状态与磁盘读写状态;所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险包括:
根据所述CPU使用状态与预置的CPU基准使用状态,确定所述CPU使用状态是否正常;
当所述CPU使用状态不正常且为异常空闲状态时,确定所述网络收发状态与磁盘读写状态是否为繁忙状态;
当所述网络收发状态为繁忙状态时,确定所述服务器程序存在因网络收发性能受限导致的运行风险;
当所述磁盘读写状态为繁忙状态时,确定所述服务器程序存在因磁盘读写性能受限导致的运行风险。
优选的,在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,所述方法还包括:
提供针对所述网络收发性能的网络优化建议;
在所述确定所述服务器程序存在因磁盘读写性能受限导致的运行风险之后,所述方法还包括:
提供针对所述磁盘读写性能的磁盘优化建议。
优选的,在所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险之后,所述方法还包括:
在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,利用所述服务器程序的异常运行数据修正所述基准运行数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种程序运行风险的分析方法,其特征在于,包括:
获取程序的运行数据;
根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
2.如权利要求1所述的分析方法,其特征在于,在所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据之前,所述方法还包括:
获取所述程序的历史运行日志,以及,所述程序的关键运行指标;
根据所述程序的历史运行日志中与所述程序的关键运行指标相对应的正常运行数据,确定所述程序的基准运行数据。
3.如权利要求1所述的分析方法,其特征在于,所述根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据包括:
将所述程序的运行数据与预置的基准运行数据进行比对,得到所述程序的运行数据与预置的基准运行数据之间的偏差值;
将所述程序的运行数据中所述偏差值大于预设偏差阈值的运行数据,确定为所述程序的异常运行数据。
4.如权利要求1所述的分析方法,其特征在于,所述程序包括服务器程序;所述根据所述程序的异常运行数据,确定所述程序是否存在运行风险包括:
根据所述服务器程序的异常运行数据,确定所述服务器程序的异常时段;
获取所述服务器程序在所述异常时段内对应的硬件资源占用信息;
根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险。
5.如权利要求4所述的分析方法,其特征在于,所述硬件资源占用信息包括:CPU使用状态、网络收发状态与磁盘读写状态;所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险包括:
根据所述CPU使用状态与预置的CPU基准使用状态,确定所述CPU使用状态是否正常;
当所述CPU使用状态不正常且为异常空闲状态时,确定所述网络收发状态与磁盘读写状态是否为繁忙状态;
当所述网络收发状态为繁忙状态时,确定所述服务器程序存在因网络收发性能受限导致的运行风险;
当所述磁盘读写状态为繁忙状态时,确定所述服务器程序存在因磁盘读写性能受限导致的运行风险。
6.如权利要求5所述的分析方法,其特征在于,在所述确定所述服务器程序存在因网络收发性能受限导致的运行风险之后,所述方法还包括:
提供针对所述网络收发性能的网络优化建议;
在所述确定所述服务器程序存在因磁盘读写性能受限导致的运行风险之后,所述方法还包括:
提供针对所述磁盘读写性能的磁盘优化建议。
7.如权利要求4所述的分析方法,其特征在于,在所述根据所述硬件资源占用信息,确定所述服务器程序是否存在运行风险之后,所述方法还包括:
在根据所述硬件资源占用信息确定出所述服务器程序不存在运行风险后,利用所述服务器程序的异常运行数据修正所述基准运行数据。
8.一种程序运行风险的分析装置,其特征在于,包括:
运行数据获取单元,用于获取程序的运行数据;
异常数据确定单元,用于根据所述程序的运行数据与预置的基准运行数据,确定所述程序的异常运行数据;其中,所述基准运行数据是根据所述程序的历史运行日志中的正常运行数据确定出来的;
运行风险确定单元,用于根据所述程序的异常运行数据,确定所述程序是否存在运行风险。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-7中任一项所述的程序运行风险的分析方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-7中任一项所述的程序运行风险的分析方法。
CN201810461878.3A 2018-05-15 2018-05-15 程序运行风险的分析方法及装置 Active CN110489967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810461878.3A CN110489967B (zh) 2018-05-15 2018-05-15 程序运行风险的分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810461878.3A CN110489967B (zh) 2018-05-15 2018-05-15 程序运行风险的分析方法及装置

Publications (2)

Publication Number Publication Date
CN110489967A true CN110489967A (zh) 2019-11-22
CN110489967B CN110489967B (zh) 2021-07-27

Family

ID=68545238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810461878.3A Active CN110489967B (zh) 2018-05-15 2018-05-15 程序运行风险的分析方法及装置

Country Status (1)

Country Link
CN (1) CN110489967B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103441906A (zh) * 2013-09-25 2013-12-11 哈尔滨工业大学 基于自主计算的代理缓存集群异常检测系统
CN105610647A (zh) * 2015-12-30 2016-05-25 华为技术有限公司 一种探测业务异常的方法和服务器
US20170075800A1 (en) * 2014-04-08 2017-03-16 Iyuntian Co., Ltd. Method, apparatus, and device for locating a software failure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103441906A (zh) * 2013-09-25 2013-12-11 哈尔滨工业大学 基于自主计算的代理缓存集群异常检测系统
US20170075800A1 (en) * 2014-04-08 2017-03-16 Iyuntian Co., Ltd. Method, apparatus, and device for locating a software failure
CN105610647A (zh) * 2015-12-30 2016-05-25 华为技术有限公司 一种探测业务异常的方法和服务器

Also Published As

Publication number Publication date
CN110489967B (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN105989155B (zh) 识别风险行为的方法及装置
US8260622B2 (en) Compliant-based service level objectives
US10659312B2 (en) Network anomaly detection
US10642611B2 (en) Agile estimation
CN103827826A (zh) 自适应地确定事务型工作负荷的响应时间分布
US20160054951A1 (en) Apparatus and method for optimizing time series data storage
US20150066813A1 (en) Outage window scheduler tool
US10771359B2 (en) System capacity heatmap
CN108134812A (zh) 数据处理方法和装置
CN115543577A (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
US10359936B2 (en) Selecting a primary storage device
CN101356502B (zh) 利用自适应资源分配的自主系统管理方法及系统
CN109726068A (zh) 一种数据检测方法及装置
CN107346342A (zh) 一种基于存储计算的文件调用方法与系统
CN110532156A (zh) 一种容量预测方法及装置
CN108874200B (zh) 书写速度的控制方法和装置
US20180129963A1 (en) Apparatus and method of behavior forecasting in a computer infrastructure
CN110489967A (zh) 程序运行风险的分析方法及装置
CN110019196A (zh) 数据处理方法及装置
CN110069379A (zh) 监控指标的筛选方法及筛选装置
US11703835B2 (en) Methods, systems and data structures for optimizing parameter data retrieval from devices in a control system
US20140143532A1 (en) Data processing system
CN107566187B (zh) 一种sla违例监测方法、装置和系统
CN114331688A (zh) 一种银行柜面系统业务批量运行状态检测方法及装置
CN117745239B (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