CN105740133B - 一种基于服务调用拓扑的分布式应用性能监控方法 - Google Patents

一种基于服务调用拓扑的分布式应用性能监控方法 Download PDF

Info

Publication number
CN105740133B
CN105740133B CN201610065252.1A CN201610065252A CN105740133B CN 105740133 B CN105740133 B CN 105740133B CN 201610065252 A CN201610065252 A CN 201610065252A CN 105740133 B CN105740133 B CN 105740133B
Authority
CN
China
Prior art keywords
node
service
delay
time
label
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
CN201610065252.1A
Other languages
English (en)
Other versions
CN105740133A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201610065252.1A priority Critical patent/CN105740133B/zh
Publication of CN105740133A publication Critical patent/CN105740133A/zh
Application granted granted Critical
Publication of CN105740133B publication Critical patent/CN105740133B/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/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/3466Performance evaluation by tracing or monitoring
    • 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/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • 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/3447Performance evaluation by modeling

Abstract

本发明公开了一种基于服务调用拓扑的分布式应用性能监控方法,通过监控分布式应用服务的网络调用请求,解析出调用者、被调用者和请求时间,通过建立数学模型,确定服务的处理延时,进一步确定应用的服务调用拓扑。通过应用的服务调用拓扑和服务的延时信息,为运维人员提供可视化的应用状态分析,方便对分布式应用进行调试和性能分析。本发明方法具有通用性,可用于任何分布式应用,且本发明方法是实时的,并不是对收集数据的事后分析,能够及时发现问题和系统瓶颈并反馈给运维人员。本发明方法实现简单,易于操作,具有可扩展性和易于部署的特点,适合为分布式应用提供性能监控。

Description

