掌桥专利:专业的专利平台
掌桥专利
首页

一种IPC链路转发性能监测方法及装置

文献发布时间:2024-04-18 19:59:31


一种IPC链路转发性能监测方法及装置

技术领域

本申请涉及网络通信技术领域,特别涉及一种IPC链路转发性能监测方法及装置。

背景技术

IPC(Inter-Process Communication,进程间通信)是不同节点间的一种可靠通信机制,一般情况下一个节点对应一个CPU,对于分布式设备-独立运行模式而言,一个分布式设备配置有多个单板,每个单板有一个CPU,甚至一块单板有多个CPU(比如业务CPU和OAMCPU等),因此设备是多个节点的集合。

任意两个节点之间通过有且仅有的一条链路用于收发报文,各节点之间的链路是全连接结构。同时每个节点会给上层应用模块分配一个本地唯一的本地通道号来标识链接,一个IPC通道可以有多个链接,每条链接都有对应的状态。节点、链路和通道之间的关系请参见图1。

在实际应用中,由于链接通道在报文传输过程中的各种不确定因素,往往会导致出现IPC转发性能不稳定,甚至出现IPC转发故障的问题,且追溯不到发生问题的原因,降低了IPC的通信的效率、可靠性和稳定性。

发明内容

本申请提供了一种监控IPC报文转发性能的方法及装置,用以解决现有技术中存在的相关问题。

第一方面,本申请提供了一种IPC链路转发性能监测方法,应用于分布式设备的第一节点,所述方法包括:

接收第二节点发送的IPC报文,所述IPC报文携带有所述第二节点发送所述IPC报文的发送时间戳;

确定接收所述IPC报文的接收时间戳;

基于所述发送时间戳和接收时间戳,确定所述第一节点与所述第二节点之间的IPC链路传输时延;

若监测到所述IPC链路传输时延大于预设阈值,则记录所述IPC报文对应的异常传输事件。

可选地,记录所述IPC报文对应的异常传输事件的步骤包括:

记录所述IPC报文,所述IPC报文对应的收发节点和收发所述IPC报文的时间。

可选地,所述方法还包括:

接收用户发送的异常传输事件查询指令,所述异常传输事件查询指令包括至少一个查询条件;

向用户展示匹配所述至少一个查询条件的目标异常传输事件。

可选地,所述IPC报文还携带有报文序列号;所述方法还包括:

通过判断接收到的,所述第二节点发送的各IPC报文的报文序列号是否连续,以监测所述第二节点与所述第二节点之间是否存在IPC链路传输丢包的情况。

可选地,所述方法还包括:

若监测到所述IPC链路传输时延大于预设阈值,和/或,监测到所述第二节点与所述第二节点之间存在IPC链路传输丢包,则生成所述IPC链路传输异常的告警。

第二方面,本申请提供了一种IPC链路转发性能监测装置,应用于分布式设备的第一节点,所述装置包括:

接收单元,用于接收第二节点发送的IPC报文,所述IPC报文携带有所述第二节点发送所述IPC报文的发送时间戳;

确定单元,用于确定接收所述IPC报文的接收时间戳;

所述确定单元还用于,基于所述发送时间戳和接收时间戳,确定所述第一节点与所述第二节点之间的IPC链路传输时延;

监测单元,用于监测到所述IPC链路传输时延大于预设阈值;

记录单元,用于记录所述IPC报文对应的异常传输事件。

可选地,记录所述IPC报文对应的异常传输事件时,所述记录单元具体用于:

记录所述IPC报文,所述IPC报文对应的收发节点和收发所述IPC报文的时间。

可选地,所述装置还包括展示单元:

所述接收单元还用于,接收用户发送的异常传输事件查询指令,所述异常传输事件查询指令包括至少一个查询条件;

所述展示单元用于,向用户展示匹配所述至少一个查询条件的目标异常传输事件。

可选地,所述IPC报文还携带有报文序列号;

所述监测单元还用于,通过判断接收到的,所述第二节点发送的各IPC报文的报文序列号是否连续,以监测所述第二节点与所述第二节点之间是否存在IPC链路传输丢包的情况。

可选地,所述装置还包括告警单元:

