CN112256542B - 基于eBPF的微服务系统性能检测方法、装置和系统 - Google Patents

基于eBPF的微服务系统性能检测方法、装置和系统 Download PDF

Info

Publication number
CN112256542B
CN112256542B CN202011119820.4A CN202011119820A CN112256542B CN 112256542 B CN112256542 B CN 112256542B CN 202011119820 A CN202011119820 A CN 202011119820A CN 112256542 B CN112256542 B CN 112256542B
Authority
CN
China
Prior art keywords
performance index
monitoring node
micro
performance
event
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
CN202011119820.4A
Other languages
English (en)
Other versions
CN112256542A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202011119820.4A priority Critical patent/CN112256542B/zh
Publication of CN112256542A publication Critical patent/CN112256542A/zh
Application granted granted Critical
Publication of CN112256542B publication Critical patent/CN112256542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F11/3476Data logging
    • 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/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于eBPF的微服务系统性能检测方法、装置和系统,方法应用于设有微服务的监控节点,包括接收集群监控节点发送的控制指令;控制指令包括需要采集的数据种类信息;在与数据种类信息相对应的事件或函数执行时,采集事件或函数执行过程中的性能指标参数,并把性能指标参数发送至集群监控节点,其中集群监控节点用于根据性能指标参数确定微服务的系统性能。该方法针对微服务等场景构建了一个统一的指标获取方法,指标开发扩展方便,数据结构相对统一,且可以从内核中进行指标的获取,指标粒度细,使得系统性能分析的结果更加精确。

Description

