CN109992468B - 一种进程性能分析方法、装置、系统及计算机存储介质 - Google Patents

一种进程性能分析方法、装置、系统及计算机存储介质 Download PDF

Info

Publication number
CN109992468B
CN109992468B CN201711482883.4A CN201711482883A CN109992468B CN 109992468 B CN109992468 B CN 109992468B CN 201711482883 A CN201711482883 A CN 201711482883A CN 109992468 B CN109992468 B CN 109992468B
Authority
CN
China
Prior art keywords
performance data
performance
period
variation
parent
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
Application number
CN201711482883.4A
Other languages
English (en)
Other versions
CN109992468A (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.)
China Mobile Communications Group Co Ltd
China Mobile Group Heilongjiang Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Heilongjiang 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 China Mobile Communications Group Co Ltd, China Mobile Group Heilongjiang Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201711482883.4A priority Critical patent/CN109992468B/zh
Publication of CN109992468A publication Critical patent/CN109992468A/zh
Application granted granted Critical
Publication of CN109992468B publication Critical patent/CN109992468B/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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种进程性能分析方法,包括:根据设置的时间间隔在设置时段内采集进程性能数据;根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。同时,本发明实施例还公开了一种进程性能分析装置、系统及计算机存储介质。

Description

一种进程性能分析方法、装置、系统及计算机存储介质
技术领域
本发明涉及进程性能监控领域,尤其涉及一种进程性能分析方法、装置、系统及计算机存储介质。
背景技术
一个应用程序的进程的性能可以用多种参数来衡量,目前,传统的获取进程的性能参数的方式是通过主机侧性能监控方式实现,通过主机侧性能监控记录下主机的资源及性能变化数据,根据主机的性能变化数据进行分析以确定进程性能。
然而,由于应用程序对应业务本身的复杂性和高耦合度,通过主机侧性能监控获取到的性能变化数据来确定进程性能的方式,无法对应用程序的进程性能进行精确的评估。如传统的通过主机侧性能监控中,通过利用现有操作系统自带的进程监控工具ps,仅能获取到进程开始到ps命令执行时刻之间的活动进程所消耗中央处理器(CPU,CentralProcessing Unit)时间的总和,无法用于精确评估设定时长内进程消耗的CPU时间,即无法精确计算进程的性能开销。因此,传统的通过主机侧性能监控方式获取进程性能参数,存在无法精确计算在所需时长内进程的资源消耗与进程的性能变化规律等问题。
发明内容
有鉴于此,本发明实施例提供了一种能够对进程性能进行精确分析并可获取进程的性能变化规律的进程性能分析方法、装置、系统及计算机存储介质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种进程性能分析方法,所述方法包括:
根据设置的时间间隔在设置时段内采集进程性能数据;
根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。
上述方案中,还包括:根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律。
上述方案中,所述根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律,包括:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
上述方案中,所述根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或两次采集时均处于运行状态的子进程的性能数据的变化量,包括:
创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
上述方案中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;所述根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律,包括:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
上述方案中,所述根据设置的时间间隔在设置时段内采集进程性能数据,包括:根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
本发明实施例提供了一种进程性能分析方法,所述方法包括:
至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,并将所述进程性能数据发送给管理端;
所述管理端获取到所述进程性能数据后,根据所述至少一个采集端中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
所述管理端根据所述性能数据的变化量,统计所述采集端的对应进程在所述设置时段内的性能变化规律。
上述方案中,还包括:
所述管理端确定所述至少一个采集端在设置周期内所述父进程的性能数据的变化量和所述子进程的性能数据的变化量;
所述管理端根据所述至少一个采集端在所述设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计所述至少一个采集端的对应进程在所述设置周期内的性能变化规律。
上述方案中,所述管理端获取到所述进程性能数据后,根据所述至少一个采集端中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量,包括:
所述管理端创建包含所述至少一个采集端在所述设置时段内所采集的所述进程性能数据的进程列表;基于所述进程列表中每个所述采集端两次采集的所述进程性能数据,以进程标识符为索引确定所述采集端在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定所述采集端在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
上述方案中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;所述管理端根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律,包括:
所述管理端根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,所述管理端根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
上述方案中,所述至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,包括:所述至少一个采集端根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
本发明实施例提供了一种进程性能分析装置,所述装置包括:采集单元、处理单元和统计单元;其中,
所述采集单元,用于根据设置的时间间隔在设置时段内采集进程性能数据;
所述处理单元,用于根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或两次采集时均处于运行状态的子进程的性能数据的变化量;
所述统计单元,用于根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。
上述方案中,所述统计单元,还用于:根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律。
上述方案中,所述统计单元,具体用于:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
上述方案中,所述处理单元,包括创建子单元和获取子单元;其中,
所述创建子单元,用于创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
所述获取子单元,用于基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
上述方案中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;
所述统计单元,具体用于:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
上述方案中,所述采集单元,具体用于:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
本发明实施例提供了一种进程性能分析装置,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行上述进程性能分析方法。
本发明实施例提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述进程性能分析方法。
本发明实施例提供了一种进程性能分析系统,所述系统包括:至少一个采集端和管理端;其中,
所述至少一个采集端,用于根据设置的时间间隔在设置时段内采集进程性能数据,并将所述进程性能数据发送给所述管理端;
所述管理端,用于获取到所述进程性能数据后,根据所述至少一个采集端中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;以及,根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律。
上述方案中,所述管理端,还用于:
确定所述至少一个采集端在设置周期内所述父进程的性能数据的变化量和所述子进程的性能数据的变化量;以及,根据所述至少一个采集端在所述设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计所述至少一个采集端的对应进程在所述设置周期内的性能变化规律。
上述方案中,所述管理端,具体用于:
确定每个所述采集端在所述设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述采集端在所述设置周期内所述父进程的性能排序;和/或,确定所述采集端在所述设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述采集端在所述设置周期内所述子进程的性能排序。
上述方案中,所述管理端,具体用于:
创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
上述方案中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;所述管理端,具体用于:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
上述方案中,所述采集端,具体用于:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
本发明实施例提供的进程性能分析方法、装置、系统及计算机存储介质,通过根据设置的时间间隔在设置时段内采集进程性能数据,并通过对在设置时段内两次采集的所述进程性能数据进行分析,可以确定在两次采集时均处于运行状态的父进程的性能数据的变化量和在两次采集时均处于运行状态的子进程的性能数据的变化量,从而将生命周期在两次采集之内的进程性能数据均可计入对应进程的变化量,获得在所述设置时段内进程的性能变化规律。如此,本发明实施例提供的进程性能分析方法、装置、系统及计算机存储介质能够精确计算出在固定时长内进程的性能数据的变化量即对进程性能进行精确分析,并获取进程的性能变化规律。
附图说明
图1为本发明一实施例中进程性能分析方法的流程示意图;
图2为本发明一实施例中进程性能分析装置的结构示意图;
图3为本发明另一实施例中进程性能分析方法的流程示意图;
图4为本发明另一实施例中进程性能分析系统的结构示意图;
图5为本发明又一实施例中进程性能分析装置的结构示意图;
图6为本发明一实施例中所采集到的进程性能数据的示意图;
图7为本发明一实施例中一分钟内消耗CPU毫秒数的TOP10应用的排序示意图;
图8为本发明一实施例中进程的内存驻留数据段变化情况的排序示意图;
图9为本发明一实施例中同一进程的内存驻留数据段随时间的变化趋势的示意图;
图10为本发明一实施例中一分钟内消耗I/O字节数的TOP10应用的排序示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明实施例提供进程性能分析方法、实施进程性能分析方法的进程性能分析装置、实施进程性能分析方法的进程性能分析系统以及存储用于实现进程性能分析方法的可执行程序的计算机可读存储介质。就进程性能分析方法的实施而言,本发明实施例提供采集端侧、及采集端侧+和服务端侧实施的方案,对进程性能分析方法的示例性实施场景进行说明。本申请实施例中,采集端是指实施本申请进程性能分析方法对其所运行的应用程序的进程进行分析的终端设备。服务端是指与采集端进行通信以获取采集端的数据,通过与采集端共同实施本申请进程性能分析方法以对采集端上所运行的应用程序的进程进行分析的终端设备或者服务器。
实施例一
本实施例提供了一种进程性能分析方法,如图1所示,该方法包括以下步骤:
步骤101:根据设置的时间间隔在设置时段内采集进程性能数据;
具体地,采集端根据设置的时间间隔在设置时段内采集进程性能数据,获得在所述设置时段内的至少两次进程性能数据。在一个可选的实施例中,采集端通过系统调用采集进程性能数据,具体包括perfstat_process系统调用和getprocs系统调用。其中,设置的时间间隔是指相邻两次采集进程性能数据之间的时间间隔,设置时段是指对进程性能进行分析的最小周期,设置的时间间隔的具体大小和设置时段的具体大小可根据实际应用需要进行设置,且设置的时间间隔应大于设置时段。例如,可设置所述时间间隔为10分钟,而设置所述时段为1分钟,此时采集端将以10分钟为间隔采集1分钟内的进程性能数据。若采集端在9:00:01开始采集9:00:01至9:01:00内的进程性能数据,则下一次将采集9:10:01至9:11:00内的进程性能数据。
在一个可选的实施例中,步骤101,根据设置的时间间隔在设置时段内采集进程性能数据,包括:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
采集端分别采集在设置时段的开始时刻和结束时刻的进程性能数据,通过设置时段的开始时刻和结束时刻的进程性能数据,使得采集操作简单化,且能够更加真实地反映出对应的设置时段内的进程运行情况。例如,采集端在9:00:01开始采集9:00:01至9:01:00内的进程性能数据,也就是说,只采集在9:00:01的进程性能数据和在9:01:00的进程性能数据。
步骤102:根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
具体地,步骤102包括:创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
本实施例中,具体以在所述设置时段的开始时刻采集的进程性能数据、以及在所述设置时段的结束时刻采集的进程性能数据作为所述在设置时段内两次采集的所述进程性能数据,采集端根据在所述设置时段内采集的所述进程性能数据,创建包括在设置时段的开始时刻采集的进程性能数据及在设置时段的结束时刻采集的进程性能数据的进程列表。两次采集时均处于运行状态的父进程和子进程可以是相对的,即一个进程相对于另一个进程为父进程,而相对于另外一个进程可能为子进程。每个父进程可能包含多个子进程,而属于同一父进程的不同子进程可通过自身的进程标识符进行区分。当一个进程为子进程时,该子进程不仅携带有自身的进程标识符,还携带有该子进程的父进程的进程标识符。在一个可选的实施例中,以只具有自身的进程标识符的进程为子进程、而包含有所述子进程的进程为父进程。在一个所述设置时段内,对于运行开始时间处于所述设置时段的开始时刻之前、且运行结束时间处于所述设置时段的开始时刻与结束时刻之间的子进程的性能数据,以及运行开始时间处于所述设置时段的开始时刻与结束时刻之间、且运行结束时间处于所述设置时段的结束时刻之后的子进程的性能数据,都会通过进程标识符的区分作用而被记录至各自所属的父进程的性能数据中。因此,本申请实施例中,确定在两次采集时均处于运行状态的父进程的性能数据的变化量的步骤中,父进程的性能数据不仅包括父进程自身的性能数据,还包括所述父进程对应包含的子进程的性能数据。
在一可选的实施例中,采集端根据在所述设置时段内采集的所述进程性能数据创建进程列表时,可以将父进程自身的性能数据和所述父进程对应包含的子进程的性能数据分别单独记录,,对于运行开始时间处于所述设置时段的开始时刻之后、且运行结束时间处于所述设置时段的结束时刻之前的子进程的性能数据,也会被记录至该子进程所属的父进程的性能数据中。因此,由于每个子进程都有父进程,将上述子进程的性能数据都记录至各自所属的父进程的性能数据中,可保证通过在所述设置时段的开始时刻采集的进程性能数据、以及在所述设置时段的结束时刻采集的进程性能数据,能够获得在所述设置时段内运行的所有进程的性能数据。
在所述进程列表中,通过以进程标识符为索引进行搜索,可以快速确定在两次采集时均处于运行状态的父进程,从而对比在两次采集时均处于运行状态的父进程的性能数据,获取所述父进程的性能数据在所述设置时段内的变化量。例如,若在所述设置时段的开始时刻采集的进程性能数据包括进程a、b、c的性能数据,在所述设置时段的结束时刻采集的进程性能数据包括进程a、d的性能数据,当通过进程标识符为索引进行搜索时,只搜索到进程a两次被采集且为父进程,且通过进程标识符为索引确定进程b、c均为父进程a的子进程,则将进程b、c在设置时段内的变化量计入父进程a中,且只获取父进程a的性能数据在所述设置时段内的变化量。同上,在所述进程列表中,通过以进程标识符为索引进行搜索,可以快速确定在两次采集时均处于运行状态的进程d为子进程,从而对比在两次采集时均处于运行状态的子进程的性能数据,获取所述子进程的性能数据在所述设置时段内的变化量。如此,可以确保生命周期在两次采集时间内全部进程性能数据均可以有效得地计入分析中,满足进程分析结果的准确和有效。
步骤103:根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。
具体地,采集端根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,或,采集端根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,或,采集端根据所述父进程的性能数据的变化量和所述子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序。
在一个可选的实施例中,所述性能数据包括消耗中央处理器时间,所述步骤103,根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律主要包括以下三种情况:第一,根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,包括:根据所述父进程消耗中央处理器时间的变化量,对所述父进程在所述设置时段内消耗中央处理器时间的变化量进行排序,通过排序可以获知在所述设置时段内消耗中央处理器时间的变化量依次递减或者依次递增的父进程。第二,根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,包括:根据所述子进程消耗中央处理器时间的变化量,对所述子进程在所述设置时段内中央处理器时间的变化量进行排序,通过排序可以获知在所述设置时段内消耗中央处理器时间的变化量依次递减或者依次递增的子进程。第三,根据父进程的性能数据的变化量和子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序,包括:根据所述父进程消耗中央处理器时间的变化量和所述子进程消耗中央处理器时间的变化量,对所述父进程在所述设置时段内消耗中央处理器时间的变化量和所述子进程在所述设置时段内消耗中央处理器时间的变化量一起进行排序,通过排序可以获知在所述设置时段内消耗中央处理器时间的变化量依次递减或者依次递增的目标进程,所述目标进程可以是父进程,也可以是子进程。
这里,由于所述父进程在所述设置时段内消耗中央处理器时间的变化量包括父进程自身在所述设置时段内消耗中央处理器时间的变化量和所述父进程的所有子进程在所述设置时段内消耗中央处理器时间的总变化量,因此,所述根据所述父进程消耗中央处理器时间的变化量,对所述父进程在所述设置时段内消耗中央处理器时间的变化量进行排序,可以是根据所述父进程自身在所述设置时段内消耗中央处理器时间的变化量进行排序,也可以是根据所述父进程的所有子进程在所述设置时段内消耗中央处理器时间的总变化量进行排序。
如此,通过按照在所述设置时段内消耗中央处理器时间的变化量对进程进行排序,可获知各进程在所述设置时段内消耗中央处理器的时间的情况。此外,由于进程与应用之间存在对应关系,根据各进程在所述设置时段内消耗中央处理器的时间的情况,即可获知进程对应的应用在所述设置时段内消耗中央处理器的时间多少和趋势等情况,便于对所述进程及包含对应进程的应用的性能进行预判,为优化应用提供帮助。
在一个可选的实施例中,所述性能数据包括消耗内存资源,步骤103,根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律主要包括以下三种情况:第一,根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,包括:根据所述父进程消耗内存资源的变化量,对所述父进程在所述设置时段内消耗内存资源的变化量进行排序,通过排序可以获知在所述设置时段内消耗内存资源的变化量依次递减或者依次递增的父进程。第二,根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,包括:根据所述子进程消耗内存资源的变化量,对所述子进程在所述设置时段内消耗内存资源的变化量进行排序,通过排序可以获知在所述设置时段内消耗内存资源的变化量依次递减或者依次递增的子进程。第三,根据父进程的性能数据的变化量和子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序,包括:根据所述父进程消耗内存资源的变化量和所述子进程消耗内存资源的变化量,对所述父进程在所述设置时段内消耗内存资源的变化量和所述子进程在所述设置时段内消耗内存资源的变化量共同进行排序,通过排序可以获知在所述设置时段内消耗内存资源的变化量依次递减或者依次递增的目标进程,所述目标进程可以是父进程,也可以是子进程。
这里,由于所述父进程在所述设置时段内消耗内存资源的变化量包括父进程自身在所述设置时段内消耗内存资源的变化量和所述父进程的所有子进程在所述设置时段内消耗内存资源的总变化量,因此,所述根据所述父进程消耗内存资源的变化量,对所述父进程在所述设置时段内消耗内存资源的变化量进行排序,可以是根据所述父进程自身在所述设置时段内消耗内存资源的变化量进行排序,也可以是根据所述父进程的所有子进程在所述设置时段内消耗内存资源的总变化量进行排序。
如此,通过按照在所述设置时段内消耗内存资源的变化量对各进程进行排序,可获知各进程在所述设置时段内消耗内存资源的多少的情况。此外,由于进程与应用之间存在对应关系,根据各进程在所述设置时段内消耗内存资源的多少的情况,即可获知进程对应的应用在所述设置时段内消耗内存资源的多少和趋势等情况,便于对所述进程及包含对应进程的应用的性能进行预判,为优化应用提供帮助。
在一个可选的实施例中,所述性能数据包括占用的输入/输出资源,步骤103,根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律主要包括以下三种情况:第一,根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,包括:根据所述父进程占用的输入/输出资源,对所述父进程在所述设置时段内占用的输入/输出资源的变化量进行排序,通过排序可以获知在所述设置时段内占用的输入/输出资源的变化量依次递减或者依次递增的父进程。第二,根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,包括:根据所述子进程占用的输入/输出资源的变化量,对所述子进程在所述设置时段内占用的输入/输出资源的变化量进行排序,通过排序可以获知在所述设置时段内占用的输入/输出资源的变化量依次递减或者依次递增的子进程。第三,根据父进程的性能数据的变化量和子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序,包括:根据所述父进程占用的输入/输出资源的变化量和所述子进程占用的输入/输出资源的变化量,对所述父进程在所述设置时段内占用的输入/输出资源的变化量和所述子进程在所述设置时段内占用的输入/输出资源的变化量共同进行排序,通过排序可以获知在所述设置时段内占用的输入/输出资源的变化量依次递减或者依次递增的目标进程,所述目标进程可以是父进程,也可以是子进程。
这里,由于所述父进程在所述设置时段内占用的输入/输出资源的变化量包括父进程自身在所述设置时段内占用的输入/输出资源的变化量和所述父进程的所有子进程在所述设置时段内占用的输入/输出资源的总变化量,因此,所述根据所述父进程在所述设置时段内占用的输入/输出资源的变化量,对所述父进程在所述设置时段内占用的输入/输出资源的变化量进行排序,可以是根据所述父进程自身在所述设置时段内占用的输入/输出资源的变化量进行排序,也可以是根据所述父进程的所有子进程在所述设置时段内占用的输入/输出资源的总变化量进行排序。
上述实施例提供的进程性能优化方法可应用于采集端中,采集端根据设置的时间间隔在设置时段内采集进程性能数据,并通过对在所述设置时段内两次采集的所述进程性能数据进行分析,从而获得了在所述设置时段内进程的资源消耗并统计性能变化规律。如此,本实施例提供的进程性能分析方法能够精确计算出在根据获取到的进程的任意一种或者多种类型的性能数据在任意设置时长内的资源消耗,便于对进程性能进行精确分析,并获取进程的性能变化规律。
在一个可选的实施例中,该方法还可包括:根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律。
具体地,采集端确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,采集端确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序;和/或,采集端确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量和所述子进程的性能数据的变化量,得到所述设置周期内所述父进程与所述子进程的性能排序。其中,所述设置周期的具体大小可根据实际应用需要进行设置,且设置周期应大于设置的时间间隔。例如,仍以设置时间间隔为10分钟、设置时段为1分钟为例,设置周期可以为1小时,则采集端可根据在1小时内采集的总共6分钟(第1、11、21、31、41、51分钟)分别对应的父进程的性能数据的变化量,统计父进程在该1小时内的性能变化规律。
其中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种,通过不同的性能数据,可以统计对应进程在设置时段内的对应性能数据的性能变化规律。例如,当所述性能数据为消耗中央处理器时间时,将每个父进程在设置周期的每个设置时段内消耗中央处理器时间的变化量、按照依次递减或者依次递增的顺序进行排序,从而获知在设置周期的每个设置时段内消耗中央处理器时间最多的父进程、或在设置周期的每个设置时段内消耗中央处理器时间最少的父进程等信息;或者,将每个子进程在设置周期的每个设置时段内消耗中央处理器时间的变化量、按照依次递减或者依次递增的顺序进行排序,从而获知在设置周期的每个设置时段内消耗中央处理器时间最多的子进程、或在设置周期的每个设置时段内消耗中央处理器时间最少的子进程等信息;或者,将每个父进程和子进程在设置周期的每个设置时段内消耗中央处理器时间的变化量、按照依次递减或者依次递增的顺序进行排序,从而获知在设置周期的每个设置时段内消耗中央处理器时间最多的目标进程、或在设置周期的每个设置时段内消耗中央处理器时间最少的目标进程等信息。所述目标进程可以是父进程,也可以是子进程。
如此,通过对进程在设置周期的每个设置时段内性能数据的变化量、按照依次递减或者依次递增的顺序进行排序,可获知各进程在设置周期的性能变化规律。此外,由于进程与应用之间存在对应关系,根据各进程在设置周期的性能变化规律,即可获知进程对应的应用在设置周期的性能变化规律,可以对进程的性能进行精确到设置周期内的分析,为优化应用提供帮助。
为实现上述方法,本实施例还提供了一种进程性能分析装置,如图2所示,该装置包括:采集单元10、处理单元11和统计单元12;其中,
所述采集单元10,用于根据设置的时间间隔在设置时段内采集进程性能数据;
所述处理单元11,用于根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或两次采集时均处于运行状态的子进程的性能数据的变化量;
所述统计单元12,用于根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。
上述实施例提供的进程性能优化装置可应用于采集端中,该装置根据设置的时间间隔在设置时段内采集进程性能数据,并通过对在所述设置时段内两次采集的所述进程性能数据进行分析,从而获得了在所述设置时段内进程的资源消耗并统计性能变化规律。如此,本实施例提供的进程性能分析装置能够精确计算出在根据获取到的进程的任意一种或者多种类型的性能数据在任意设置时长内的资源消耗,便于对进程性能进行精确分析,并获取进程的性能变化规律。
在一个可选的实施例中,所述统计单元12,还用于:根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律。
如此,通过对进程在设置周期的每个设置时段内性能数据的变化量、按照依次递减或者依次递增的顺序进行排序,可获知各进程在设置周期的性能变化规律。此外,由于进程与应用之间存在对应关系,根据各进程在设置周期的性能变化规律,即可获知进程对应的应用在设置周期的性能变化规律,可以对进程的性能进行精确到设置周期内的分析,为优化应用提供帮助。
在一个可选的实施例中,所述统计单元12,具体用于:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
在一个可选的实施例中,所述处理单元11,包括创建子单元110和获取子单元111;其中,
所述创建子单元110,用于创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
所述获取子单元111,用于基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
如此,可以确保生命周期在两次采集时间内的全部进程性能数据均可以有效得地计入分析中,满足进程分析结果的准确和有效。
在一个可选的实施例中,
所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;
所述统计单元12,具体用于:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
如此,通过按照在所述设置时段内性能数据的变化量对进程进行排序,可获知各进程在所述设置时段内性能数据的情况。此外,由于进程与应用之间存在对应关系,根据各进程在所述设置时段内性能数据的情况,即可获知进程对应的应用在所述设置时段内性能数据变化多少和趋势等情况,便于对所述进程及包含对应进程的应用的性能进行预判,为优化应用提供帮助。
在一个可选的实施例中,所述采集单元10,具体用于:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
如此,分别采集在设置时段的开始时刻和结束时刻的进程性能数据,通过设置时段的开始时刻和结束时刻的进程性能数据,使得采集操作简单化,且能够更加真实地反映出对应的设置时段内的进程运行情况。
实施例二
本实施例提供了一种进程性能分析方法,如图3所示,该方法包括以下步骤:
步骤201:至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,并将所述进程性能数据发送给管理端;
具体地,至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,获得在所述设置时段内的至少两次进程性能数据,并将所述进程性能数据发送给管理端。在一个可选的实施例中,所述采集端通过系统调用采集进程性能数据,具体包括perfstat_process系统调用和getprocs系统调用。其中,设置的时间间隔是指相邻两次采集进程性能数据之间的时间间隔,设置时段是指对进程性能进行分析的最小周期,设置的时间间隔的具体大小和设置时段的具体大小可根据实际应用需要进行设置,且设置的时间间隔应大于设置时段。例如,可设置所述时间间隔为10分钟,而设置所述时段为1分钟,此时采集端将以10分钟为间隔采集1分钟内的进程性能数据。若采集端在9:00:01开始采集9:00:01至9:01:00内的进程性能数据,则下一次将采集9:10:01至9:11:00内的进程性能数据。
在一个可选的实施例中,步骤201,所述至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,包括:所述至少一个采集端根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。采集端分别采集在设置时段的开始时刻和结束时刻的进程性能数据,通过采集设置时段的开始时刻和结束时刻的进程性能数据,使得采集操作简单化,且能够更加真实地反映出对应的设置时段内的进程运行情况。例如,采集端在9:00:01开始采集9:00:01至9:01:00内的进程性能数据,也就是说,只采集在9:00:01的进程性能数据和在9:01:00的进程性能数据。
步骤202:所述管理端获取到所述进程性能数据后,根据所述至少一个采集端中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
具体地,步骤202包括:所述管理端创建包含所述至少一个采集端在所述设置时段内所采集的所述进程性能数据的进程列表;基于所述进程列表中每个所述采集端两次采集的所述进程性能数据,以进程标识符为索引确定所述采集端在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定所述采集端在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。需要注意的是,管理端对每个采集端的所述进程性能数据可以是单独进行分析的,从而获得每个采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量。
本实施例中,具体以所述采集端在所述设置时段的开始时刻采集的进程性能数据、以及在所述设置时段的结束时刻采集的进程性能数据作为所述采集端在设置时段内两次采集的所述进程性能数据为例。根据采集端在所述设置时段内采集的所述进程性能数据,管理端创建包括在设置时段的开始时刻采集的进程性能数据及在设置时段的结束时刻采集的进程性能数据的进程列表。两次采集时均处于运行状态的父进程和子进程可以是相对的,即一个进程相对于另一个进程为父进程,而相对于另外一个进程可能为子进程。每个父进程可能包含多个子进程,而属于同一父进程的不同子进程可通过自身的进程标识符进行区分。当一个进程为子进程时,该子进程不仅携带有自身的进程标识符,还携带有该子进程的父进程的进程标识符。在一个可选的实施例中,以只具有自身的进程标识符的进程为子进程、而包含有所述子进程的进程标识符的进程为父进程。在一个所述设置时段内,对于运行开始时间处于所述设置时段的开始时刻之前、且运行结束时间处于所述设置时段的开始时刻与结束时刻之间的子进程的性能数据,以及运行开始时间处于所述设置时段的开始时刻与结束时刻之间、且运行结束时间处于所述设置时段的结束时刻之后的子进程的性能数据,都会通过进程标识符的区分作用而被记录至各自所属的父进程的性能数据中。因此,本申请实施例中,确定在两次采集时均处于运行状态的父进程的性能数据的变化量的步骤中,父进程的性能数据不仅包括父进程自身的性能数据,还包括所述父进程对应包含的子进程的性能数据。
在一可选的实施例中,管理端根据采集端在所述设置时段内采集的所述进程性能数据创建进程列表时,可以将父进程自身的性能数据和所述父进程对应包含的子进程的性能数据分别单独记录,对于运行开始时间处于所述设置时段的开始时刻之后、且运行结束时间处于所述设置时段的结束时刻之前的子进程的性能数据,也会被记录至该子进程所属的父进程的性能数据中。因此,由于每个子进程都有父进程,将上述子进程的性能数据都记录至各自所属的父进程的性能数据中,可保证通过在所述设置时段的开始时刻采集的进程性能数据、以及在所述设置时段的结束时刻采集的进程性能数据,能够获得在所述设置时段内运行的所有进程的性能数据。
在所述进程列表中,通过以进程标识符为索引进行搜索,可以快速确定在两次采集时均处于运行状态的父进程,从而对比在两次采集时均处于运行状态的父进程的性能数据,获取所述父进程的性能数据在所述设置时段内的变化量。例如,若在所述设置时段的开始时刻采集的进程性能数据包括进程a、b、c的性能数据,在所述设置时段的结束时刻采集的进程性能数据包括进程a、d的性能数据,当通过进程标识符为索引进行搜索时,只搜索到进程a两次被采集且为父进程,且通过进程标识符为索引确定进程b、c均为父进程a的子进程,则将进程b、c在设置时段内的变化量计入父进程a中,且只获取父进程a的性能数据在所述设置时段内的变化量。同上,在所述进程列表中,通过以进程标识符为索引进行搜索,可以快速确定在两次采集时均处于运行状态的进程d为子进程,从而对比在两次采集时均处于运行状态的子进程的性能数据,获取所述子进程的性能数据在所述设置时段内的变化量。如此,可以确保生命周期在两次采集时间内全部进程性能数据均可以有效得地计入分析中,满足进程分析结果的准确和有效。
步骤203:管理端根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律。
具体地,管理端根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,或,管理端根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,或,管理端根据所述父进程的性能数据的变化量和所述子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序。
本申请实施例中,管理端可以获取多个采集端的进程性能数据,并对每个采集端的所述性能数据的变化量进行确认并统计每个所述采集端的对应进程在所述设置时段内的性能变化规律。其中,由于管理端的设置,管理端统一收集多个采集端的进程性能数据,便于对采集端实现统一的软件部署、命令广播和数据采集,且便于管理端基于多个采集端的进程性能数据所形成的大数据下的进程性能分析,如此,通过多个采集端分别得到的同一个进程的性能分析结果对该进程性能进行预判时更为准确,可以挖掘和预测潜在的进程性能问题。
在一个可选的实施例中,所述性能数据包括消耗中央处理器时间,所述步骤203,管理端根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律主要包括以下三种情况:第一,所述管理端根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,包括:管理端根据所述父进程消耗中央处理器时间的变化量,对所述父进程在所述设置时段内消耗中央处理器时间的变化量进行排序,通过排序可以获知在所述设置时段内消耗中央处理器时间的变化量依次递减或者依次递增的父进程。第二,所述管理端根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,包括:管理端根据所述子进程消耗中央处理器时间的变化量,对所述子进程在所述设置时段内中央处理器时间的变化量进行排序,通过排序可以获知在所述设置时段内消耗中央处理器时间的变化量依次递减或者依次递增的子进程。第三,所述管理端根据父进程的性能数据的变化量和子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序,包括:管理端根据所述父进程消耗中央处理器时间的变化量和所述子进程消耗中央处理器时间的变化量,对所述父进程在所述设置时段内消耗中央处理器时间的变化量和所述子进程在所述设置时段内消耗中央处理器时间的变化量一起进行排序,通过排序可以获知在所述设置时段内消耗中央处理器时间的变化量依次递减或者依次递增的目标进程,所述目标进程可以是父进程,也可以是子进程。
这里,由于所述父进程在所述设置时段内消耗中央处理器时间的变化量包括父进程自身在所述设置时段内消耗中央处理器时间的变化量和所述父进程的所有子进程在所述设置时段内消耗中央处理器时间的总变化量,因此,所述管理端根据所述父进程消耗中央处理器时间的变化量,对所述父进程在所述设置时段内消耗中央处理器时间的变化量进行排序,可以是根据所述父进程自身在所述设置时段内消耗中央处理器时间的变化量进行排序,也可以是根据所述父进程的所有子进程在所述设置时段内消耗中央处理器时间的总变化量进行排序。
如此,通过按照在所述设置时段内消耗中央处理器时间的变化量对进程进行排序,可获知各进程在所述设置时段内消耗中央处理器时间多少的情况。此外,由于进程与应用之间存在对应关系,根据各进程在所述设置时段内消耗中央处理器的时间的情况,即可获知进程对应的应用在所述设置时段内消耗中央处理器的时间多少和趋势等情况,便于对所述进程及包含对应进程的应用的性能进行预判,为优化应用提供帮助。
在一个可选的实施例中,所述性能数据包括消耗内存资源,所述步骤203,管理端根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律主要包括以下三种情况:第一,所述管理端根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,包括:管理端根据所述父进程消耗内存资源的变化量,对所述父进程在所述设置时段内消耗内存资源的变化量进行排序,通过排序可以获知在所述设置时段内消耗内存资源的变化量依次递减或者依次递增的父进程。第二,所述管理端根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,包括:管理端根据所述子进程消耗内存资源的变化量,对所述子进程在所述设置时段内消耗内存资源的变化量进行排序,通过排序可以获知在所述设置时段内消耗内存资源的变化量依次递减或者依次递增的子进程。第三,所述管理端根据父进程的性能数据的变化量和子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序,包括:管理端根据所述父进程消耗内存资源的变化量和所述子进程消耗内存资源的变化量,对所述父进程在所述设置时段内消耗内存资源的变化量和所述子进程在所述设置时段内消耗内存资源的变化量一起进行排序,通过排序可以获知在所述设置时段内消耗内存资源的变化量依次递减或者依次递增的目标进程,所述目标进程可以是父进程,也可以是子进程。
这里,由于所述父进程在所述设置时段内消耗内存资源的变化量包括父进程自身在所述设置时段内消耗内存资源的变化量和所述父进程的所有子进程在所述设置时段内消耗内存资源的总变化量,因此,所述根据所述父进程消耗内存资源的变化量,对所述父进程在所述设置时段内消耗内存资源的变化量进行排序,可以是根据所述父进程自身在所述设置时段内消耗内存资源的变化量进行排序,也可以是根据所述父进程的所有子进程在所述设置时段内消耗内存资源的总变化量进行排序。
如此,通过按照在所述设置时段内消耗内存资源的变化量对各进程进行排序,可获知各进程在所述设置时段内消耗内存资源的多少的情况。此外,由于进程与应用之间存在对应关系,根据各进程在所述设置时段内消耗内存资源的多少的情况,即可获知进程对应的应用在所述设置时段内消耗内存资源的多少和趋势等情况,便于对所述进程及包含对应进程的应用的性能进行预判,为优化应用提供帮助。
在一个可选的实施例中,所述性能数据包括占用的输入/输出资源,所述步骤203,管理端根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律主要包括以下三种情况:第一,所述管理端根据父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,包括:管理端根据所述父进程占用的输入/输出资源,对所述父进程在所述设置时段内占用的输入/输出资源的变化量进行排序,通过排序可以获知在所述设置时段内占用的输入/输出资源的变化量依次递减或者依次递增的父进程。第二,所述管理端根据子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序,包括:管理端根据所述子进程占用的输入/输出资源的变化量,对所述子进程在所述设置时段内占用的输入/输出资源的变化量进行排序,通过排序可以获知在所述设置时段内占用的输入/输出资源的变化量依次递减或者依次递增的子进程。第三,所述管理端根据父进程的性能数据的变化量和子进程的性能数据的变化量,对所述父进程和所述子进程的性能数据的变化量进行排序,包括:管理端根据所述父进程占用的输入/输出资源的变化量和所述子进程占用的输入/输出资源的变化量,对所述父进程在所述设置时段内占用的输入/输出资源的变化量和所述子进程在所述设置时段内占用的输入/输出资源的变化量共同进行排序,通过排序可以获知在所述设置时段内占用的输入/输出资源的变化量依次递减或者依次递增的目标进程,所述目标进程可以是父进程,也可以是子进程。
这里,由于所述父进程在所述设置时段内占用的输入/输出资源的变化量包括父进程自身在所述设置时段内占用的输入/输出资源的变化量和所述父进程的所有子进程在所述设置时段内占用的输入/输出资源的总变化量,因此,所述根据所述父进程在所述设置时段内占用的输入/输出资源的变化量,对所述父进程在所述设置时段内占用的输入/输出资源的变化量进行排序,可以是根据所述父进程自身在所述设置时段内占用的输入/输出资源的变化量进行排序,也可以是根据所述父进程的所有子进程在所述设置时段内占用的输入/输出资源的总变化量进行排序。
上述实施例提供的进程性能优化方法中,至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,管理端通过对至少一个采集端在所述设置时段内两次采集的所述进程性能数据进行分析,从而获得了每个采集端在所述设置时段内进程的资源消耗并统计性能变化规律。如此,本实施例提供的进程性能分析方法通过对各采集端的进程性能数据进行集中化的收集和分析,能够精确计算出在根据获取到的进程的任意一种或者多种类型的性能数据在任意设置时长内的资源消耗,便于对进程性能进行精确分析,并获取进程的性能变化规律。
在一个可选的实施例中,该方法还可包括:所述管理端确定所述至少一个采集端在设置周期内所述父进程的性能数据的变化量和所述子进程的性能数据的变化量;以及,所述管理端根据所述至少一个采集端在所述设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计所述至少一个采集端的对应进程在所述设置周期内的性能变化规律。
具体地,管理端确定所述至少一个采集端中每个采集端在设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述采集端在所述设置周期内所述父进程的性能排序;和/或,管理端确定所述采集端在设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述采集端在所述设置周期内所述子进程的性能排序;和/或,管理端确定所述采集端在设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量和所述子进程的性能数据的变化量,得到所述采集端在所述设置周期内所述父进程与所述子进程的性能排序。其中,所述设置周期的具体大小可根据实际应用需要进行设置,且设置周期应大于设置的时间间隔。例如,仍以设置时间间隔为10分钟、设置时段为1分钟为例,设置周期可以为1小时,则管理端可根据在1小时内采集的总共6分钟(第1、11、21、31、41、51分钟)分别对应的父进程的性能数据的变化量,统计父进程在该1小时内的性能变化规律。
其中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种,通过不同的性能数据,可以统计对应进程在设置时段内的对应性能数据的性能变化规律。例如,当所述性能数据为消耗中央处理器时间时,将每个父进程在设置周期的每个设置时段内消耗中央处理器时间的变化量、按照依次递减或者依次递增的顺序进行排序,从而获知在设置周期的每个设置时段内消耗中央处理器时间最多的父进程、或在设置周期的每个设置时段内消耗中央处理器时间最少的父进程等信息;或者,将每个子进程在设置周期的每个设置时段内消耗中央处理器时间的变化量、按照依次递减或者依次递增的顺序进行排序,从而获知在设置周期的每个设置时段内消耗中央处理器时间最多的子进程、或在设置周期的每个设置时段内消耗中央处理器时间最少的子进程等信息;或者,将每个父进程和子进程在设置周期的每个设置时段内消耗中央处理器时间的变化量、按照依次递减或者依次递增的顺序进行排序,从而获知在设置周期的每个设置时段内消耗中央处理器时间最多的目标进程、或在设置周期的每个设置时段内消耗中央处理器时间最少的目标进程等信息。所述目标进程可以是父进程,也可以是子进程。
如此,通过对进程在设置周期的每个设置时段内性能数据的变化量、按照依次递减或者依次递增的顺序进行排序,可获知各进程在设置周期的性能变化规律。此外,由于进程与应用之间存在对应关系,根据各进程在设置周期的性能变化规律,即可获知进程对应的应用在设置周期的性能变化规律,可以对进程的性能进行精确到设置周期内的分析,为优化应用提供帮助。
请参阅图4,本发明实施例还提供了一种进程性能分析系统,该系统包括:至少一个采集端20和管理端21;其中,
所述至少一个采集端20,用于根据设置的时间间隔在设置时段内采集进程性能数据,并将所述进程性能数据发送给所述管理端21;
所述管理端21,用于获取到所述进程性能数据后,根据所述至少一个采集端20中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;以及,根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律。
上述实施例提供的进程性能优化系统中,至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,管理端通过对每个采集端在所述设置时段内两次采集的所述进程性能数据进行分析,从而获得了每个采集端在所述设置时段内进程的资源消耗并统计性能变化规律。如此,本实施例提供的进程性能分析系统通过对各采集端的进程性能数据进行集中化的收集和分析,能够精确计算出在根据获取到的进程的任意一种或者多种类型的性能数据在任意设置时长内的资源消耗,便于对进程性能进行精确分析,并获取进程的性能变化规律。
在一个可选的实施例中,所述管理端21,还用于:
确定所述至少一个采集端在设置周期内所述父进程的性能数据的变化量和所述子进程的性能数据的变化量;以及,根据所述至少一个采集端在所述设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计所述至少一个采集端的对应进程在所述设置周期内的性能变化规律。
在一个可选的实施例中,所述管理端21,具体用于:
确定每个所述采集端在所述设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述采集端在所述设置周期内所述父进程的性能排序;和/或,确定所述采集端在所述设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述采集端在所述设置周期内所述子进程的性能排序。
在一个可选的实施例中,所述管理端21,具体用于:
创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
在一个可选的实施例中,
所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;
所述管理端21,具体用于:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
在一个可选的实施例中,所述采集端20,具体用于:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
实施例三
本发明实施例还提供了一种进程性能分析装置,如图5所示,该进程性能分析装置包括:至少一个处理器210和用于存储能够在处理器210上运行的计算机程序的存储器211;其中,处理器210并非用于指代处理器的个数为一个,而是仅用于指代处理器相对其他器件的位置关系,在实际应用中,处理器的个数可以为一个或多个;同样,存储器211也是同样的含义,即仅用于指代存储器相对其他器件的位置关系,在实际应用中,存储器的个数可以为一个或多个。
其中,所述处理器210用于运行所述计算机程序时,执行如下步骤:
根据设置的时间间隔在设置时段内采集进程性能数据;
根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
在一个可选的实施例中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;所述处理器210还用于运行所述计算机程序时,执行如下步骤:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
该进程性能分析装置还包括:至少一个网络接口212。该进程性能分析装置中的各个组件通过总线系统213耦合在一起。可理解,总线系统213用于实现这些组件之间的连接通信。总线系统213除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统213。
其中,存储器211可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器211旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器211用于存储各种类型的数据以支持进程性能分析装置的操作。这些数据的示例包括:用于在进程性能分析装置上操作的任何计算机程序,如操作系统和应用程序;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。这里,实现本发明实施例方法的程序可以包含在应用程序中。
本实施例还提供了一种计算机存储介质,该计算机存储介质中所存储的计算机程序可由进程性能分析装置中的处理器210执行,以完成前述方法所述步骤。计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程被处理器运行时,执行如下步骤:
根据设置的时间间隔在设置时段内采集进程性能数据;
根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
在一个可选的实施例中,所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;所述计算机程序被处理器运行时,还执行如下步骤:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
实施例四
下面通过一个具体示例对本实施例作进一步详细的说明,本实施例中以在UNIX操作系统下进行进程性能分析为例,主要包括以下三个过程:一是开发进程性能数据采集工具,二是多系统进程数据的自动化收集,三是应用分析及优化。
(一)开发进程性能数据采集工具;
1.1分析进程性能数据收集软件的需求
通过对UNIX操作系统原理进行深入的了解,并结合日常工作经验,确定进程性能数据收集软件psperf的具体需求如下:
·使用标准C语言开发及编译。
·收集包括消耗中央处理器(CPU,Central Processing Unit)时间、驻留内存数据大小、占用I/O字节数等全部进程性能数据。
·程序的编译方式为64位,以便于获得更详细的进程数据。
·使用getopt_long函数支持标准的命令行选项参数。
·支持进程列表和全部进程两种收集模式。
·能够收集进程的子进程消耗中央处理器时间计数。
·输出结果中打印进程命令全称(包含命令参数)。
·支持内核进程开关。
·支持自定义时间间隔,收集次数。
·支持时间戳开关。
·支持自定义格式输出,为后续的数据分析奠定基础。
·通过哈希算法支持高并发系统的进程比对。
1.2选择底层实现方式
在底层实现方式的问题上,可以通过perfstat_process系统调用和getprocs系统调用。本申请实施例中,选择getprocs系统调用作为底层实现方式。
1.3定义结果集
1.3.1定义结果集数据结构
作为一可选的具体实施例中,通过getprocs系统调用作为底层实现方式收集包括消耗中央处理器(CPU,Central Processing Unit)时间、驻留内存数据大小、占用I/O字节数等全部进程性能数据,并在procinfo.h中对于单个进程数据结果的定义如下:
/>
/>
/>
其中,rusage的定义如下:
由于psperf程序返回的数据中可能会包含大量的进程数据。因此,定义一个进程数据列表,如下:
在获取到多个进程数据或者全部进程数据时,由GetAllProcessMetric及GetSpecProcessMetric函数在堆上申请内存,并返回指向该数据类型的指针。
1.3.2分析结果集数据有效性
通过getprocs系统调用,能够返回目标进程在系统调用时相应数据的瞬时测量值,而相对于消耗中央处理器时间、占用I/O字节数等成员变量,该测量值都为进程初始化后的累加值。本申请实施例中,通过在一定间隔时间内分别执行两次getprocs系统调用,获得在一定间隔时间内的统计值。并通过两次间隔时间内以进程标识符(PID)为索引的快速搜索,确保其有效性及高效性。
有效性:对于全进程数据收集,为保证收集数据的有效性,需要解决进程时效性的问题,这里把第一次getprocs系统调用时收集到的进程集合定义为S1,第二次getprocs系统调用时收集到的进程集合定义为S2,并考虑以下四种进程集合Sa、Sb、Sc和Sd,其中,Sa=S1∩S2,Sb=S1-S2,Sc=S2-S1,以及Sd=CuS1∪CuS2。
对于进程集合Sa,其生命周期在两次系统调用的时间间隔之内,其全部性能数据都将计入结果集,满足有效性。
对于进程集合Sb,其开始时间在第一次系统调用之前,会建立索引,其结束时间在第二次系统调用之前,不会产生对这一进程的搜索操作,因此无法计算其性能数据。
对于进程集合Sc,其开始时间在第一次系统调用之后,不会建立索引,结束时间在第二次系统调用之后,会产生对这一进程的搜索操作,但结果会失败,无法计算其性能数据。
对于进程集合Sd,它是指S1和S2的补集,其开始时间在第一次系统调用之后,不会建立索引,结束时间在第二次系统调用之前,不会产生搜索操作,无法计算其性能数据。
为了解决Sb、Sc和Sd的进程性能数据无法收集,影响结果集有效性的问题,在结果集的数据结构中加入进程标识索引用于统计父进程所包含子进程的性能数据。对于Sb、Sc和Sd中无法计入结果集的进程性能数据将被计入其父进程(独立于父进程的性能数据),从而确保结果集的准确和有效。
1.3.3进程的快速搜索算法
高效性:为了提升搜索效率,确保在高并发系统内能够快速搜索,本发明实施例采用Hashtable对进程的PID进行搜索。
散列表大小:Hashtable的加载因子为元素总量与Hashtable可拥有的元素数的最大比率。加载因子越小,平均查找速度越快,但消耗的内存也增加。默认的加载因子为0.72,此时通常提供速度和大小之间的最佳平衡。当创建Hashtable时,也可以指定其他加载因子。
这里,元素总量/Hashtable可拥有的元素数=加载因子。当向Hashtable添加元素时,Hashtable的实际加载因子将增加。当实际加载因子达到指定的加载因子时,Hashtable中存储桶的数目自动增加到大于当前Hashtable存储桶数两倍的最小素数。同时,考虑到UNIX操作系统最大进程数限制,在对降低hash冲突和减少堆上空间占用进行折中后,将散列表大小定为0x100000。
散列算法:常用字符串哈希函数有BKDRHash、APHash、DJBHash、JSHash、RSHash、SDBMHash、PJWHash、ELFHash等。为了确定最适合本实施例场景的哈希算法,对进程PID数据进行了散列算法评测,结果如表1所示:
经过比较,得出以上平均得分,其中平均数为平方平均数。可以发现,BKDRHash无论是在实际效果还是编码实现中,效果都是最突出的。APHash也是较为优秀的算法。DJBHash、JSHash、RSHash与SDBMHash各有千秋。PJWHash与ELFHash效果最差,但得分相似,说明其算法本质是相似的。因此,本申请实施例采用BKDRHash算法作为进程PID的hash算法。
表1散列算法评测结果
冲突处理:为了尽可能提高处理效率,本实施例参考“One-Way Hash”来作为冲突处理方案,具体如下:
1)计算出字符串的三个哈希值,其中一个哈希值用来确定位置,另外两个哈希值用来校验;
2)查看哈希表中的上述哈希值确定的位置;
3)确定哈希表中该位置是否为空,如果为空,则肯定该字符串不存在,返回;
4)如果存在,则检查其他两个哈希值是否也匹配,如果匹配,则表示找到了该字符串,返回;
5)移到下一个位置,如果已经越界,则表示没有找到,返回;
6)看看是不是又回到了原来的位置,如果是,则返回没找到;
7)返回到确定哈希表中该位置是否为空的步骤。
这一算法可以完全实现0(1)时间复杂度,省略了处理冲突所需要的时间及空间开销。经过三次hash函数计算仍出现冲突的概率为1:18889465931478580854784,因此可以忽略不计。
(二)多系统进程数据的自动化采集及收集
对于每一套业务系统,要获取到有效的进程数据,需要以合理的频次对数据进行采集,并对采集到的数据生命周期进行管理;同时,对于业务支撑系统业务系统数量多,业务复杂的特点,需要采用自动化部署及收集的手段对数据进行汇总。
针对以上两个问题,本发明实施例用以下方法实现:
1)于采集端,仿照topasrec的实现方式编写后台脚本psperfrec定时运行psperf,以10分钟为设置时间间隔、1分钟为设置时段收集数据,每天在特定路径下生成一个csv文件,7天为周期保留数据。
2)于服务端,利用expect语言开发一个自动化管理平台,通过自动化管理平台收集所有采集端的数据,以便于进行数据分析。
通过脚本执行并获取全部采集端的数据,自动生成.csv文件,可由excel直接进行展示及编辑。如图6所示,通过这种统一管理的方式,一次性便可获得不同采集端的全部配置信息,非常便于批量对采集端信息的管理工作。
(三)基于大数据模式的性能分析方法
将以上的性能采集工具及自动化收集工具在业务支撑系统上大规模部署之后,可获得包含系统、应用、主机、时间、进程等多个维度的海量数据。在这些数据基础上,利用大数据模式的预测性分析能力来做出预判,采用数据挖掘算法来挖据并预测潜在的性能问题。
以下是采用数据挖掘算法解决性能问题的具体应用,包括:
1)通过对进程(及子进程)消耗CPU资源进行排序,获得一分钟内消耗CPU毫秒数的TOP10应用,其中根据COMMAND可确定进程对应的应用,如图7所示。
2)通过对进程消耗内存资源进行分析,确定进程的内存驻留数据段(DRSS,DataRelay Satellite System)变化情况,如图8所示。图9为同一进程的内存驻留数据段随时间的变化趋势的示意图。
3)通过对进程(及子进程)消耗的I/O资源进行排序,获得一分钟内消耗I/O字节数的TOP10应用,如图10所示。
综上,本发明实施例自主开发了一套进程性能数据采集工具psperf,根据设置的时间间隔在设置时段内采集进程性能数据;根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律,该工具能有效、灵活、快速、高效率地获得最精确的进程级的性能统计信息,从而为建立其软硬件统一的分析手段奠定了基础。
在业务支撑系统复杂的业务环境下,为了对大量的采集端同时实施部署和数据定时采集汇总,本发明另一实施例中基于expect开发了一套自动化管理平台通过采集端根据设置的时间间隔在设置时段内采集进程性能数据;自动化管理平台根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律,实现了对采集端集群的统一化管理,该自动化管理平台利用大数据理论对海量数据进行挖掘,来分析并预测性能问题,实现了由被动式处理变为主动式处理,大大提升了处理性能问题的效率,从而达到了节约硬件成本,提升服务质量,提高运营管理效率和支撑水平的目的。
相比传统的主机侧性能监控方式,通过利用现有操作系统自带的进程监控工具采集进程性能数据而言,单一进程监控工具均无法对进程的CPU消耗时间、I/O数据量等性能数据进行自动化统计及收集的问题。本申请实施例通过操作系统底层调用采集进程性能数据,实现了各类性能数据的批量收集、分析及预测。
相比传统的主机侧性能监控方式中没有自动化的管理手段,效率低下,且在云化架构下,终端设备数量多,业务复杂的问题。本申请实施例中采用expect语言开发了自动化管理平台,该自动化管理平台形成为服务端,统一获取多个采集端的进程性能数据并根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律,实现了数据的统一采集和软件的批量部署等工作,大大提升了系统实施和运维工作的效率。
相比传统的主机侧性能监控方式无法主动式预防性能问题,即传统方法大多只能够实现信息的记录收集工作,而无法对趋势做出一定预测。本申请实施例中采用服务端获取多个采集端的进程性能数据,基于大数据模式的数据分析方法,将进程占用的CPU、内存等硬件资源进行记录、排序并根据使用趋势进行合理预测,提供了一种对潜在性能问题预测的方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种进程性能分析方法,其特征在于,所述方法包括:
根据设置的时间间隔在设置时段内采集进程性能数据;
根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量,和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律;
其中,还包括:
根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律;
所述根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律,包括:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
2.根据权利要求1项所述的方法,其特征在于,所述根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或两次采集时均处于运行状态的子进程的性能数据的变化量,包括:
创建包含在所述设置时段内所采集的所述进程性能数据的进程列表;
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的父进程及所述父进程对应包含的子进程,获取所述父进程的性能数据的变化量;和/或,
基于所述进程列表中两次采集的所述进程性能数据,以进程标识符为索引确定在两次采集时均处于运行状态的子进程,获取所述子进程的性能数据的变化量。
3.根据权利要求1项所述的方法,其特征在于,
所述性能数据包括消耗中央处理器时间、消耗内存资源及占用的输入/输出资源中的至少一种;
所述根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律,包括:
根据所述父进程的性能数据的变化量,对所述父进程的性能数据的变化量进行排序,和/或,根据所述子进程的性能数据的变化量,对所述子进程的性能数据的变化量进行排序。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据设置的时间间隔在设置时段内采集进程性能数据,包括:
根据设置的时间间隔分别采集在设置时段的开始时刻的进程性能数据、以及在所述设置时段的结束时刻的进程性能数据。
5.一种进程性能分析方法,其特征在于,所述方法包括:
至少一个采集端根据设置的时间间隔在设置时段内采集进程性能数据,并将所述进程性能数据发送给管理端;
所述管理端获取到所述进程性能数据后,根据所述至少一个采集端中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;
所述管理端根据所述性能数据的变化量,统计所述采集端的对应进程在所述设置时段内的性能变化规律;
其中,还包括:
根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律;
所述根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律,包括:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述管理端确定所述至少一个采集端在设置周期内所述父进程的性能数据的变化量和所述子进程的性能数据的变化量;
所述管理端根据所述至少一个采集端在所述设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计所述至少一个采集端的对应进程在所述设置周期内的性能变化规律。
7.一种进程性能分析装置,其特征在于,所述进程性能分析装置包括:采集单元、处理单元和统计单元;其中,
所述采集单元,用于根据设置的时间间隔在设置时段内采集进程性能数据;
所述处理单元,用于根据在所述设置时段内两次采集的所述进程性能数据,确定在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或两次采集时均处于运行状态的子进程的性能数据的变化量;
所述统计单元,用于根据所述性能数据的变化量统计对应进程在所述设置时段内的性能变化规律;
其中,所述统计单元,还用于根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律;确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
8.一种进程性能分析装置,其特征在于,所述进程性能分析装置包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至4中任意一项所述进程性能分析方法的步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至4中任意一项所述进程性能分析方法的步骤。
10.一种进程性能分析系统,其特征在于,所述系统包括:至少一个采集端和管理端;其中,
所述至少一个采集端,用于根据设置的时间间隔在设置时段内采集进程性能数据,并将所述进程性能数据发送给所述管理端;
所述管理端,用于获取到所述进程性能数据后,根据所述至少一个采集端中每个采集端在所述设置时段内两次采集的所述进程性能数据,确定所述采集端在两次采集时均处于运行状态的父进程的性能数据的变化量、和/或在两次采集时均处于运行状态的子进程的性能数据的变化量;以及,根据所述性能数据的变化量统计所述采集端的对应进程在所述设置时段内的性能变化规律;
其中,还包括:
根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律;
所述根据设置周期内分别与所述设置时段对应的所述性能数据的变化量,统计对应进程在所述设置周期内的性能变化规律,包括:
确定设置周期内分别与所述设置时段对应的所述父进程的性能数据的变化量,得到所述设置周期内所述父进程的性能排序;和/或,
确定设置周期内分别与所述设置时段对应的所述子进程的性能数据的变化量,得到所述设置周期内所述子进程的性能排序。
CN201711482883.4A 2017-12-29 2017-12-29 一种进程性能分析方法、装置、系统及计算机存储介质 Active CN109992468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711482883.4A CN109992468B (zh) 2017-12-29 2017-12-29 一种进程性能分析方法、装置、系统及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711482883.4A CN109992468B (zh) 2017-12-29 2017-12-29 一种进程性能分析方法、装置、系统及计算机存储介质

