CN117527649A - 链路故障的检测方法和装置 - Google Patents
链路故障的检测方法和装置 Download PDFInfo
- Publication number
- CN117527649A CN117527649A CN202311541618.4A CN202311541618A CN117527649A CN 117527649 A CN117527649 A CN 117527649A CN 202311541618 A CN202311541618 A CN 202311541618A CN 117527649 A CN117527649 A CN 117527649A
- Authority
- CN
- China
- Prior art keywords
- link
- state
- target
- parameter
- training
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 92
- 238000012549 training Methods 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims abstract description 93
- 230000008569 process Effects 0.000 claims abstract description 38
- 238000012360 testing method Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002093 peripheral effect Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 5
- 230000002159 abnormal effect Effects 0.000 description 12
- 230000005856 abnormality Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000007682 pyridoxal 5'-phosphate Nutrition 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种链路故障的检测方法和装置,该方法包括:使用预设代码对目标链路进行链路训练,并通过日志记录器记录目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,预设代码中包含一组预设断点,一组预设断点中的每个预设断点用于触发日志记录器记录目标链路处于多个链路状态中的一个链路状态下的链路状态日志;从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息;基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,故障检测结果用于指示多个链路状态中,目标链路存在故障的链路状态。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种链路故障的检测方法和装置。
背景技术
在PCIe(Peripheral Component Interconnect express,一种高速串行计算机扩展总线标准)链路可以正常工作之前,需要对PCIe链路进行链路训练。PCIe的链路训练是指通过初始化PCIe链路的物理层、端口配置信息、发送接收模块以及相关的链路的状态,并了解链路对端的拓扑结构,最终让PCIe链路两端的设备能够进行数据通信的过程。如果在PCIe链路训练过程中发生异常,导致链路降带宽或者降速,此时就需要抓取链路训练状态机来确认是在哪个阶段发生的。
现有技术中,通常使用外接设备(如,协议分析仪),在链路训练过程中抓取链路训练状态机,虽然可以较为全面地观察PCIe链路训练状态,但是连接协议分析仪后,在部分情况下会改变PCIe的物理链路,导致在发生降带宽等异常时,无法及时抓取到记录带宽等相关信息的状态日志。
因此,现有技术中链路故障的检测方式,存在链路训练中故障检测的准确性较低的问题。
发明内容
本申请实施例提供了一种链路故障的检测方法和装置,以至少解决现有技术中链路故障的检测方式存在链路训练中故障检测的准确性较低的问题。
根据本申请的一个实施例,提供了一种链路故障的检测方法,包括:使用预设代码对目标链路进行链路训练,并通过日志记录器记录所述目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,所述目标链路为服务器的主机与所述服务器的外设之间进行数据传输的通道,所述目标链路的链路训练状态机包含多个链路状态,所述预设代码中包含一组预设断点,所述一组预设断点中的每个预设断点用于触发所述日志记录器记录所述目标链路处于所述多个链路状态中的一个链路状态下的链路状态日志;从所述一组链路状态日志中提取出所述目标链路在所述多个链路状态中的每个链路状态下的链路状态参数的参数信息;基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,其中,所述故障检测结果用于指示所述多个链路状态中,所述目标链路存在故障的链路状态。
在一个示例性实施例中,所述从所述一组链路状态日志中提取出所述目标链路在所述多个链路状态中的每个链路状态下的链路状态参数的参数信息,包括以下至少之一:从所述一组链路状态日志中提取出所述目标链路在所述每个链路状态下的链路参数的参数信息,其中,所述链路参数包括以下至少之一:链路带宽,链路速率;从所述一组链路状态日志中提取出所述目标链路在所述每个链路状态下的链路切换参数的参数信息,其中,所述链路切换参数用于描述从对应的链路状态切换到所述多个链路状态中的至少一个链路状态的状态切换关系。
在一个示例性实施例中,所述基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,包括:在链路状态参数包含链路参数的情况下,判断所述多个链路状态中是否存在满足第一故障条件的链路状态,其中,所述链路参数包括以下至少之一:链路带宽,链路速率,所述第一故障条件为所述目标链路在一个链路状态下的所述链路参数的参数值不属于为所述一个链路状态预设的所述链路参数的参数值范围;在所述多个链路状态中存在满足所述第一故障条件的第一链路状态的情况下,生成第一检测结果,其中,所述第一检测结果用于指示所述第一链路状态为所述目标链路存在故障的链路状态。
在一个示例性实施例中,所述基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,包括:在链路状态参数包含链路切换参数的情况下,判断所述多个链路状态中是否存在满足第二故障条件的链路状态,其中,所述链路切换参数用于描述从对应的链路状态切换到所述多个链路状态中的至少一个链路状态的状态切换关系,所述第二故障条件为所述目标链路在一个链路状态下的所述链路切换参数的参数信息所指示的状态切换关系与为所述一个链路状态预设的状态切换关系不一致;在所述多个链路状态中存在满足所述第二故障条件的第二链路状态的情况下,生成第二检测结果,其中,所述第二检测结果用于指示所述第二链路状态为所述目标链路存在故障的链路状态。
在一个示例性实施例中,在所述使用预设代码对目标链路进行链路训练之前,所述方法还包括:通过联合测试工作组调试器与目标客户端建立通信连接,其中,所述联合测试工作组接口的驱动集成在所述服务器的基板管理控制器中;响应于通过所述联合测试工作组接口接收到的所述目标客户端发送的链路训练配置命令,执行链路训练配置脚本;其中,所述链路训练配置命令用于触发执行所述链路训练配置脚本,在所述链路训练配置脚本中设置有以下至少之一的配置命令:测试圈数的配置命令,间隔时间的配置命令,日志保存路径的配置命令,日志名称的配置命令,所述测试圈数为对所述目标链路进行链路训练的次数,所述间隔时间为在对上述目标链路进行链路训练的过程中,每条命令执行完后的停顿时间。
在一个示例性实施例中,在所述使用预设代码对目标链路进行链路训练之前,所述方法还包括:响应于获取到的重启命令,控制所述服务器执行重启操作,其中,对所述目标链路进行链路训练是在所述服务器开机的过程中执行的。
在一个示例性实施例中,在所述使用预设代码对目标链路进行链路训练之前,所述方法还包括:对所述每个预设断点的生效状态进行检测,以确定所述每个预设断点是否已生效;在所述一组预设断点中存在未生效断点的情况下,按照预设周期对所述未生效断点的生效状态持续进行检测,直到所述未生效断点已生效;其中,对所述目标链路进行链路训练是在所述一组预设断点均已生效的情况下执行的。
根据本申请的另一个实施例,提供了一种链路故障的检测装置,包括:第一执行模块,用于使用预设代码对目标链路进行链路训练,并通过日志记录器记录所述目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,所述目标链路为服务器的主机与所述服务器的外设之间进行数据传输的通道,所述目标链路的链路训练状态机包含多个链路状态,所述预设代码中包含一组预设断点,所述一组预设断点中的每个预设断点用于触发所述日志记录器记录所述目标链路处于所述多个链路状态中的一个链路状态下的链路状态日志;提取模块,用于从所述一组链路状态日志中提取出所述目标链路在所述多个链路状态中的每个链路状态下的链路状态参数的参数信息;第一检测模块,用于基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,其中,所述故障检测结果用于指示所述多个链路状态中,所述目标链路存在故障的链路状态。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,采用在进行链路训练的代码中设置断点以自动读取链路训练状态和相关参数,并在确定异常时自动抓取链路状态日志中所记录的信息从而确定故障所对应的链路状态的方式,由于仅通过代码就可以完成对链路日志的抓取,无需借助外接设备在发生异常时抓取链路训练状态机来确定故障,不会对目标链路的物理层面产生影响,可以提高对链路状态日志的获取效率,进而提高对链路训练中故障检测的准确性,因此,可以解决现有技术中链路故障的检测方式存在链路训练中故障检测的准确性较低的问题,达到提高链路训练中故障检测的准确性的技术效果。
附图说明
图1是根据本申请实施例的一种链路故障的检测方法的硬件环境示意图;
图2是根据本申请实施例的一种链路故障的检测方法的流程示意图;
图3是根据本申请实施例的另一种链路故障的检测方法的流程示意图;
图4是根据本申请实施例的一种链路故障的检测结果的示意图;
图5是根据本申请实施例的又一种链路故障的检测方法的流程示意图;
图6是根据本申请实施例的又一种链路故障的检测方法的流程示意图;
图7是根据本申请实施例的又一种链路故障的检测方法的流程示意图;
图8是根据本申请实施例的一种链路故障的检测装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种链路故障的检测方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的链路故障的检测方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种链路故障的检测方法,图2是根据本申请实施例的一种链路故障的检测方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S202,使用预设代码对目标链路进行链路训练,并通过日志记录器记录目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,目标链路为服务器的主机与服务器的外设之间进行数据传输的通道,目标链路的链路训练状态机包含多个链路状态,预设代码中包含一组预设断点,一组预设断点中的每个预设断点用于触发日志记录器记录目标链路处于多个链路状态中的一个链路状态下的链路状态日志。
本实施例中的链路故障的检测方法可以应用到对目标链路进行训练的场景。这里的目标链路,可以是PCIe(peripheral component interconnect express,一种高速串行计算机扩展总线标准)链路。链路训练是由物理层控制的基于硬件(非软件)的过程,主要目的是初始化PCIe链路的物理层、端口配置信息和相应端口的链路状态,并了解链路对端的拓扑结构,以便PCIe链路两端的设备进行数据通信。在PCIe链路训练过程中,PCIe设备会进行一系列的协商和测试,以确定链路的带宽、延迟和稳定性等参数,从而确保链路的可靠性和性能。
在PCIe链路可以正常工作之前,需要对PCIe链路进行链路训练。链路训练的硬件逻辑实现在物理层,整个训练过程由LTSSM(Link Training and Status State Machine,链路训练状态机)完成,不需要其它层的参与。
链路训练状态机位于PCIe总线的物理层之中,物理层的链路训练和LTSSM模块负责配置和初始化一个设备的物理层、端口的发送器和接收器以及相关的链路,以状态机来管理和描述这个过程。链路训练状态机涵盖了11个状态,包括检测、轮询、配置、复位、L0、L0s、L1、L2、热复位、回环、禁用。
如图3所示,当设备之间开始建立连接时,LTSSM从检测状态开始,然后进入轮询状态,等待对方回应确认连接。如果确认完成,则进入配置状态,进行链路配置。之后,LTSSM进入L0状态,表明链路处于活动状态。如果设备需要低功耗状态,则可以进入L0s或L1状态。如果出现错误,则可能会进入L2状态或回环状态进行修复。
在上述状态中,检测状态是在基本复位或者软件产生的热复位命令后进入的初始状态,在复位80ms内进入这个状态,检测状态也能从其它状态进入。
轮询状态是链路训练和初始化过程中的第一个时段,在这个过程中两相连设备互相发送PLP(一种数据包)。
配置状态的主要功能是为每一条通道分配链路号和通路号,去除同一个链路各通路间的时差。
L0状态是PCIe链路可以正常工作的电源状态。
L0s状态表示设备处于低功耗状态,但仍能在短时间内快速恢复L0状态,以响应来自系统的请求。
L1状态表示设备处于更加严格的低功耗模式,需要一些时间才能恢复到L0状态,在L1状态下仍然保持接收来自系统的信号,但不会进行数据传输。
L2状态表示设备处于最低功耗模式,需较长时间才能从其恢复,此时设备已无法响应来自系统的信号,在L2状态下,设备会关闭其传输通道,以达到最低功耗状态。
复位状态是PCIe链路需要重新训练时所进入的状态,在链路信号发现错误、或者从L0s或者L1低功耗电源状态退出,或者需要调整链路速率等情况下都会进入复位状态。
回环状态是指在PCle总线上使用一对物理或逻辑通道之间的默认″回环″路径进行数据传输的状态。这种状态被用于测试和诊断PCle设备和总线的状况。在PCle回环状态下,设备发送和接收数据,但数据不会离开设备,而是通过物理或逻辑通道返回到发送设备。这个过程可以测试设备的发送和接收能力,以及信号的质量和延迟。PCle回环状态可用于测试所有PCle层,包括物理层、数据链路层和传输层。
热复位状态,在某个PCle设备发生错误时,若需要通过软件的方式对设备进行复位,该方式所对应的状态就是热复位状态。
禁用状态,即设备被禁用所对应的状态,当PCle设备的驱动程序在系统启动时没有正确加载或出现故障时,该设备可能会进入禁用状态,在这种情况下,该设备将被禁用,并且无法使用。
如果在PCIE链路训练过程中发生异常,导致链路降带宽或者降速,此时就需要抓取链路训练状态机来确认是在哪个阶段发生的。现有技术通常是使用协议分析仪等外接设备在链路训练过程中抓取链路训练状态机,在一些情况下,连接协议分析仪后,会改变物理链路,导致在发生降带宽等异常时,不容易抓取带宽相关的状态日志,从而无法确认异常是在哪个阶段发生的。
为了至少解决上述部分问题,在本实施例中,可以在开机自检相关代码处设置断点,执行代码时每遇到一个断点,读取所有PCIE端口的链路训练状态机,同时显示所有端口的链路带宽和链路速率。通过自动抓取PCIe链路训练状态机日志,可以从日志中直观地看到整个链路训练过程中链路带宽、链路速率和当前链路训练状态机状态的变化和异常,从而脱离外接设备硬件连接的约束,从软件层面实现对PCIe链路训练过程的监控。通过在链路异常时抓取PCIe链路训练状态机日志来确认异常发生的阶段,可以方便快捷地排查问题所在,而无须借助可能影响链路的外部设备来分析定位,提高分析的准确性。
需要说明的是,上述方式可以适用于各种服务器芯片架构。
在本实施例中,可以通过预设代码对目标链路进行链路训练。这里的预设代码可以是开机自检代码,也可以是开机自检代码中的部分代码。预设代码中可以包含一组预设断点,每个预设断点都可以用来触发日志记录器记录当前目标链路的链路训练的相关信息,可以包括当前链路状态参数的参数信息。这里的链路状态参数用于表示目标链路在对应的链路状态下是否正常。参数可以是当前状态的指示参数,也可以是当前链路中数据传输的参数,如传输速度、传输频率等。断点在代码中的作用是用于暂停程序的执行。
需要说明的是,上述一组链路状态日志中的每个链路状态日志可以分别与一个预设断点对应,即,每个预设断点触发日志记录器进行日志记录时,会生成一个新日志。上述一组链路状态日志中的每个链路状态日志也可以分别与一个链路状态对应,即,一个链路状态日志中会记录一个链路状态下的全部相关信息。
在使用预设程序对目标链路进行链路训练过程中,可以使用sls命令显示链路带宽、链路速率和当前链路训练状态机的状态,在链路训练完成后,使用logsnapshot命令获取日志记录器的快照。预设代码可以是一个Python(一种计算机语言)脚本,达到自动执行、自动收集和自动重启的目的。
步骤S204,从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息。
在本实施例中,可以在链路训练发生故障时(如链路训练过程中训练异常终止等故障),从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息,进而确定故障发生的阶段,也可以直接提取一组链路状态日志中目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息,确定当前是否发生故障,以及故障发生的阶段。这里的故障可以是链路训练过程和链路上发生的异常事件。
上述阶段可以是指该故障所对应的训练状态(即前述11个状态中的状态),在确定训练状态之后,根据训练状态确定故障发生原因和发生位置。如故障所对应的状态为禁用状态,可以确定是PCle设备的驱动程序发生故障。
步骤S206,基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,其中,故障检测结果用于指示多个链路状态中,目标链路存在故障的链路状态。
在本实施例中,根据提取出的目标链路在每个链路状态下的链路状态参数的参数信息,可以查找出参数信息不满足预设阈值或者预设条件的参数,再根据查找出的参数所对应的状态,进而确定故障检测结果。
如图4所示,故障检测结果可以包括确定出的发生故障的链路状态,故障所对应的异常数据,以及推测出的故障发生的原因。
通过上述步骤,使用预设代码对目标链路进行链路训练,并通过日志记录器记录目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,目标链路为服务器的主机与服务器的外设之间进行数据传输的通道,目标链路的链路训练状态机包含多个链路状态,预设代码中包含一组预设断点,一组预设断点中的每个预设断点用于触发日志记录器记录目标链路处于多个链路状态中的一个链路状态下的链路状态日志;从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息;基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,其中,故障检测结果用于指示多个链路状态中,目标链路存在故障的链路状态,解决了现有技术中链路故障的检测方式存在链路训练中故障检测的准确性较低的问题,提高了链路训练中故障检测的准确性。
其中,上述步骤的执行主体可以为服务器、终端等,但不限于此。
在一个示例性实施例中,从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息,包括以下至少之一:
S11,从一组链路状态日志中提取出目标链路在每个链路状态下的链路参数的参数信息,其中,链路参数包括以下至少之一:链路带宽,链路速率;
S12,从一组链路状态日志中提取出目标链路在每个链路状态下的链路切换参数的参数信息,其中,链路切换参数用于描述从对应的链路状态切换到多个链路状态中的至少一个链路状态的状态切换关系。
在本实施例中,链路参数的参数信息可以包括链路带宽和/或链路速率。链路带宽是链路中所能够传输数据的最大容量,表示在一段时间内网络传输介质所能够传输的数据量的大小。链路速率是链路中实际传输的数据量的大小。链路带宽和链路速率均可以用位/秒(bps)来表示。
此外,链路参数的参数信息还可以包括链路切换参数的参数信息。通过链路切换参数的参数信息,可以确定链路训练过程中前后两个相邻状态,即当前时刻所处的状态,以及当前状态的前一状态,从而确定状态切换是否正常。
通过本实施例,直接根据链路状态日志中记录的信息,确定链路带宽/链路速率或者链路切换是否存在异常,可以提高故障检测的全面性,同时,可以提高故障检测的效率。
在一个示例性实施例中,基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,包括:
S21,在链路状态参数包含链路参数的情况下,判断多个链路状态中是否存在满足第一故障条件的链路状态,其中,链路参数包括以下至少之一:链路带宽,链路速率,第一故障条件为目标链路在一个链路状态下的链路参数的参数值不属于为一个链路状态预设的链路参数的参数值范围;
S22,在多个链路状态中存在满足第一故障条件的第一链路状态的情况下,生成第一检测结果,其中,第一检测结果用于指示第一链路状态为目标链路存在故障的链路状态。
在本实施例中,可以预设对链路参数设置参数值范围,在链路参数的参数值不符合对应的参数值范围时,确定该链路参数存在异常,并根据该链路参数所对应的链路状态确定当前异常的链路状态,完成对故障的定位。
需要说明的是,链路带宽和链路速率所对应的参数值范围可以是不同的,在提取到链路参数为链路带宽时,可以将提取出的带宽值与为带宽预设的参数值范围进行比较,在提取出的链路参数为链路速率时,可以将提取出的速率值与为速率预设的参数值范围进行比较。此外,不同链路状态下的链路带宽和/或链路速率所对应的参数值范围也可以是不同的。
上述生成的第一检测结果中,可以包括存在异常的链路带宽值和/或存在异常的链路速率值,也可以包括异常的链路带宽值和/或存在异常的链路速率值所对应的链路状态。此外,还可以包括基于该异常值以及链路状态分析出的可能的故障发生原因。
通过本实施例,由于链路带宽/链路速率一般可以指示至少两个传输模块之间的数据传输情况,根据链路带宽和/或链路速率中的异常数据对故障进行定位,可以提高链路训练中对故障定位的准确性,还可以提高故障定位的效率。
在一个示例性实施例中,基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,包括:
S31,在链路状态参数包含链路切换参数的情况下,判断多个链路状态中是否存在满足第二故障条件的链路状态,其中,链路切换参数用于描述从对应的链路状态切换到多个链路状态中的至少一个链路状态的状态切换关系,第二故障条件为目标链路在一个链路状态下的链路切换参数的参数信息所指示的状态切换关系与为一个链路状态预设的状态切换关系不一致;
S32,在多个链路状态中存在满足第二故障条件的第二链路状态的情况下,生成第二检测结果,其中,第二检测结果用于指示第二链路状态为目标链路存在故障的链路状态。
在本实施例中,可以预设不同状态之间的切换顺序。需要说明的是,预设的状态切换顺序可以是前述实施例中提及的11种状态的切换顺序,具体的切换顺序可以如图3所示,本实施例在此不做赘述。
在当前已确定发生故障,需要从日志记录的数据中确定故障发生的状态时,可以分析日志中记录的多个链路状态的状态切换关系,若其中存在一个链路状态,其链路切换参数的参数信息所指示的状态切换关系与为一个链路状态预设的状态切换关系不一致,则该链路状态为发生当前故障的状态。
若存在多个链路状态的链路切换参数的参数信息所指示的状态切换关系与对应预设的状态切换关系不一致,可以将与当前时间间隔最短的链路状态确定为发生当前故障的状态。在上述第二检测结果中,可以显示发生故障的链路状态,以及故障发生的时间等信息。
通过本实施例,基于日志中记录的链路状态的切换关系,确定出不按照预设状态切换关系的进行切换的训练状态,可以在提高链路训练的完整性的同时,提高故障定位的效率。
在一个示例性实施例中,在使用预设代码对目标链路进行链路训练之前,上述方法还包括:
S41,通过联合测试工作组调试器与目标客户端建立通信连接,其中,联合测试工作组接口的驱动集成在服务器的基板管理控制器中;
S42,响应于通过联合测试工作组接口接收到的目标客户端发送的链路训练配置命令,执行链路训练配置脚本;
其中,链路训练配置命令用于触发执行链路训练配置脚本,在链路训练配置脚本中设置有以下至少之一的配置命令:测试圈数的配置命令,间隔时间的配置命令,日志保存路径的配置命令,日志名称的配置命令,测试圈数为对目标链路进行链路训练的次数,间隔时间为在对上述目标链路进行链路训练的过程中,每条命令执行完后的停顿时间。
在本实施例中,可以使用联合测试工作组调试器控制目标链路进行链路训练,这里的联合测试工作组调试器可以是JTAG(Joint Test Action Group,联合测试工作组)的调试器。
与CPU调试相关的JTAG的驱动集成在BMC中,通过网络与本地客户端建立连接,可以通过JTAG对服务器进行远程调试。通过在本地客户端配置目标服务器的地址、端口号,可以实现JTAG与服务器建立远程连接。通过JTAG,可以配置CScripts(一组用于调试和验证的代码)脚本的执行环境,通过命令行可以打开脚本,在脚本中执行链路训练的相关命令。
需要说明的是,每次链路训练过程中所切换过的状态数量可以是不同的。例如,如图5所示,一次理想的链路训练中可以是检测状态-轮询状态-配置状态-L0-L0s。但在链路训练中,按照检测状态-轮询状态-配置状态-L0-L0s进行切换时,如图6所示,若在配置状态中出现异常(如配置失败),将不会切换至L0,会重新进入检测状态(即,下一次链路训练开始),因此,该次链路训练中仅包括检测状态-轮询状态-配置状态。
每条命令执行完后的间隔时间,可以用于对重要数据进行保存或记录。
可选地,由于JTAG可能不太稳定,每次进行链路训练前,可以通过reconnect命令重新连接配置JTAG。同时,在重新连接配置JTAG前,可以添加延时,留给配置JTAG命令充足的执行时间。
测试圈数可以用于设定服务器重启的时间。每重启一次服务器,就会从检测状态开始重新进行一次链路训练。重启服务器,可以是在链路训练中出现异常时进行的。此外,考虑到带宽降低是有概率性的,通过多次重启服务器可以复现概率性降带宽的现象,因此,重启服务器,也可以是在一次链路训练中没有出现降带宽现象时进行的。
可选地,在使用预设代码对目标链路进行链路训练之前,上述方法还包括:
响应于获取到的重启命令,控制服务器执行重启操作,其中,对目标链路进行链路训练是在服务器开机的过程中执行的。
由于服务器开机过程中会启动开机自检代码的运行,在服务器开机过程中进行目标链路的训练,可以使开机自检代码中的断点被合理使用,从而提高链路状态的相关信息的收集效率。
上述重启命令可以是io(0xcf9,1,0xe)命令,通过该命令自动对服务器执行关机、开机,以实现服务器的自动重启,控制服务器重启后,可以使用forcereconfig命令(一种用于重新加载或重新配置系统或应用程序的配置文件的命令)重新配置JTAG调试器的驱动程序,使其与服务器达到最佳连接状态。
通过本实施例,使用联合测试工作组调试器对服务器进行远程控制,可以提高链路训练的效率和灵活性。
在一个示例性实施例中,在使用预设代码对目标链路进行链路训练之前,上述方法还包括:
S61,对每个预设断点的生效状态进行检测,以确定每个预设断点是否已生效;
S62,在一组预设断点中存在未生效断点的情况下,按照预设周期对未生效断点的生效状态持续进行检测,直到未生效断点已生效;
其中,对目标链路进行链路训练是在一组预设断点均已生效的情况下执行的。
需要说明的是,本实施例中的断点,可以是基于服务器上的CPU Socket(CentralProcessing Unit Socket,中央处理器插槽)。插槽的作用是提供一个连接点,用于将中央处理器插入到计算机主板上。可以通过refresh命令(一种用来重新加载或更新数据的命令)扫描发现服务器上所有的CPU Socket。通过扫描到的CPU Socket,可以确定当前服务器上的CPU的数量,基于CPU的数量,使用biosscratchpad6_cfg命令(一种用于配置和管理基本输入/输出系统设置的命令)在根据post code来设置断点,post code是基本输入/输出系统对于开机自检阶段不同的步骤和状态进行区分的一个代码。
对于设置好的预设断点,可以在进行链路训练之前,先对每个预设断点的生效状态进行检测。检测方式可以是,使用biosnonstickyscratchpad7_cfg.show()命令检查断点设置是否生效,根据接收到的返回值,确定断点是否生效。在返回值与预设数值匹配的情况下,确定断点生效。在返回值与预设数值不匹配的情况下,确定断点没生效。
若存在断点没生效,可以按照预设周期对未生效断点的生效状态持续进行检测,这里的预设周期可以是几秒钟。
通过本实施例,对设置好的断点进行是否生效的判断,可以避免因断点未生效导致链路训练中的参数信息被遗漏的情况,并提高故障检测的准确性。
下面结合可选示例对本申请实施例中的链路故障的检测方法进行解释说明。本可选示例中提供了一种服务器开机过程中自动抓取PCIe链路训练状态机的方法,在JTAG与服务器建立远程连接后,设置断点自动抓取链路训练状态机日志,可以直观地看到整个链路训练过程中链路带宽、链路速率以及链路训练的整个过程和链路上发生的异常,避免协议分析仪对链路的影响。
如图7所示,本可选示例中的链路故障的检测方法的流程可以包括以下步骤:
步骤1,与CPU调试相关的JTAG的驱动集成在BMC中,通过网络与本地客户端建立连接,可以通过JTAG对服务器进行远程调试。
步骤2,在本地客户端配置好目标服务器的IP、端口号,通过JTAG与服务器建立远程连接.
步骤3,配置Cscripts脚本的执行环境,用命令行打开脚本,在脚本中执行下面步骤中的命令。
步骤4,设置测试圈数和间隔时间,设置日志保存路径和名称;其中间隔时间用来在每条命令执行完后进行停顿,留给相关命令足够的执行时间;测试圈数用来设定服务器重启的次数。
步骤5,通过reconnect命令重新连接配置JTAG。
步骤6,添加延时,留给配置JTAG命令充足的执行时间。
步骤7,通过io(0xcf9,1,0xe)命令自动对服务器执行关机-开机,以实现服务器的自动重启。
步骤8,使用forcereconfig命令再配置JTAG,确保达到最佳连接状态。
步骤9,使用refresh命令扫描发现服务器上所有的CPU Socket。
步骤10,使用biosscratchpad6_cfg命令在Socket相应的开机自检代码设置断点。
步骤11,使用biosnonstickyscratchpad7_cfg.show()命令检查断点设置是否生效,如果还未生效,几秒后再读一遍,确认断点生效后再执行下一步操作。
步骤12,启用PCIe链路上的LTSSM日志记录器来记录链路训练过程中状态的变化。
步骤13,使用sls命令显示链路带宽、链路速率和当前LTSSM状态。
步骤14,PCIe链路训练完成后,使用logsnapshot命令获取日志记录器的快照。
步骤15,在脚本中添加判断条件,打印不符合预期的带宽、速率等。
步骤16,链路训练状态机相关日志都会被保存在步骤4预先设置的路径下。
通过本可选示例,无需借助可能影响链路的外部设备来分析定位,可以提高异常分析的准确性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
在本实施例中还提供了一种链路故障的检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的链路故障的检测装置的结构框图,如图8所示,该装置包括:
第一执行模块802,用于使用预设代码对目标链路进行链路训练,并通过日志记录器记录目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,目标链路为服务器的主机与服务器的外设之间进行数据传输的通道,目标链路的链路训练状态机包含多个链路状态,预设代码中包含一组预设断点,一组预设断点中的每个预设断点用于触发日志记录器记录目标链路处于多个链路状态中的一个链路状态下的链路状态日志;
提取模块804,用于从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息;
第一检测模块806,用于基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,其中,故障检测结果用于指示多个链路状态中,目标链路存在故障的链路状态。
通过本申请实施例,使用预设代码对目标链路进行链路训练,并通过日志记录器记录目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,目标链路为服务器的主机与服务器的外设之间进行数据传输的通道,目标链路的链路训练状态机包含多个链路状态,预设代码中包含一组预设断点,一组预设断点中的每个预设断点用于触发日志记录器记录目标链路处于多个链路状态中的一个链路状态下的链路状态日志;从一组链路状态日志中提取出目标链路在多个链路状态中的每个链路状态下的链路状态参数的参数信息;基于目标链路在每个链路状态下的链路状态参数的参数信息,对目标链路进行故障检测,得到故障检测结果,其中,故障检测结果用于指示多个链路状态中,目标链路存在故障的链路状态,可以解决现有技术中链路故障的检测方式存在链路训练中故障检测的准确性较低的问题。
在一个示例性实施例中,提取模块包括以下至少之一:
第一提取子模块,用于从一组链路状态日志中提取出目标链路在每个链路状态下的链路参数的参数信息,其中,链路参数包括以下至少之一:链路带宽,链路速率;
第二提取子模块,用于从一组链路状态日志中提取出目标链路在每个链路状态下的链路切换参数的参数信息,其中,链路切换参数用于描述从对应的链路状态切换到多个链路状态中的至少一个链路状态的状态切换关系。
在一个示例性实施例中,第一检测模块包括:
第一判断子模块,用于在链路状态参数包含链路参数的情况下,判断多个链路状态中是否存在满足第一故障条件的链路状态,其中,链路参数包括以下至少之一:链路带宽,链路速率,第一故障条件为目标链路在一个链路状态下的链路参数的参数值不属于为一个链路状态预设的链路参数的参数值范围;
第一生成子模块,用于在多个链路状态中存在满足第一故障条件的第一链路状态的情况下,生成第一检测结果,其中,第一检测结果用于指示第一链路状态为目标链路存在故障的链路状态。
在一个示例性实施例中,第一检测模块包括:
第二判断子模块,用于在链路状态参数包含链路切换参数的情况下,判断多个链路状态中是否存在满足第二故障条件的链路状态,其中,链路切换参数用于描述从对应的链路状态切换到多个链路状态中的至少一个链路状态的状态切换关系,第二故障条件为目标链路在一个链路状态下的链路切换参数的参数信息所指示的状态切换关系与为一个链路状态预设的状态切换关系不一致;
第二生成子模块,用于在多个链路状态中存在满足第二故障条件的第二链路状态的情况下,生成第二检测结果,其中,第二检测结果用于指示第二链路状态为目标链路存在故障的链路状态。
在一个示例性实施例中,上述装置还包括:
建立模块,用于在使用预设代码对目标链路进行链路训练之前,通过联合测试工作组调试器与目标客户端建立通信连接,其中,联合测试工作组接口的驱动集成在服务器的基板管理控制器中;
第二执行模块,用于响应于通过联合测试工作组接口接收到的目标客户端发送的链路训练配置命令,执行链路训练配置脚本;
其中,链路训练配置命令用于触发执行链路训练配置脚本,在链路训练配置脚本中设置有以下至少之一的配置命令:测试圈数的配置命令,间隔时间的配置命令,日志保存路径的配置命令,日志名称的配置命令,测试圈数为对目标链路进行链路训练的次数,间隔时间为在对上述目标链路进行链路训练的过程中,每条命令执行完后的停顿时间。
在一个示例性实施例中,上述装置还包括:
控制模块,用于在使用预设代码对目标链路进行链路训练之前,响应于获取到的重启命令,控制服务器执行重启操作,其中,对目标链路进行链路训练是在服务器开机的过程中执行的。
在一个示例性实施例中,上述装置还包括:
第二检测模块,用于在使用预设代码对目标链路进行链路训练之前,对每个预设断点的生效状态进行检测,以确定每个预设断点是否已生效;
第三检测模块,用于在一组预设断点中存在未生效断点的情况下,按照预设周期对未生效断点的生效状态持续进行检测,直到未生效断点已生效;
其中,对目标链路进行链路训练是在一组预设断点均已生效的情况下执行的。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种链路故障的检测方法,其特征在于,
包括:
使用预设代码对目标链路进行链路训练,并通过日志记录器记录所述目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,所述目标链路为服务器的主机与所述服务器的外设之间进行数据传输的通道,所述目标链路的链路训练状态机包含多个链路状态,所述预设代码中包含一组预设断点,所述一组预设断点中的每个预设断点用于触发所述日志记录器记录所述目标链路处于所述多个链路状态中的一个链路状态下的链路状态日志;
从所述一组链路状态日志中提取出所述目标链路在所述多个链路状态中的每个链路状态下的链路状态参数的参数信息;
基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,其中,所述故障检测结果用于指示所述多个链路状态中,所述目标链路存在故障的链路状态。
2.根据权利要求1所述的方法,其特征在于,
所述从所述一组链路状态日志中提取出所述目标链路在所述多个链路状态中的每个链路状态下的链路状态参数的参数信息,包括以下至少之一:
从所述一组链路状态日志中提取出所述目标链路在所述每个链路状态下的链路参数的参数信息,其中,所述链路参数包括以下至少之一:链路带宽,链路速率;
从所述一组链路状态日志中提取出所述目标链路在所述每个链路状态下的链路切换参数的参数信息,其中,所述链路切换参数用于描述从对应的链路状态切换到所述多个链路状态中的至少一个链路状态的状态切换关系。
3.根据权利要求1所述的方法,其特征在于,
所述基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,包括:
在链路状态参数包含链路参数的情况下,判断所述多个链路状态中是否存在满足第一故障条件的链路状态,其中,所述链路参数包括以下至少之一:链路带宽,链路速率,所述第一故障条件为所述目标链路在一个链路状态下的所述链路参数的参数值不属于为所述一个链路状态预设的所述链路参数的参数值范围;
在所述多个链路状态中存在满足所述第一故障条件的第一链路状态的情况下,生成第一检测结果,其中,所述第一检测结果用于指示所述第一链路状态为所述目标链路存在故障的链路状态。
4.根据权利要求1所述的方法,其特征在于,
所述基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,包括:
在链路状态参数包含链路切换参数的情况下,判断所述多个链路状态中是否存在满足第二故障条件的链路状态,其中,所述链路切换参数用于描述从对应的链路状态切换到所述多个链路状态中的至少一个链路状态的状态切换关系,所述第二故障条件为所述目标链路在一个链路状态下的所述链路切换参数的参数信息所指示的状态切换关系与为所述一个链路状态预设的状态切换关系不一致;
在所述多个链路状态中存在满足所述第二故障条件的第二链路状态的情况下,生成第二检测结果,其中,所述第二检测结果用于指示所述第二链路状态为所述目标链路存在故障的链路状态。
5.根据权利要求1所述的方法,其特征在于,
在所述使用预设代码对目标链路进行链路训练之前,所述方法还包括:
通过联合测试工作组调试器与目标客户端建立通信连接,其中,所述联合测试工作组接口的驱动集成在所述服务器的基板管理控制器中;
响应于通过所述联合测试工作组接口接收到的所述目标客户端发送的链路训练配置命令,执行链路训练配置脚本;
其中,所述链路训练配置命令用于触发执行所述链路训练配置脚本,在所述链路训练配置脚本中设置有以下至少之一的配置命令:测试圈数的配置命令,间隔时间的配置命令,日志保存路径的配置命令,日志名称的配置命令,所述测试圈数为对所述目标链路进行链路训练的次数,所述间隔时间为在对上述目标链路进行链路训练的过程中,每条命令执行完后的停顿时间。
6.根据权利要求1所述的方法,其特征在于,
在所述使用预设代码对目标链路进行链路训练之前,所述方法还包括:
响应于获取到的重启命令,控制所述服务器执行重启操作,其中,对所述目标链路进行链路训练是在所述服务器开机的过程中执行的。
7.根据权利要求1至6中任一项所述的方法,其特征在于,
在所述使用预设代码对目标链路进行链路训练之前,所述方法还包括:
对所述每个预设断点的生效状态进行检测,以确定所述每个预设断点是否已生效;
在所述一组预设断点中存在未生效断点的情况下,按照预设周期对所述未生效断点的生效状态持续进行检测,直到所述未生效断点已生效;
其中,对所述目标链路进行链路训练是在所述一组预设断点均已生效的情况下执行的。
8.一种链路故障的检测装置,其特征在于,
包括:
第一执行模块,用于使用预设代码对目标链路进行链路训练,并通过日志记录器记录所述目标链路在链路训练过程中的链路状态日志,得到一组链路状态日志,其中,所述目标链路为服务器的主机与所述服务器的外设之间进行数据传输的通道,所述目标链路的链路训练状态机包含多个链路状态,所述预设代码中包含一组预设断点,所述一组预设断点中的每个预设断点用于触发所述日志记录器记录所述目标链路处于所述多个链路状态中的一个链路状态下的链路状态日志;
提取模块,用于从所述一组链路状态日志中提取出所述目标链路在所述多个链路状态中的每个链路状态下的链路状态参数的参数信息;
第一检测模块,用于基于所述目标链路在所述每个链路状态下的所述链路状态参数的参数信息,对所述目标链路进行故障检测,得到故障检测结果,其中,所述故障检测结果用于指示所述多个链路状态中,所述目标链路存在故障的链路状态。
9.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至7任一项中所述的方法的步骤。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现所述权利要求1至7任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541618.4A CN117527649A (zh) | 2023-11-17 | 2023-11-17 | 链路故障的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311541618.4A CN117527649A (zh) | 2023-11-17 | 2023-11-17 | 链路故障的检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117527649A true CN117527649A (zh) | 2024-02-06 |
Family
ID=89760335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311541618.4A Pending CN117527649A (zh) | 2023-11-17 | 2023-11-17 | 链路故障的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117527649A (zh) |
-
2023
- 2023-11-17 CN CN202311541618.4A patent/CN117527649A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110380907B (zh) | 一种网络故障诊断方法、装置、网络设备及存储介质 | |
US9967025B2 (en) | Diagnostic port for inter-switch and node link testing in electrical, optical and remote loopback modes | |
US7213179B2 (en) | Automated and embedded software reliability measurement and classification in network elements | |
CN102571498B (zh) | 故障注入控制方法和装置 | |
CN111273923B (zh) | 基于PCIe接口的FPGA升级方法 | |
CN113645095B (zh) | 基于snmptrap告警信息的交换机自动化测试方法、设备及介质 | |
CN105897623B (zh) | 一种数据的传输方法和装置 | |
CN109428778B (zh) | 主板网络连通性测试方法及装置 | |
CN116560889A (zh) | 数据链路的管理方法、装置、计算机设备及存储介质 | |
WO2020088351A1 (zh) | 设备信息发送的方法、计算机设备和分布式计算机设备系统 | |
CN113645048B (zh) | 网卡切换方法、装置以及现场可编程逻辑门阵列fpga | |
CN116737471B (zh) | Bios自动切换方法、装置、电子设备及存储介质 | |
WO2024066449A1 (zh) | 通信故障处理方法、系统及设备 | |
US10956269B2 (en) | Electronic data-distribution control unit and method for operating such a control unit | |
CN117251333A (zh) | 一种硬盘信息获取方法、装置、设备及存储介质 | |
CN116137603A (zh) | 链路故障的检测方法和装置、存储介质及电子装置 | |
CN117527649A (zh) | 链路故障的检测方法和装置 | |
CN117271234A (zh) | 故障诊断方法、装置、存储介质及电子装置 | |
CN115665785A (zh) | 基于linux板卡的无线网卡自管理应用程序模块及方法 | |
CN115022163A (zh) | 日志收集方法、装置、计算机设备及存储介质 | |
CN104038365B (zh) | 用于电、光及远程环回模式下交换机间链路和节点链路测试的诊断端口 | |
CN116719712B (zh) | 处理器串口日志输出方法、装置、电子设备及存储介质 | |
CN117579811B (zh) | 一种车辆摄像头故障检测与恢复方法、系统及装置 | |
CN116382968B (zh) | 外部设备的故障检测方法以及装置 | |
CN116302851B (zh) | Fpga逻辑异常监测与恢复方法、装置、设备及介质 |
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 |