一种基于服务调用拓扑的分布式应用性能监控方法
技术领域
本发明涉及分布式应用性能监控领域,主要针对局域网分布式应用的服务调用关系和服务节点的处理延时进行计算,实时提供监控信息,并在性能下降的情况下发出警报。
背景技术
企业级的应用大多是复杂的分布式应用,应用由多个服务组成,这些服务可能由不同的团队,使用不同的语言开发且分布于网络的不同位置上,使这些应用难以调试和确定系统的瓶颈,尤其发生故障时,难以快速确定问题发生的位置。通常通过分析服务调用拓扑和服务延时的方法解决这个问题。
目前主要检测服务之间调用关系的方法有两大类,一类采用对服务调用请求添加标签,另一类不改变服务调用请求,而将应用视为黑盒。前者为应用的服务调用请求添加一个全局唯一的标志,同一标签下的请求为一次调用,通过分析同一标签下的请求关系确定服务的调用关系和服务节点的延时。虽然这样可以获得准确的服务调用关系,但是对应用有侵入性,且往往只针对特定类型的应用,还会造成较大的系统负载。后者收集大量的服务调用数据,通过建立数学模型分析服务调用关系。
目前不改变服务调用请求的方法主要存在以下问题:
1.有些方法使用于大量数据集中处理,不是实时的,这些方法只适于事后分析;同时,这种方法会过度利用陈旧数据,不能适应网络的动态变化。
2.有些方法计算算法复杂度较高,消耗时间太大。
发明内容
本发明的目的在于针对现有技术的不同,提供一种基于服务调用拓扑的分布式应用性能监控方法。
本发明的目的是通过以下技术方案来实现的:一种基于服务调用拓扑的分布式应用性能监控方法,该方法包括以下步骤:
步骤1:监控分布式应用服务节点之间的网络调用请求,解析网络调用请求的网络包头部,将发送者、接收者和发生时间作为一条原始数据存储到一个可以快速索引的存储服务器,其中,发送者和接收者以服务节点所在主机IP或者<主机IP,端口Port>标记。
步骤2:读取原始数据,分析当前的应用服务调用关系和服务节点的延时,计算出单节点的服务调用关系。具体包含以下步骤:
(2.1)初始化系统。设定时间t1、t2,t1<t2,最小窗口参数MinWindowSize,最大窗口参数MaxWindowSize,最大值阈值MaxValHold,最大值个数阈值MaxNumHold,最小可能性MinProb,默认延时时长DefaultDelay,默认超时时长DefaultTimeout以及性能显著下降阈值ADHold。
(2.2)通过原始数据的发送者和接收者,查询t1到t2时间段内应用中存在的服务节点。
(2.3)遍历步骤2.2查询到的服务节点。当前的服务节点设为node。
(2.4)从存储服务器中查询出t1到t2时间段内从node发出和node收到的原始数据。
(2.5)对原始数据进行过滤,得到进入node的请求链表InMsg、从node发出的请求链表OutMsg,并计算离散化步长Step;具体包括以下子步骤:
(2.5.1)如果node没有服务延时队列,则为node创建服务延时队列;
(2.5.2)对原始数据进行过滤:对于从node发出的请求,在这个请求之前合理时间范围内有进入node的请求,那么将从node发出的请求加入OutMsg,对应所有进入node的请求加入InMsg。所述合理时间范围指进入的请求和发出的请求时间差距不超过服务处理的超时时间,也不小于服务的最短处理时间。在node的服务延时队列长度大于等于MinWindowSize时,使用延时的均值与两倍均方差的和作为超时时间,如果延时均值与两倍均方差的差大于0,使用这个值作为最短处理时间,否则使用延时均值的u分之一作为最短处理时间;其中u为[2,10]的整数,优选取3。在服务延时队列长度小于MinWindowSize时,使用DefaultTimeout作为超时时间,使用p分之DefaultDelay的作为最短处理时间;其中p为[2,10]的整数,优选取2。
(2.5.3)计算离散化步长Step:在node的服务延时队列长度小于MinWindowSize时,取DefaultDelay的k分之一作为Step;在服务延时队列长度大于等于MinWindowSize时,取延时均值的k分之一作为Step。k为大于4的整数,优选取10。
(2.6)计算node的服务延时D,具体包括以下子步骤:
(2.6.1)根据Step将InMsg离散化为序列In:以t1为零点,每隔step取一个时间点作为离散点,将这个点前后二分之Step内请求的数量作为离散点对应的值。
(2.6.2)按步骤2.6.1所述方法,根据Step将OutMsg离散化为序列Out;
(2.6.3)将In和Out带入公式1,计算得到h,并求出h的最大值、正的最大值点的平均值、最大值的个数。
(2.6.4)使用正的最大值点的平均值乘以Step作为服务延时D。
(2.7)判断服务延时D是否合理:如果步骤(2.6)计算的h的最大值不小于MaxValHold且最大值的个数不大于MaxNumHold且存在正的最大值点,那么D合理,执行步骤(2.8),否则执行步骤(2.13);
(2.8)按照窗口更新node的延时队列:当node的延时队列的长度小于MaxWindowSize时,新计算出的延时入队;当node的延时队列的长度大于等于MaxWindowSize时,最先计算的延时出队,新计算出的延时入队。
(2.9)判断node的延时队列的长度是否大于MinWindowSize,是则执行步骤(2.10);否则执行步骤(2.13);
(2.10)以node延时队列中的数据为样本,求出均值d和均方差r。如果当前均值d比之前的延时均值增加超过PAHold,则将node、t1、t2、之前的延时均值和当前的延时均值作为一条警报信息向运维人员发送,并存储于存储服务器。
(2.11)根据InMsg、OutMsg、d和r求出node的因果路径,并计算每条单节点因果路径的可能性,具体包括以下子步骤:
(2.11.1)选取OutMsg中的一条原始数据,设接收者为dst_node,时间为t3。令T=t3-d,R=ur,1<=u<=2。选出InMsg中时间在(T-R,min(T+R,t3))区间内的原始数据,设原始数据共N条,设这些记录的发送者为src_nodei,(其中,1<=i<=K,表示有K个不同的发送者),计算出node的单节点因果路径<src_nodei,node,dst_node>。
(2.11.2)计算单节点因果路径的可能性:如果有ni条原始数据的发送者src_nodei,则单节点因果路径<src_nodei,node,dst_node>的可能性为ni/N。或者按照进入node的时间与T的相隔越短权值越高的方式为每条单节点因果路径赋予权值,最后用发送者src_nodei的权值的总和与所有权值的总和的比值作为对应单节点因果路径的可能性。
(2.12)将可能性大于等于MinProb的因果路径存入存储数据库;
(2.13)判断是否有未被遍历的服务节点,是则执行步骤(2.3);否则执行步骤(2.14);
(2.14)令td=t2-t1,更新t1为t2,更新t2为t2+td。执行步骤(2.2)。
步骤3:将步骤2计算得到的单节点因果路径组合成服务调用拓扑图,具体包括以下子步骤:
(3.1)构造初始图,将从起始节点开始的单节点因果路径加入拓扑图,所述起始节点为分布式应用开始处理请求的服务节点,为每条路径添加标签:因边添加标签T,并设置状态为已使用,果边添加同一标签T,并设置状态为未使用;所述因边为连接单节点因果路径的前两个节点的有向边,所述果边为连接单节点因果路径的后两个节点的有向边;
(3.2)从初始图的果边开始层次遍历拓扑图的边,添加单节点因果路径,直到拓扑图延伸到终止节点。所述终止节点为其所有单节点因果路径为XYX模式的节点。设当前的单节点因果路径为ABC,当前节点的遍历过程如下:
(3.2.1)如果B为终止节点,则按层次遍历方法遍历下一个节点,否则继续;
(3.2.2)如果C在到达边AB的路径上(含节点A)出现过,则按层次遍历方法遍历下一个节点,否则继续;
(3.2.3)判断AB是否有未被使用的标签,如果有,设标签为T1,执行步骤(3.2.4);否则执行步骤(3.2.6);
(3.2.4)设置BC标签为T1,且设置T1为未使用;
(3.2.5)设置AB的标签T1为已使用,按层次遍历方法遍历下一个节点;
(3.2.6)创建新标签T2;
(3.2.7)设置BC标签为T2,且设置BC的标签T2为未使用;
(3.2.8)为AB和到达AB的路径添加标签T2,且设置这些标签为已使用,按层次遍历方法遍历下一个节点。
步骤4:根据拓扑图分析系统性能,在服务性能明显下降的情况下将分析结果发送给运维人员。具体包括以下步骤:
(4.1)根据步骤3的计算结果,形成服务调用拓扑图的图形化结果,直观地显示出带标签的因果路径、每个服务的延时和每条因果路径的可能性信息;
(4.2)根据步骤2中的警报信息,将经过警报发生节点的因果路径标注出来;
(4.3)找到整个拓扑图中服务延时最大的节点,并标记为系统瓶颈;
(4.4)将步骤(4.1)-(4.3)的信息发送给运维人员,从而实现分布式应用性能的监控。
本发明的有益效果是:本发明通过监控分布式应用服务的网络调用请求,解析出调用者、被调用者和请求时间,通过建立数学模型,确定服务的处理延时,进一步确定应用的服务调用拓扑。通过应用的服务调用拓扑和服务的延时信息,为运维人员提供可视化的应用状态分析,方便对分布式应用进行调试和性能分析。本发明分布式应用性能监控方法与一般的监控方法相比,能适应动态变化的分布式应用,特别地,如果将本发明和云计算的动态扩展结合起来,可以在服务性能显著下降之前为性能较差的服务提供较多的资源,保证服务正常运行。同时,本发明方法具有通用性,可用于任何分布式应用,且本发明方法是实时的,并不是对收集数据的事后分析,能够及时发现问题和系统瓶颈并反馈给运维人员。本发明方法实现简单,易于操作,具有可扩展性和易于部署的特点,适合为分布式应用提供性能监控。
附图说明
图1是本发明方法整体架构图;
图2是计算单节点的服务调用关系的流程图;
图3是将单节点因果路径组合成服务调用拓扑的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明提供的一种基于服务调用拓扑的分布式应用性能监控方法,包括以下步骤:
步骤1:监控分布式应用服务节点之间的网络调用请求(数据包),解析网络调用请求的网络包头部,将发送者、接收者和发生时间作为一条原始数据存储到一个可以快速索引的存储服务器,其中,发送者和接收者以服务节点所在主机IP或者<主机IP,端口Port>标记。
定期删除经过计算的原始数据,减少空间的浪费。如果用户关心主机维度的服务状态,那么用发送者和接收者所在主机IP标记;如果用户关心进程维度的服务状态,那么用发送者和接收者所在主机IP和端口Port标记。
步骤2:读取原始数据,分析当前的应用服务调用关系和服务节点的延时,计算出单节点的服务调用关系。具体包含以下步骤:
(2.1)初始化系统。设定时间t1,t2(t1<t2),最小窗口参数MinWindowSize,最大窗口参数MaxWindowSize,最大值阈值MaxValHold,最大值个数阈值MaxNumHold,最小可能性MinProb,默认延时时长DefaultDelay,默认超时时长DefaultTimeout以及性能显著下降阈值ADHold。
MinWindowSize是计算服务延时均值的最小样本的数量,用于防止偶然因素引起的误差;MaxWindowSize是本发明方法维护样本的数量,太大会导致系统维护过多数据,降低系统时效性,太小会影响本发明方法的计算准确性。MaxValHold建议为16,MaxNumHold建议为8。DefaultDelay为默认的服务节点处理延时,DefaultTimeout为默认的服务最长处理延时,这两个值设定应接近真实值,使本发明方法快速收敛。
(2.2)通过原始数据的发送者和接收者,查询t1到t2时间段内应用中存在的服务节点。
(2.3)遍历步骤2.2查询到的服务节点。当前的服务节点设为node。
(2.4)从存储服务器中查询出t1到t2时间段内从node发出和node收到的原始数据,即发送者为node和接收者为node的原始数据记录。
(2.5)对原始数据过滤,得到进入node的请求链表InMsg、从node发出的请求链表OutMsg,并计算离散化步长Step;具体包括以下子步骤:
(2.5.1)如果node没有服务延时队列,则为node创建服务延时队列;
(2.5.2)对原始数据进行过滤:对于从node发出的请求(原始数据中发送者为node的记录),在这个请求之前合理时间范围内有进入node的请求(原始数据中接收者是node的记录),那么将从node发出的请求加入OutMsg,对应所有进入node的请求加入InMsg。所述合理时间范围指进入的请求和发出的请求时间差距不超过服务处理的超时时间,也不小于服务的最短处理时间。在node的服务延时队列长度大于等于MinWindowSize时,使用延时的均值与两倍均方差的和作为超时时间,如果延时均值与两倍均方差的差大于0,使用这个值作为最短处理时间,否则使用延时均值的u分之一作为最短处理时间;其中u为[2,10]的整数,优选取3。在服务延时队列长度小于MinWindowSize时,使用DefaultTimeout作为超时时间,使用p分之DefaultDelay的作为最短处理时间;其中p为[2,10]的整数,优选取2。
过滤的目的:网络环境复杂多样,一个服务调用可能引发多个网络请求。过滤一方面使网络请求与服务调用对应,另一方面减少了参与计算的原始数据,保证计算的实时性。
(2.5.3)计算离散化步长Step:在node的服务延时队列长度小于MinWindowSize时,取DefaultDelay的k分之一作为Step;在服务延时队列长度大于等于MinWindowSize时,取延时均值的k分之一作为Step,k为大于4的整数,优选取10。
(2.6)计算node的服务延时D,具体包括以下子步骤:
(2.6.1)根据Step将InMsg离散化为序列In:以t1为零点,每隔step取一个时间点作为离散点,将这个点前后二分之Step内请求的数量作为离散点对应的值。
(2.6.2)按步骤2.6.1所述方法,根据Step将OutMsg离散化为序列Out;
(2.6.3)将In和Out带入公式1,计算得到h,并求出h的最大值、正的最大值点的平均值、最大值的个数。
实际计算中,由于步骤2.5.3中Step为服务延时的k分之一,所以最大值点应出现在k附近,因此不必计算全部的h序列,只计算h(-k)到h(2k)的值即可。这种计算方法的精度会受到影响,但提高了计算的实时性。
(2.6.4)使用正的最大值点的平均值乘以Step作为服务延时D。
(2.7)判断服务延时D是否合理:如果步骤(2.6)计算的h的最大值不小于MaxValHold且最大值的个数不大于MaxNumHold且存在正的最大值点,那么D合理,执行步骤(2.8),否则执行步骤(2.13);排除不合理的服务延时D可以避免错误结果带来的误差。
(2.8)按照窗口更新node的延时队列:当node的延时队列的长度小于MaxWindowSize时,新计算出的延时入队;当node的延时队列的长度大于等于MaxWindowSize时,最先计算的延时出队,新计算出的延时入队。
(2.9)判断node的延时队列的长度是否大于MinWindowSize,是则执行步骤(2.10);否则执行步骤(2.13);
(2.10)以node延时队列中的数据为样本,求出均值d和均方差r。如果当前均值d比之前的延时均值增加超过PAHold,则将node、t1、t2、之前的延时均值和当前的延时均值作为一条警报信息向运维人员发送,并存储于存储服务器。设置PAHold可以排除偶然因素引发的错误结果的影响。
(2.11)根据InMsg、OutMsg、d和r求出node的因果路径,并计算每条单节点因果路径的可能性:
(2.11.1)选取OutMsg中的一条原始数据,设接收者为dst_node,时间为t3。令T=t3-d,R=ur,1<=u<=2。选出InMsg中时间在(T-R,min(T+R,t3))区间内的原始数据,设原始数据共N条,设这些记录的发送者为src_nodei,(其中,1<=i<=K,表示有K个不同的发送者),计算出node的单节点因果路径<src_nodei,node,dst_node>。
(2.11.2)计算单节点因果路径的可能性:如果有ni条原始数据的发送者src_nodei,则单节点因果路径<src_nodei,node,dst_node>的可能性为ni/N。或者按照进入node的时间与T的相隔越短权值越高的方式为每条单节点因果路径赋予权值,最后用发送者src_nodei的权值的总和与所有权值的总和的比值作为对应单节点因果路径的可能性。
(2.12)将可能性大于等于MinProb的因果路径存入存储数据库;
(2.13)判断是否有未被遍历的服务节点;是则执行步骤(2.3);否则执行步骤(2.14);
(2.14)令td=t2-t1,更新t1为t2,更新t2为t2+td。执行步骤(2.2);如果t1到t2时间段包含了当前时间,那么暂停一段时间,直到t1到t2时间段不包含当前时间。
步骤3:将步骤2计算得到的单节点因果路径组合成服务调用拓扑图,具体包括以下子步骤:
(3.1)构造初始图,将从起始节点开始的单节点因果路径加入拓扑图,所述起始节点为分布式应用开始处理请求的服务节点,为每条路径添加标签:因边添加标签T,并设置状态为已使用,果边添加同一标签T,并设置状态为未使用;所述因边为连接单节点因果路径的前两个节点的有向边,所述果边为连接单节点因果路径的后两个节点的有向边;
标签的用途:同一标签表示一个网络调用请求的处理过程。标签的使用状态用于构造服务调用拓扑图时判断是否需要新建标签。
(3.2)从初始图的果边开始层次遍历拓扑图的边,添加单节点因果路径,直到拓扑图延伸到终止节点。所述终止节点为其所有单节点因果路径为XYX模式的节点。设当前的单节点因果路径为ABC,当前节点的遍历过程如下:
(3.2.1)如果B为终止节点,则按层次遍历方法遍历下一个节点,否则继续;
(3.2.2)如果C在到达边AB的路径上(含节点A)出现过,则按层次遍历方法遍历下一个节点,否则继续;
(3.2.3)判断AB是否有未被使用的标签,如果有,设标签为T1,执行步骤(3.2.4);否则执行步骤(3.2.6);
(3.2.4)T1,且设置T1为未使用;
(3.2.5)设置AB的标签T1为已使用,按层次遍历方法遍历下一个节点;
(3.2.6)创建新标签T2;
(3.2.7)设置BC标签为T2,且设置BC的标签T2为未使用;
(3.2.8)为AB和到达AB的路径添加标签T2,且设置这些标签为已使用,按层次遍历方法遍历下一个节点。
步骤4:根据拓扑图分析系统性能,在服务性能明显下降的情况下将分析结果发送给运维人员。包括以下步骤:
(4.1)根据步骤3的计算结果,形成服务调用拓扑图的图形化结果,直观地显示出带标签的因果路径、每个服务的延时和每条因果路径的可能性信息;
(4.2)根据步骤2中的警报信息,将经过警报发生节点的因果路径标注出来;
(4.3)找到整个拓扑图中服务延时最大的节点,并标记为系统瓶颈;
(4.4)将步骤(4.1)-(4.3)的信息发送给运维人员,从而实现分布式应用性能的监控。