若所述监测单元监测到所述IPC链路传输时延大于预设阈值,和/或,监测到所述第二节点与所述第二节点之间存在IPC链路传输丢包,则所述告警单元用于,生成所述IPC链路传输异常的告警。

第三方面,本申请实施例提供一种IPC链路转发性能监测装置,该IPC链路转发性能监测装置包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。

综上可知,本申请实施例提供的IPC链路转发性能监测方法,应用于分布式设备的第一节点,该方法包括:接收第二节点发送的IPC报文,所述IPC报文携带有所述第二节点发送所述IPC报文的发送时间戳;确定接收所述IPC报文的接收时间戳;基于所述发送时间戳和接收时间戳,确定所述第一节点与所述第二节点之间的IPC链路传输时延;若监测到所述IPC链路传输时延大于预设阈值,则记录所述IPC报文对应的异常传输事件。

采用本申请实施例提供的IPC,应用于分布式设备的第一节点,该方法包括:接收第二节点发送的IPC报文,通过引入时戳,可以准确测量IPC报文的驻留时间,帮助定位通信链路中的性能瓶颈,优化系统性能;利用序报文序列号来检测和处理IPC报文的丢包情况,能够提高IPC通信的可靠性和稳定性。提升了定位IPC问题的效率,节省了定位问题人力投入。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1为一种分布式设备-独立运行模式下的节点、链路和通道之间的关系示意图;

图2为一种分布式设备-独立运行模式下的设备结构示意图;

图3为一种IPC报文处理过程示意图;

图4为本申请实施例提供的一种IPC链路转发性能监测方法的详细流程图;

图5为本申请实施例提供的一种IPC链路转发性能监测装置的结构示意图;

图6为本申请实施例提供的一种IPC链路转发性能监测装置的硬件架构示意图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

示例性的,参阅图2所示,为分布式设备-独立运行模式下的设备结构示意图;分布式设备包括SLOT 0,SLOT 1,SLOT 2和SLOT 3,分布式设备-独立运行模式下的设备,一般都是配置了多个单板,即设备内存在多个节点,当业务模块需要收集多个单板信息时都是通过内部的IPC通道,所以IPC性能稳定性和可靠性就对设备自身运行会产生的很大的影响。如果出现某个节点处理IPC消息时间过长,阻塞了IPC报文的处理。或者IPC模块自身出现故障时导致IPC报文被丢弃时,就会导致上层业务模块在同步获取数据的相关处理存在卡顿情况。

例如,获取设备内各单板CPU运行情况的命令。命令行执行之后,设备在SLOT0主控逻辑处理该命令,收集SLOT0的CPU使用的情况,然后遍历在位单板,通过IPC发送消息到该单板获取该单板的CPU运行情况,然后再通过IPC发送回SLOT0,收集对应的单板信息之后就会输出到控制台显示。如下方中log显示在收集SLOT2收集时距离上个单板之间延迟有10秒的时间。

[2023/08/03 22:03:28]Slot 0 CPU 0 CPU usage:

[2023/08/03 22:03:28] 4%in last 5 seconds

[2023/08/03 22:03:28] 3%in last 1 minute

[2023/08/03 22:03:28] 3%in last 5 minutes

[2023/08/03 22:03:28]

[2023/08/03 22:03:28]Slot 1 CPU 0 CPU usage:

[2023/08/03 22:03:28] 4%in last 5 seconds

[2023/08/03 22:03:28] 3%in last 1 minute

[2023/08/03 22:03:28] 3%in last 5 minutes

[2023/08/03 22:03:28]

[2023/08/03 22:03:39]Slot 2 CPU 0 CPU usage:

[2023/08/03 22:03:39] 10%in last 5 seconds

[2023/08/03 22:03:39] 9%in last 1 minute

[2023/08/03 22:03:39] 10%in last 5 minutes

[2023/08/03 22:03:39]

[2023/08/03 22:03:39]Slot 3 CPU 0 CPU usage:

[2023/08/03 22:03:39] 7%in last 5 seconds

[2023/08/03 22:03:39] 8%in last 1 minute

[2023/08/03 22:03:39] 8%in last 5 minutes