Publications (2)

Publication Number Publication Date
CN109992468A CN109992468A (zh) 2019-07-09
CN109992468B true CN109992468B (zh) 2023-09-19

Family

ID=67109280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711482883.4A Active CN109992468B (zh) 2017-12-29 2017-12-29 一种进程性能分析方法、装置、系统及计算机存储介质

Country Status (1)

Country Link
CN (1) CN109992468B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217925A (zh) * 2021-12-07 2022-03-22 中信银行股份有限公司 一种实现异常自动重启的业务程序运行监控方法及系统
CN116341991B (zh) * 2023-05-29 2023-08-18 江苏智慧优视电子科技有限公司 一种基于云计算的重卡换电云服务系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081623A (zh) * 2009-11-30 2011-06-01 中国移动通信集团浙江有限公司 一种数据库异常检测方法和系统
CN105677550A (zh) * 2015-12-29 2016-06-15 广州华多网络科技有限公司 一种基于Linux系统的性能采集分析的方法、装置及系统
CN107104867A (zh) * 2017-04-24 2017-08-29 珠海格力电器股份有限公司 主从式系统的通信方法及主从式系统
CN107122287A (zh) * 2017-04-27 2017-09-01 上海联影医疗科技有限公司 一种系统的性能分析方法及装置
CN107436840A (zh) * 2017-08-01 2017-12-05 北京奇虎科技有限公司 应用程序运行性能分析方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081623A (zh) * 2009-11-30 2011-06-01 中国移动通信集团浙江有限公司 一种数据库异常检测方法和系统
CN105677550A (zh) * 2015-12-29 2016-06-15 广州华多网络科技有限公司 一种基于Linux系统的性能采集分析的方法、装置及系统
CN107104867A (zh) * 2017-04-24 2017-08-29 珠海格力电器股份有限公司 主从式系统的通信方法及主从式系统
CN107122287A (zh) * 2017-04-27 2017-09-01 上海联影医疗科技有限公司 一种系统的性能分析方法及装置
CN107436840A (zh) * 2017-08-01 2017-12-05 北京奇虎科技有限公司 应用程序运行性能分析方法、装置及系统