Claims (1)

1.一种基于服务调用拓扑的分布式应用性能监控方法,其特征在于,该方法包括以下步骤:
步骤1:监控分布式应用服务节点之间的网络调用请求,解析网络调用请求的网络包头部,将发送者、接收者和发生时间作为一条原始数据存储到一个可以快速索引的存储服务器,其中,发送者和接收者以服务节点所在主机IP或者<主机IP,端口Port>标记;
步骤2:读取原始数据,分析当前的应用服务调用关系和服务节点的延时,计算出单节点的服务调用关系;具体包含以下步骤:
(2.1)初始化系统;设定时间t1、t2,t1<t2,最小窗口参数MinWindowSize,最大窗口参数MaxWindowSize,最大值阈值MaxValHold,最大值个数阈值MaxNumHold,最小可能性MinProb,默认延时时长DefaultDelay,默认超时时长DefaultTimeout以及性能显著下降阈值ADHold;
(2.2)通过原始数据的发送者和接收者,查询t1到t2时间段内应用中存在的服务节点;
(2.3)遍历步骤(2.2)查询到的服务节点;当前的服务节点设为node;
(2.4)从存储服务器中查询出t1到t2时间段内从node发出和node收到的原始数据;
(2.5)对原始数据进行过滤,得到进入node的请求链表InMsg、从node发出的请求链表OutMsg,并计算离散化步长Step;具体包括以下子步骤:
(2.5.1)如果node没有服务延时队列,则为node创建服务延时队列;
(2.5.2)对原始数据进行过滤:对于从node发出的请求,在这个请求之前合理时间范围内有进入node的请求,那么将从node发出的请求加入OutMsg,对应所有进入node的请求加入InMsg;所述合理时间范围指进入的请求和发出的请求时间差距不超过服务处理的超时时间,也不小于服务的最短处理时间;在node的服务延时队列长度大于等于MinWindowSize时,使用延时的均值与两倍均方差的和作为超时时间,如果延时均值与两倍均方差的差大于0,使用这个值作为最短处理时间,否则使用延时均值的u分之一作为最短处理时间;其中u为[2,10]的整数;在服务延时队列长度小于MinWindowSize时,使用DefaultTimeout作为超时时间,使用p分之DefaultDelay的作为最短处理时间;其中p为[2,10]的整数;
(2.5.3)计算离散化步长Step:在node的服务延时队列长度小于MinWindowSize时,取DefaultDelay的k分之一作为Step;在服务延时队列长度大于等于MinWindowSize时,取延时均值的k分之一作为Step,k为大于4的整数;
(2.6)计算node的服务延时D,具体包括以下子步骤:
(2.6.1)根据Step将InMsg离散化为序列In:以t1为零点,每隔step取一个时间点作为离散点,将这个点前后二分之Step内请求的数量作为离散点对应的值;
(2.6.2)按步骤(2.6.1)所述方法,根据Step将OutMsg离散化为序列Out;
(2.6.3)将In和Out带入公式1,计算得到h,并求出h的最大值、正的最大值点的平均值、最大值的个数;
(2.6.4)使用正的最大值点的平均值乘以Step作为服务延时D;
(2.7)判断服务延时D是否合理:如果步骤(2.6)计算的h的最大值不小于MaxValHold且最大值的个数不大于MaxNumHold且存在正的最大值点,那么D合理,执行步骤(2.8),否则执行步骤(2.13);
(2.8)按照窗口更新node的延时队列:当node的延时队列的长度小于MaxWindowSize时,新计算出的延时入队;当node的延时队列的长度大于等于MaxWindowSize时,最先计算的延时出队,新计算出的延时入队;
(2.9)判断node的延时队列的长度是否大于MinWindowSize,是则执行步骤(2.10);否则执行步骤(2.13);
(2.10)以node延时队列中的数据为样本,求出均值d和均方差r;如果当前均值d比之前的延时均值增加超过PAHold,则将node、t1、t2、之前的延时均值和当前的延时均值作为一条警报信息向运维人员发送,并存储于存储服务器;
(2.11)根据InMsg、OutMsg、d和r求出node的因果路径,并计算每条单节点因果路径的可能性,具体包括以下子步骤:
(2.11.1)选取OutMsg中的一条原始数据,设接收者为dst_node,时间为t3;令T=t3-d,R=ur,1<=u<=2;选出InMsg中时间在(T-R,min(T+R,t3))区间内的原始数据,设原始数据共N条,设这些记录的发送者为src_nodei,其中,1<=i<=K,表示有K个不同的发送者,计算出node的单节点因果路径<src_nodei,node,dst_node>;
(2.11.2)计算单节点因果路径的可能性:如果有ni条原始数据的发送者src_nodei,则单节点因果路径<src_nodei,node,dst_node>的可能性为ni/N;或者按照进入node的时间与T的相隔越短权值越高的方式为每条单节点因果路径赋予权值,最后用发送者src_nodei的权值的总和与所有权值的总和的比值作为对应单节点因果路径的可能性;
(2.12)将可能性大于等于MinProb的因果路径存入存储数据库;
(2.13)判断是否有未被遍历的服务节点,是则执行步骤(2.3);否则执行步骤(2.14);
(2.14)令td=t2-t1,更新t1为t2,更新t2为t2+td;执行步骤(2.2);
步骤3:将步骤2计算得到的单节点因果路径组合成服务调用拓扑图,具体包括以下子步骤:
(3.1)构造初始图,将从起始节点开始的单节点因果路径加入拓扑图,所述起始节点为分布式应用开始处理请求的服务节点,为每条路径添加标签:因边添加标签T,并设置状态为已使用,果边添加同一标签T,并设置状态为未使用;所述因边为连接单节点因果路径的前两个节点的有向边,所述果边为连接单节点因果路径的后两个节点的有向边;
(3.2)从初始图的果边开始层次遍历拓扑图的边,添加单节点因果路径,直到拓扑图延伸到终止节点;所述终止节点为其所有单节点因果路径为XYX模式的节点;设当前的单节点因果路径为ABC,当前节点的遍历过程如下:
(3.2.1)如果B为终止节点,则按层次遍历方法遍历下一个节点,否则继续;
(3.2.2)如果C在到达边AB的路径上出现过,则按层次遍历方法遍历下一个节点,否则继续;
(3.2.3)判断AB是否有未被使用的标签,如果有,设标签为T1,执行步骤(3.2.4);否则执行步骤(3.2.6);
(3.2.4)设置BC标签为T1,且设置T1为未使用;
(3.2.5)设置AB的标签T1为已使用,按层次遍历方法遍历下一个节点;
(3.2.6)创建新标签T2;
(3.2.7)设置BC标签为T2,且设置BC的标签T2为未使用;
(3.2.8)为AB和到达AB的路径添加标签T2,且设置这些标签为已使用,按层次遍历方法遍历下一个节点;
步骤4:根据拓扑图分析系统性能,在服务性能明显下降的情况下将分析结果发送给运维人员;具体包括以下步骤:
(4.1)根据步骤3的计算结果,形成服务调用拓扑图的图形化结果,直观地显示出带标签的因果路径、每个服务的延时和每条因果路径的可能性信息;
(4.2)根据步骤2中的警报信息,将经过警报发生节点的因果路径标注出来;
(4.3)找到整个拓扑图中服务延时最大的节点,并标记为系统瓶颈;
(4.4)将步骤(4.1)-(4.3)的信息发送给运维人员,从而实现分布式应用性能的监控。
CN201610065252.1A 2016-01-29 2016-01-29 一种基于服务调用拓扑的分布式应用性能监控方法 Active CN105740133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610065252.1A CN105740133B (zh) 2016-01-29 2016-01-29 一种基于服务调用拓扑的分布式应用性能监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610065252.1A CN105740133B (zh) 2016-01-29 2016-01-29 一种基于服务调用拓扑的分布式应用性能监控方法