而对于该问题处理,需要追溯到该时间点内排查IPC通道是否存在转发故障,从而造成问题。IPC报文处理过程如图3所示,目前的IPC进程在用户态,IPC消息处理要通过IPC进程构造IPC报文下发到内核,再通过IPC链路转发到对应的节点,然后通过内核上报给IPC进程,然后再由IPC进程处理报文。

目前,并没有一种IPC内部转发性能的监控机制,从而无法判断出现故障时,是否存在IPC转发问题,无法实时监控IPC转发流程中是否存在内部处理造成的耗时以及各阶段是否存在丢包情况。

本申请实施例提供了一种实时监测IPC链路转发性能的方案。

示例性的,参阅图4所示,为本申请实施例提供的一种IPC链路转发性能监测方法的详细流程图,该方法应用于分布式设备的第一节点,该方法包括以下步骤:

步骤100:接收第二节点发送的IPC报文,所述IPC报文携带有所述第二节点发送所述IPC报文的发送时间戳;

需要说明的是,本申请实施例中,第一节点,第二节点指的是分布式设备的任一节点(单板),第一节点的IPC进程构建,发送IPC报文(具体业务报文)给第二节点时,在构建的IPC报文(如报文头)中携带一个发送时间戳。第一节点的IPC进程将该IPC报文发往第一节点的内核,进行IPC芯片发包;第二节点的内核IPC芯片收到该IPC报文后,将该报文转发给第二节点的IPC进程进行处理。

步骤110:确定接收所述IPC报文的接收时间戳;

具体地,本申请实施例中,第二节点的IPC进程接收到该IPC报文后,确定接收该IPC报文的接收时间戳。

实际应用中,分布式设备的各节点之间的时间已经基于硬件实现达到ns精度,那么,发送时间戳的精度可以精准到ns精度。需要说明的是,实际应用场景中,可以基于不同的IPC性能要求决定报文填充时间戳的精度,本申请实施例中,在此不做具体限定。

步骤120:基于所述发送时间戳和接收时间戳,确定所述第一节点与所述第二节点之间的IPC链路传输时延;

具体地额,基于该接收时间戳和发送时间戳,计算第二节点与第一节点之间的IPC链路转发该IPC报文的传输时延。

步骤130:若监测到所述IPC链路传输时延大于预设阈值,则记录所述IPC报文对应的异常传输事件。

本申请实施例中,针对各IPC链路(不同节点间的IPC链路)设置有预设阈值,其中,各IPC链路的预设阈值可以相同,也可以不同。接着,判断计算出的,第一节点与第二节点之间的IPC链路传输时延是否大于预设阈值,若大于,则确定传输时延过大,IPC链路传输异常,记录该异常传输事件。

具体地,记录所述IPC报文对应的异常传输事件时,一种较佳地实现方式为:记录所述IPC报文,所述IPC报文对应的收发节点和收发所述IPC报文的时间。

也就是说,根据预先设置的传输延时阈值来判断该IPC链路传输时延值是否在存在合理范围内,如果不在合理的范围内,则会将该IPC报文、收发该IPC报文的节点、收发该IPC报文的时间戳进行记录。

进一步地,接收用户发送的异常传输事件查询指令,所述异常传输事件查询指令包括至少一个查询条件;向用户展示匹配所述至少一个查询条件的目标异常传输事件。

例如,用户下分布式设备发送查询第一节点与第二之间(查询条件1),某一时间段(查询条件2)的异常传输事件查询指令,那么,第一节点/第二节点就可以将本地记录的,匹配上述查询条件的目标异常传输事件展示给用户。

实际应用中,还可以基于不同的传输链路节点,对IPC链路传输延迟信息进行整合,得到last 5s、last 30s、last 60s、last300s这样的一个时间段的IPC链路平均传输延迟。那么,对于之前提到的命令行读取各节点CPU使用信息显示慢问题,就可以通过查看该时间内是否存在SLOT0←→SLOT2的IPC链路传输出现时延过大的情况,同时也可以分析敲命令时间内的传输时延平均值来判断是否存在阻塞情况。

通过记录的信息,可以根据超过IPC传输时延阈值的异常时间点记录,判断是否和故障时间点存在重合,从而进行故障分析。