基于eBPF的微服务系统性能检测方法、装置和系统
技术领域
本发明涉及微服务技术领域,具体涉及一种基于eBPF的微服务系统性能检测方法和装置、系统和计算机可读存储介质。
背景技术
微服务(微服务构架)是近几年兴起的可以在云中部署应用和服务的新技术,其基本思想是围绕业务领域组件来创建应用,这些应用可以独立地进行开发、管理和加速。在分散的组件中使用微服务构架或平台,其部署、管理以及服务功能交付会变得更加简单。虽然微服务应用范围广泛,具有很多优点,但在应用过程中其系统性能非常关键,如何对其系统性能进行检测就显得尤为重要。目前,通常采用istio等方法来为微服务进行链路检测、追踪以及监控,但istio方法效率低且复杂度高。
发明内容
有鉴于此,本发明提供了一种基于eBPF的微服务系统性能检测方法和装置、系统和计算机可读存储介质,以克服现有的微服务系统性能进行检测的方法效率低且复杂度高的问题。
为实现上述目的,本发明提供如下技术方案:
本发明实施例提供了一种基于eBPF的微服务系统性能检测方法,所述方法应用于设有微服务的监控节点,包括:
接收集群监控节点发送的控制指令;所述控制指令包括需要采集的数据种类信息;
在与所述数据种类信息相对应的事件或函数执行时,采集所述事件或函数执行过程中的性能指标参数,并把所述性能指标参数发送至所述集群监控节点,其中所述集群监控节点用于根据所述性能指标参数确定所述微服务的系统性能。
进一步地,
所述控制指令包括采集方式信息;在采集所述事件或函数执行过程中的性能指标参数的步骤中,包括:
根据所述采集方式信息相对应的采集方式采集所述事件或函数执行过程中的性能指标参数。
进一步地,
采集所述事件或函数执行过程中的性能指标参数的步骤中,包括:
采用eBPF工具采集所述事件或函数执行过程中的性能指标参数。
进一步地,
在把所述性能指标参数发送至所述集群监控节点的步骤之前,还包括:
对所述性能指标参数进行统一格式处理,得到统一格式的性能指标参数。
进一步地,
所述性能指标参数包括网络报文链路;在采集所述事件或函数执行过程中的性能指标参数的步骤中,包括:
获取与所述微服务相关的所有报文,并筛选出与任一个所述微服务相关的报文;
根据报文的四元组信息对筛选出的报文进行分类,得到各会话;
根据每一个所述会话构建有限状态机;
根据所述有限状态机确定网络报文链路。
进一步地,
还包括:采用函数栈对每一次所述事件或函数执行过程中上下文切换时产生的函数调用栈进行采集并存储。
进一步地,
所述性能指标参数包括网络请求处理时间、CPU占用率、内存使用率以及日志读写。
本发明实施例提供了一种基于eBPF的微服务系统性能检测装置,包括:
控制指令接收模块,用于接收集群监控节点发送的控制指令;所述控制指令包括需要采集的数据种类信息;
性能指标参数采集模块,用于在与所述数据种类信息相对应的事件或函数执行时,采集所述事件或函数执行过程中的性能指标参数;
性能指标参数发送模块,用于将所述性能指标参数发送至所述集群监控节点,其中所述集群监控节点用于根据所述性能指标参数确定所述微服务的系统性能。
本发明实施例提供了一种基于eBPF的微服务系统性能检测系统,包括集群监控节点和至少一个监控节点;所述集群监控节点连接所述监控节点;其中,所述集群监控节点和所述监控节点设置于不同的终端设备中、同一个终端设备的不同虚拟机或同一个虚拟机中;
所述监控节点用于执行所述基于eBPF的微服务系统性能检测方法的步骤;
所述集群监控节点用于发送的控制指令至各所述监控节点,并接收各所述监控节点采集所述性能指标参数,根据所述性能指标参数进行全局分析确定所述微服务的系统性能。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述基于eBPF的微服务系统性能检测方法的步骤。
本发明实施例中的基于eBPF的微服务系统性能检测方法、装置、系统和计算机可读存储介质,该方法应用于设有微服务的监控节点;包括接收集群监控节点发送的控制指令;控制指令包括需要采集的数据种类信息;在与数据种类信息相对应的事件或函数执行时,采集事件或函数执行过程中的性能指标参数,并把性能指标参数发送至集群监控节点,其中性能指标参数用于确定微服务的系统性能。该方法针对微服务等场景构建了一个统一的指标获取方法,指标开发扩展方便,数据结构相对统一,且可以从内核中进行指标的获取,指标粒度细,使得系统性能分析的结果更加精确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例中基于eBPF的微服务系统性能检测系统示意图;
图2为本发明实施例中基于eBPF的微服务系统性能检测系统中监控节点示意图;
图3为本发明实施例中基于eBPF的微服务系统性能检测方法的流程示意图;
图4为本发明实施例中网络报文会话有限状态机结构示意图;
图5为本发明实施例中网络报文链路结构示意图;
图6为本发明实施例基于eBPF的微服务系统性能检测装置结构示意图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更详细说明本发明,下面结合附图对本发明提供的一种基于eBPF的微服务系统性能检测方法和装置、系统和计算机可读存储介质,进行具体地描述。
图1为基于eBPF的微服务系统性能检测系统示意图;本发明的基于eBPF的微服务系统性能检测方法应用于图1的基于eBPF的微服务系统性能检测系统。其中,基于eBPF的微服务系统性能检测系统包括集群监控节点和至少一个监控节点;集群监控节点和各监控节点分别设有不同的终端设备(例如计算机设备)或同一个终端设备的不同虚拟机中,监控节点上设有微服务。监控节点可以对微服务相关参数进行采集。另外,监控节点中可以设置有eBPF,其中eBPF包括eBPF钩子、eBPF程序、map、eBPF控制器以及节点管理器等(如图2所示),这些模块等相互配合用来采集微服务相关的系统性能指标参数;eBPF钩子可以开发仿latencyTop函数栈,通过对该函数栈调用情况进行监控,通过统计每次保存下来的函数调用中关键的系统函数的统计和其对应的上下文切换时间累计,来分析当前程序可能存在的问题。节点管理器主要用于eBPF虚拟机的装载、移除以及绑定;eBPF控制器主要用于将采集到的性能指标参数发送至集群监控节点;eBPF程序主要用于存储预先写好的一些程序(例如性能指标提取程序),该程序通常是在某些事件或函数执行时被触发,然后获取、处理或筛选出相关性能指标参数并存储于map中通过map对相关性能指标参数进行处理,在将处理后的性能指标参数eBPF控制器。此外,map是eBPF用于保存数据的单元,也用于和其他eBPF程序或者外部程序进行数据交流。最原始的指标数据获取后,经过eBPF初步加工,会保存在map中,再由eBPF控制器读取(因为eBPF程序运行在内核,为了确保操作系统的安全,它需要通过map中介才能进行用户空间和内核空间的数据交流),进行后续的数据格式处理,然后交给节点管理器发送处理完毕的统一格式指标。集群监控节点负责调度每个监控节点,在需要的时候发布控制指令,从而改变某一些监控节点的行为(如变更需要收集的数据种类、调整采集数据的间隔/概率,陷入休眠或重新运转等),同时负责读取由各个监控节点的数据,将不同的监控节点中已经处理为统一格式的数据汇总处理,进行异常的分析与定位,并将分析结果保存下来,供用户查询;并且可以分析结果提取并进行可视化展示,给用户直观的数据交互方式。
图3为基于eBPF的微服务系统性能检测方法的一个实施例图,如图3所示,基于eBPF的微服务系统性能检测方法应用于设有微服务的监控节点,包括:
步骤S302,接收集群监控节点发送的控制指令;控制指令包括需要采集的数据种类信息;
其中,本实施例是从监控节点角度进行撰写的。控制指令是集群监控节点发送的,控制指令包括需要采集的数据种类信息、采集方式信息(包括调整采集数据的间隔、概率、频率等)、控制监控节点陷入休眠或重新运转等。
数据种类信息主要用于确定微服务中执行的时间或函数的种类或类型。采集方式信息主要用于确定采集性能指标参数的方式或如何进行采集性能指标参数。
步骤S304,在与数据种类信息相对应的事件或函数执行时,采集事件或函数执行过程中的性能指标参数,并把性能指标参数发送至集群监控节点,其中集群监控节点用于根据性能指标参数确定微服务的系统性能。
在一个实施例中,控制指令包括采集方式信息;在采集事件或函数执行过程中的性能指标参数的步骤中,包括:
根据采集方式信息相对应的采集方式采集事件或函数执行过程中的性能指标参数。
具体地,在某一事件或函数执行时,会产生很多与微服务性能相关的参数,即性能指标参数。通过对这些性能进行综合考虑分析,可以来确定微服务的系统性能,例如确定微服务的系统是否具有异常,以及异常类型、异常原因等。
另外,按照采集方式信息相对应的采集方式通常是指按照该数据的采集间隔、采集周期、采集频率等进行性能指标参数的采集。
此外,事件是指系统内核事件和系统内核中函数,例如网络报文接收、发出的时机,报文的内容、写入文件函数、打开文件函数、函数的调用参数等。
在一个实施例中,性能指标参数包括网络请求处理时间、CPU占用率、内存使用率以及日志读写。
网络请求处理时间、CPU占用率、内存使用率以及日志读写是分析微服务的系统性能的主要参数,通常可以用来作为判断微服务的系统是否发生异常的依据。
本发明实施例中的基于eBPF的微服务系统性能检测方法,首先接收集群监控节点发送的控制指令;控制指令包括需要采集的数据种类信息;在与数据种类信息相对应的事件或函数执行时,采集事件或函数执行过程中的性能指标参数,并把性能指标参数发送至集群监控节点,其中性能指标参数用于确定微服务的系统性能。该方法针对微服务等场景构建了一个统一的指标获取方法,指标开发扩展方便,数据结构相对统一,且可以从内核中进行指标的获取,指标粒度细,使得系统性能分析的结果更加精确。
在一个实施例中,采集事件或函数执行过程中的性能指标参数的步骤中,包括:
采用eBPF工具采集事件或函数执行过程中的性能指标参数。
其中,eBPF(Berkeley Packet Filter,即伯克利包过滤器),是一个用于过滤网络报文(网络中交换与传输的数据单元)的工具,可以从用户空间注入内核的字节码,以过滤和复制报文,可以被用在网络编程,事件监控,内核追踪等方面。采用eBPF工具使其采集效率更高,同时在基于eBPF的微服务系统性能检测时引入代码(例如性能指标参数获取代码等)具有一定的侵入性,采用eBPF工具在开发上,可以降低使用复杂性。
在一个实施例中,在把性能指标参数发送至集群监控节点的步骤之前,还包括:
对性能指标参数进行统一格式处理,得到统一格式的性能指标参数。
具体地,不同的监控节点采集的性能指标参数种类、格式等可能都不相同,后期需要对微服务的系统进行评估就会非常不便,因此将其格式进行统一一方便便于性能指标参数传输(即传输至集群监控节点),另一方面便于集群监控节点根据这些性能指标参数进行全局分析,从而确定微服务的系统性能。
在一个实施例中,性能指标参数包括网络报文链路;在采集事件或函数执行过程中的性能指标参数的步骤中,包括:
获取与微服务相关的所有报文,并筛选出与任一个微服务相关的报文;
根据报文的四元组信息对筛选出的报文进行分类,得到各会话;
根据每一个会话构建有限状态机;
根据有限状态机确定网络报文链路。
具体而言,利用网络报文构建网络报文链路,从而进行链路追踪。具体地,首先就是获取与微服务有关的所有报文,其中由于微服务类型或种类很多,每一个微服务对应的报文种类、数量等都不相同;因此,需要调报文进行筛选,可以选择出任意一个感兴趣的或者需要监控的微服务相关的报文进行链路构建。可选地,可以根据微服务的IP信息等进行报文筛选。在筛选出报文之后,根据报文的四元组信息等对报文进行分类,将同一个会话的报文分成一类,从而得到各会话。再对每个会话中每个报文进行分析(即确定接收报文、发送报文以及接送报文的时间、发送报文的时间等)来构建有效状态机(如图4所示),根据有限状态机确定网络报文链路。
另外,链路追踪的思路为记录下收到报文和发送报文及其可以识别链接的唯一会话标识(如四元组信息,即对方的IP、对方端口,己方IP、己方端口)。由于不同会话之间的通讯不会相互干扰,故我们可以假设单个会话收发是半双工的(即两侧都能发送消息,但同一时间只有一方在发送消息),基于这个假设,我们可以将收到的第一个报文作为起始接收报文的时间,而第一个发出的报文作为起始发送报文的时间,第一个发出的报文之前接收的那个报文作为报文接收的结束时间,这样我们就可以通过发送报文结束的时间减去发送报文的时间得到服务器处理请求的时间。
在这一步中,我们对每个会话都构建了一个有限状态机,对将接收状态和发送状态对应到有限状态机的不同状态上,从而得到结果。
在图4中,0状态为初始化状态,代表自动机刚启动,1代表进入接收请求状态,刚进入的时机即为接收请求开始的时机,2代表进入发送请求状态,其开始的时间为请求发送开始的时机。当状态2重新转入状态1的时候,代表一次请求发送结束,进入下一次请求。
每个节点(如图5中的A、B和C)的收发确认后,还可以假设所有的报文收发都是嵌套进行的,即收到了别人的报文后,该节点发出的所有报文和从其它节点收到的保存都是为了处理最开始接受到的报文请求而进行的,基于这个假设,我们可以通过不同报文时间时间间隔关系的嵌套,从而计算出每个网络报文链路情况。
如图5所示,1、2、3、4、5、6是同一个链路的请求,由于2、3、4、5都在请求1、6间隔内部,所以它们认为是1、6对应的链路的一部分。
在一个实施例中,还包括:采用函数栈对每一次事件或函数执行过程中上下文切换时产生的函数调用栈进行采集并存储。
在本实施例中,利用eBPF工具的eBPF钩子开发的函数栈进行调用情况监控,通过每次上下文切换触发的时候,将函数调用栈保存下来,通过统计每次保存下来的函数调用中关键的系统函数的统计和其对应的上下文切换时间累计,来分析当前程序可能存在的问题。
可选地,在采用函数栈对每一次事件或函数执行过程中上下文切换时产生的函数调用栈进行采集时可以采用latencyTop函数地方式进行。
应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
上述本发明公开的实施例中详细描述了一种方法,对于本发明公开的上述方法可采用多种形式的设备实现,因此本发明还公开了对应上述方法的的配置装置,下面给出具体的实施例进行详细说明。
请参阅附图6,为本发明实施例公开的一种基于eBPF的微服务系统性能检测装置,主要包括:
控制指令接收模块602,用于接收集群监控节点发送的控制指令;控制指令包括需要采集的数据种类信息;
性能指标参数采集模块604,用于在与数据种类信息相对应的事件或函数执行时,采集事件或函数执行过程中的性能指标参数;
性能指标参数发送模块606,用于将性能指标参数发送至集群监控节点,其中集群监控节点用于根据性能指标参数确定微服务的系统性能。
在一个实施例中,控制指令包括采集方式信息;性能指标参数采集模块,还用于根据采集方式信息相对应的采集方式采集事件或函数执行过程中的性能指标参数。
在一个实施例中,性能指标参数采集模块,还用于采用eBPF工具采集事件或函数执行过程中的性能指标参数。
在一个实施例中,还包括:
性能指标参数处理模块,用于对性能指标参数进行统一格式处理,得到统一格式的性能指标参数。
在一个实施例中,性能指标参数包括网络报文链路;性能指标参数采集模块包括:
报文获取筛选模块,用于获取与所述微服务相关的所有报文,并筛选出与任一个所述微服务相关的报文;
会话得到模块,用于根据报文的四元组信息对筛选出的报文进行分类,得到各会话;
有限状态机构建模块,用于根据每一个所述会话构建有限状态机;
网络报文链路确定模块,用于根据所述有限状态机确定网络报文链路。
在一个实施例中,还包括:
函数调用栈采集存储模块,用于采用函数栈对每一次事件或函数执行过程中上下文切换时产生的函数调用栈进行采集并存储。
在一个实施例中,性能指标参数包括网络请求处理时间、CPU占用率、内存使用率以及日志读写。
关于基于eBPF的微服务系统性能检测装置的具体限定可以参见上文中对于基于eBPF的微服务系统性能检测方法的限定,在此不再赘述。上述基于eBPF的微服务系统性能检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明实施例还提供了一种基于eBPF的微服务系统性能检测系统,如图1所示,包括集群监控节点和至少一个监控节点;所述集群监控节点连接所述监控节点;其中,所述集群监控节点和所述监控节点设置于不同的终端设备中或同一个终端设备的不同虚拟机中;
监控节点用于执行任意的基于eBPF的微服务系统性能检测方法实施例中的方法步骤;
集群监控节点用于发送的控制指令至各监控节点,并接收各监控节点采集性能指标参数,根据性能指标参数进行全局分析确定微服务的系统性能。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收集群监控节点发送的控制指令;控制指令包括需要采集的数据种类信息;在与数据种类信息相对应的事件或函数执行时,采集事件或函数执行过程中的性能指标参数,并把性能指标参数发送至集群监控节点,其中集群监控节点用于根据性能指标参数确定微服务的系统性能。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:控制指令包括采集方式信息;在采集事件或函数执行过程中的性能指标参数的步骤中,包括:根据采集方式信息相对应的采集方式采集事件或函数执行过程中的性能指标参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:采集事件或函数执行过程中的性能指标参数的步骤中,包括:采用eBPF工具采集事件或函数执行过程中的性能指标参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在把性能指标参数发送至集群监控节点的步骤之前,还包括:对性能指标参数进行统一格式处理,得到统一格式的性能指标参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:性能指标参数包括网络报文链路;在采集事件或函数执行过程中的性能指标参数的步骤中,包括:获取与微服务相关的所有报文,并筛选出与任一个微服务相关的报文;根据报文的四元组信息对筛选出的报文进行分类,得到各会话;根据每一个会话构建有限状态机;根据有限状态机确定网络报文链路。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:还包括:采用函数栈对每一次事件或函数执行过程中上下文切换时产生的函数调用栈进行采集并存储。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:性能指标参数包括网络请求处理时间、CPU占用率、内存使用率以及日志读写。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种基于eBPF的微服务系统性能检测方法,所述方法应用于设有微服务的监控节点,其特征在于,包括以下步骤:
接收集群监控节点发送的控制指令;所述控制指令包括需要采集的数据种类信息;
在与所述数据种类信息相对应的事件或函数执行时,采集所述事件或函数执行过程中的性能指标参数,并把所述性能指标参数发送至所述集群监控节点,其中所述集群监控节点用于根据所述性能指标参数确定所述微服务的系统性能;
所述性能指标参数包括网络报文链路;在采集所述事件或函数执行过程中的性能指标参数的步骤中,包括:
获取与所述微服务相关的所有报文,并筛选出与任一个所述微服务相关的报文;
根据报文的四元组信息对筛选出的报文进行分类,得到各会话;
根据每一个所述会话构建有限状态机;
根据所述有限状态机确定网络报文链路。
2.根据权利要求1所述的方法,其特征在于,所述控制指令包括采集方式信息;在采集所述事件或函数执行过程中的性能指标参数的步骤中,包括:
根据所述采集方式信息相对应的采集方式采集所述事件或函数执行过程中的性能指标参数。
3.根据权利要求1所述的方法,其特征在于,采集所述事件或函数执行过程中的性能指标参数的步骤中,包括:
采用eBPF工具采集所述事件或函数执行过程中的性能指标参数。
4.根据权利要求1-3所述所述的方法,其特征在于,在把所述性能指标参数发送至所述集群监控节点的步骤之前,还包括:
对所述性能指标参数进行统一格式处理,得到统一格式的性能指标参数。
5.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
采用函数栈对每一次所述事件或函数执行过程中上下文切换时产生的函数调用栈进行采集并存储。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述性能指标参数包括网络请求处理时间、CPU占用率、内存使用率以及日志读写。
7.一种基于eBPF的微服务系统性能检测装置,其特征在于,包括:
控制指令接收模块,用于接收集群监控节点发送的控制指令;所述控制指令包括需要采集的数据种类信息;
性能指标参数采集模块,用于在与所述数据种类信息相对应的事件或函数执行时,采集所述事件或函数执行过程中的性能指标参数;
性能指标参数发送模块,用于将所述性能指标参数发送至所述集群监控节点,其中所述集群监控节点用于根据所述性能指标参数确定所述微服务的系统性能;
性能指标参数包括网络报文链路;性能指标参数采集模块包括:
报文获取筛选模块,用于获取与所述微服务相关的所有报文,并筛选出与任一个所述微服务相关的报文;
会话得到模块,用于根据报文的四元组信息对筛选出的报文进行分类,得到各会话;
有限状态机构建模块,用于根据每一个所述会话构建有限状态机;
网络报文链路确定模块,用于根据所述有限状态机确定网络报文链路。
8.一种基于eBPF的微服务系统性能检测系统,其特征在于,包括集群监控节点和至少一个监控节点;所述集群监控节点连接所述监控节点;其中,所述集群监控节点和所述监控节点设置于不同的终端设备中、同一个终端设备的不同虚拟机或同一个虚拟机中;
所述监控节点用于执行权利要求1-6所述方法的步骤;
所述集群监控节点用于发送的控制指令至各所述监控节点,并接收各所述监控节点采集所述性能指标参数,根据所述性能指标参数进行全局分析确定所述微服务的系统性能。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6所述方法的步骤。
CN202011119820.4A 2020-10-19 2020-10-19 基于eBPF的微服务系统性能检测方法、装置和系统 Active CN112256542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011119820.4A CN112256542B (zh) 2020-10-19 2020-10-19 基于eBPF的微服务系统性能检测方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011119820.4A CN112256542B (zh) 2020-10-19 2020-10-19 基于eBPF的微服务系统性能检测方法、装置和系统