Publications (2)

Publication Number Publication Date
CN105740133A CN105740133A (zh) 2016-07-06
CN105740133B true CN105740133B (zh) 2018-06-29

Family

ID=56248128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610065252.1A Active CN105740133B (zh) 2016-01-29 2016-01-29 一种基于服务调用拓扑的分布式应用性能监控方法

Country Status (1)

Country Link
CN (1) CN105740133B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222331B (zh) * 2017-04-26 2019-12-06 东软集团股份有限公司 分布式应用系统性能的监控方法、装置、存储介质及设备
CN107797898B (zh) * 2017-09-28 2020-11-27 东软集团股份有限公司 数据采集方法及其装置
CN107861821B (zh) * 2017-10-26 2022-02-25 北京百度网讯科技有限公司 模块调用关系的挖掘方法、装置及计算机可读介质
CN109254901B (zh) * 2018-09-30 2019-11-29 北京九章云极科技有限公司 一种指标监测方法及系统
CN109656776B (zh) * 2018-11-05 2022-05-13 创新先进技术有限公司 计算机系统异常监控的完备性巡检方法及其设备
CN110597682B (zh) * 2019-07-18 2022-07-12 平安科技(深圳)有限公司 一种应用部署方法、装置、计算机设备及存储介质
CN110784358A (zh) * 2019-10-31 2020-02-11 北京宝兰德软件股份有限公司 网络调用关系拓扑图的构建方法及装置
CN111405049A (zh) * 2020-03-19 2020-07-10 北京金山云网络技术有限公司 云存储系统的服务调用信息确定方法、装置及系统
CN112491609B (zh) * 2020-11-25 2023-05-23 北京宝兰德软件股份有限公司 基于业务服务的系统应用架构发现方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190728B1 (en) * 2003-05-16 2012-05-29 Johnson Controls Technology Company Building automation system devices
CN104486129A (zh) * 2014-12-24 2015-04-01 中国科学院计算技术研究所 分布式环境下保障应用服务质量的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190728B1 (en) * 2003-05-16 2012-05-29 Johnson Controls Technology Company Building automation system devices
CN104486129A (zh) * 2014-12-24 2015-04-01 中国科学院计算技术研究所 分布式环境下保障应用服务质量的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Performance Debugging for Distributed Systems of Black Boxes;Marcos K. Aguilera ect.;《ACM》;20031022 *
基于Docker的平台即服务架构研究;张建;《信息技术与信息化》;20141231;第2014年卷(第10期);131-134 *