Also Published As

Publication number Publication date
CN109992468A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
CN110519365B (zh) 一种变更设备业务的方法和业务变更系统
CN109597685B (zh) 任务分配方法、装置和服务器
US9715409B2 (en) Job delay detection method and information processing apparatus
CN110019298B (zh) 数据处理方法和装置
CN112130996A (zh) 数据监控控制系统、方法、装置、电子设备和存储介质
CN109828750B (zh) 自动配置数据埋点的方法、装置、电子设备及存储介质
CN111324533A (zh) A/b测试方法、装置及电子设备
CN109992468B (zh) 一种进程性能分析方法、装置、系统及计算机存储介质
CN111784468B (zh) 一种账户关联方法、装置及电子设备
JP6550945B2 (ja) 判定制御プログラム、判定制御方法及び仮想マシン管理装置
CN111090401B (zh) 存储设备性能预测方法及装置
CN110781430B (zh) 互联网新型虚拟数据中心系统及其构造方法
TWI706343B (zh) 樣本回放資料存取方法、裝置及電腦設備
CN110389817B (zh) 多云系统的调度方法、装置和计算机可读介质
CN110267717B (zh) 在多租户环境中按不同单独租户自动生成自动缩放呼叫规则的方法及装置
KR101810180B1 (ko) 사용자 장치 기반의 빅데이터 분산 처리 방법 및 장치
CN112765170B (zh) 一种嵌入式时间序列数据管理方法及设备
CN115686811A (zh) 进程管理方法、装置、计算机设备及存储介质
CN109902067B (zh) 文件处理方法、装置、存储介质及计算机设备
CN112463785A (zh) 一种数据质量监控方法、装置、电子设备及存储介质
CN115208831B (zh) 请求处理方法、装置、设备及存储介质
CN117666971B (zh) 一种工业领域的数据存储方法、装置及设备
CN111222146B (zh) 权限校验方法、权限校验装置、存储介质与电子设备
CN116467315A (zh) 行为数据的分析方法、装置、设备及存储介质
CN117806930A (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