Publications (2)

Publication Number Publication Date
CN112256542A CN112256542A (zh) 2021-01-22
CN112256542B true CN112256542B (zh) 2022-02-08

Family

ID=74243858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011119820.4A Active CN112256542B (zh) 2020-10-19 2020-10-19 基于eBPF的微服务系统性能检测方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112256542B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794605B (zh) * 2021-09-10 2023-03-14 杭州谐云科技有限公司 一种基于eBPF的内核丢包检测方法、系统和装置
CN114726633B (zh) * 2022-04-14 2023-10-03 中国电信股份有限公司 流量数据处理方法及装置、存储介质及电子设备
CN114979303B (zh) * 2022-04-29 2024-04-05 京东科技信息技术有限公司 网络数据包的服务质量处理方法、装置、设备和可读介质
CN114911615B (zh) * 2022-05-06 2023-05-30 安超云软件有限公司 微服务运行时智能预测调度的方法及应用
CN115250267B (zh) * 2022-07-21 2024-03-01 平安科技(深圳)有限公司 微服务会话管理方法、装置、计算机设备及存储介质
CN116244160B (zh) * 2023-05-09 2023-08-04 江苏博云科技股份有限公司 一种无侵入性能分析方法、系统、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888550A (zh) * 2016-09-30 2018-04-06 腾讯科技(深圳)有限公司 性能指标数据采集方法和装置、策略发送方法和装置
CN109672662A (zh) * 2018-10-11 2019-04-23 中山大学 一种微服务环境中服务依赖关系构建方法
CN109756364A (zh) * 2018-12-07 2019-05-14 成都四方伟业软件股份有限公司 一种基于日志分析的微服务性能优化系统和分析方法
CN110309130A (zh) * 2018-03-21 2019-10-08 中国人民财产保险股份有限公司 一种用于主机性能监控的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805324B2 (en) * 2017-01-03 2020-10-13 General Electric Company Cluster-based decision boundaries for threat detection in industrial asset control system
US10484410B2 (en) * 2017-07-19 2019-11-19 Cisco Technology, Inc. Anomaly detection for micro-service communications
CN109961204B (zh) * 2017-12-26 2021-04-23 中国移动通信集团浙江有限公司 一种微服务架构下业务质量分析方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888550A (zh) * 2016-09-30 2018-04-06 腾讯科技(深圳)有限公司 性能指标数据采集方法和装置、策略发送方法和装置
CN110309130A (zh) * 2018-03-21 2019-10-08 中国人民财产保险股份有限公司 一种用于主机性能监控的方法及装置
CN109672662A (zh) * 2018-10-11 2019-04-23 中山大学 一种微服务环境中服务依赖关系构建方法
CN109756364A (zh) * 2018-12-07 2019-05-14 成都四方伟业软件股份有限公司 一种基于日志分析的微服务性能优化系统和分析方法