Also Published As

Publication number Publication date
CN105740133A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN105740133B (zh) 一种基于服务调用拓扑的分布式应用性能监控方法
US11627053B2 (en) Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously
US11233709B2 (en) Method and system for monitoring performance of an application system
US8732302B2 (en) Method and system for monitoring performance of an application system
US7885200B2 (en) Application delay analysis
WO2019133763A1 (en) System and method of application discovery
US20090254616A1 (en) Simultaneous Instant Messaging In Single Window
US20190340564A1 (en) Monitoring Network Traffic to Determine Asset Utilization
CN102323873B (zh) 即时通信中用以触发图标回复的方法及系统
Picoreti et al. Multilevel observability in cloud orchestration
EP2713270A1 (en) Resource scheduling method and device
Li et al. MBm-based scalings of traffic propagated in internet
CN112070416B (zh) 基于ai的rpa流程的生成方法、装置、设备及介质
US8180716B2 (en) Method and device for forecasting computational needs of an application
CN108874487A (zh) 基于工作流的数据分析处理方法及系统
CN108021492A (zh) 一种告警合并方法及设备
CN109194545B (zh) 一种网络试验平台流量生成系统、方法、装置及电子设备
Li et al. Delay bound: fractal traffic passes through network servers
CN110943887B (zh) 探针调度方法、装置、设备和存储介质
CN110262955B (zh) 基于pinpoint的应用性能监控工具
CN105450501B (zh) 设置定制化回复功能的方法及装置
CN104754328B (zh) 一种分布式视频质量诊断方法
CN114706610A (zh) 一种业务流程图生成方法、装置、设备及存储介质
Kresch et al. A poisson based bursty model of internet traffic
CN108390770A (zh) 一种信息生成方法、装置及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Cai Liang

Inventor after: Chang Cheng

Inventor after: Yin Keting

Inventor after: Liu Minxian

Inventor after: Wang Zhe

Inventor after: Di Chen

Inventor before: Liu Minxian

Inventor before: Chang Cheng

Inventor before: Yin Keting

Inventor before: Wang Zhe

Inventor before: Cai Liang

Inventor before: Di Chen

GR01 Patent grant
GR01 Patent grant