进一步地,本申请实施例中,所述IPC报文还携带有报文序列号;所述方法还包括以下步骤:

通过判断接收到的所述第二节点发送的各IPC报文的报文序列号是否连续,以监测所述第二节点与所述第二节点之间是否存在IPC链路传输丢包的情况。

针对节点A(如,第一节点)至节点B(如,第二节点)之间的IPC链路,针对第二节点发往第一节点的各IPC报文,在IPC报文头中携带报文序列号,具体地,可以设置报文序列号统计周期,在当前周期内,连续发往第一报文的若干IPC报文均携带连续的报文序列号,那么,第一节点在当前周期内接收到第二节点发送的各IPC报文后,即可基于各IPC报文的报文序列号是否连续来判断IPC链路(第二节点->第一节点之间的IPC链路)是否存在IPC报文丢失的情况。第一节点发往第二节点的各IPC报文,也可以基于预设规则携带报文序列号,那么,第二节点也可以基于当前周期接收到的第一节点发送的各IPC报文携带的报文序列号是否连续来判断IPC链路(第一节点->第二节点之间的IPC链路)是否存在IPC报文丢失的情况。

进一步地,本申请实施例中,若监测到所述IPC链路传输时延大于预设阈值,和/或,监测到所述第二节点与所述第二节点之间存在IPC链路传输丢包,则生成所述IPC链路传输异常的告警。

也就是说,实时监测各IPC链路的转发性能,若发现性能不能满足预设要求/链路发生故障,则可以生成告警信息,以告知用户/管理人员,及时进行问题排查,提升IPC通信稳定性和可靠性。

例如,结合图3所示,确定IPC报文在③阶段内核统计报文序列号时,在命令执行的卡顿的时间点内存在报文序列号断续情况;然后,排查①→②阶段报文序列号并没有断续的情况,那么,就可以快速排查IPC链路存在问题,进而生成对应的告警信息,以提示用户/管理员及时进行问题排查。

示例性的,参阅图5所示,为本申请实施例提供的一种IPC链路转发性能监测装置的结构示意图,该装置应用于分布式设备的第一节点,该装置包括:

接收单元50,用于接收第二节点发送的IPC报文,所述IPC报文携带有所述第二节点发送所述IPC报文的发送时间戳;

确定单元51,用于确定接收所述IPC报文的接收时间戳;

确定单元51还用于,基于所述发送时间戳和接收时间戳,确定所述第一节点与所述第二节点之间的IPC链路传输时延;

监测单元52,用于监测到所述IPC链路传输时延大于预设阈值;

记录单元53,用于记录所述IPC报文对应的异常传输事件。

可选地,记录所述IPC报文对应的异常传输事件时,记录单元53具体用于:

记录所述IPC报文,所述IPC报文对应的收发节点和收发所述IPC报文的时间。

可选地,所述装置还包括展示单元:

接收单元50还用于,接收用户发送的异常传输事件查询指令,所述异常传输事件查询指令包括至少一个查询条件;

所述展示单元用于,向用户展示匹配所述至少一个查询条件的目标异常传输事件。

可选地,所述IPC报文还携带有报文序列号;

监测单元52还用于,通过判断接收到的,所述第二节点发送的各IPC报文的报文序列号是否连续,以监测所述第二节点与所述第二节点之间是否存在IPC链路传输丢包的情况。

可选地,所述装置还包括告警单元:

若监测单元52监测到所述IPC链路传输时延大于预设阈值,和/或,监测到所述第二节点与所述第二节点之间存在IPC链路传输丢包,则所述告警单元用于,生成所述IPC链路传输异常的告警。

以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

进一步地,本申请实施例提供的IPC链路转发性能监测装置,从硬件层面而言,所述IPC链路转发性能监测装置的硬件架构示意图可以参见图6所示,所述IPC链路转发性能监测装置可以包括:存储器60和处理器61,

存储器60用于存储程序指令;处理器61调用存储器60中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

可选地,本申请还提供一种分布式设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。

可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

相关技术
  • 一种传感器网络的故障诊断装置及其故障诊断方法
  • 霍尔传感器的故障诊断方法、装置及转向控制系统
  • 适用于故障诊断的霍尔传感器处理方法及装置
技术分类

06120116521410