Also Published As

Publication number Publication date
CN112256542A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN112256542B (zh) 基于eBPF的微服务系统性能检测方法、装置和系统
CN110245078B (zh) 一种软件的压力测试方法、装置、存储介质和服务器
CN108768791B (zh) 一种信息采集配置管理系统及方法
CN112714047B (zh) 基于工控协议流量的测试方法、装置、设备及存储介质
CN107704360B (zh) 监控数据的处理方法、设备、服务器及存储介质
CN112311617A (zh) 一种配置化数据监控告警方法及系统
US20120311562A1 (en) Extendable event processing
CN108259269A (zh) 网络设备的监控方法和系统
CN111400127B (zh) 业务日志的监控方法及装置、存储介质、计算机设备
CN112350854B (zh) 一种流量故障定位方法、装置、设备及存储介质
CN110290190A (zh) 一种采集数据的方法、被监控设备及监控服务器
CN110941632A (zh) 一种数据库审计方法、装置及设备
CN113419935B (zh) 移动端性能监控方法、装置、设备及存储介质
CN117155832A (zh) 用于udp传输协议的多端无侵入录制回放测试方法及系统
CN109409948B (zh) 交易异常检测方法、装置、设备及计算机可读存储介质
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
CN112306871A (zh) 数据处理方法、装置、设备及存储介质
CN115129491B (zh) 微服务请求消息跟踪方法、生成方法、装置、介质及设备
CN108289035B (zh) 一种直观的网络及业务系统运行状态展现方法及系统
CN106933718B (zh) 性能监控方法及装置
CN113852984A (zh) 一种无线终端接入监控系统、方法、电子设备及可读存储装置
KR20180132292A (ko) 실시간 병목 자동 분석 방법 및 이러한 방법을 수행하는 장치
CN114285647A (zh) 一种分布式对象存储系统中桶异常访问检测方法及装置
CN112698829A (zh) 异常资源的定位方法和装置、存储介质及电子设备
CN116260747A (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