CN114338475B - 一种link速率异常检测方法、装置、电子设备及存储介质 - Google Patents
一种link速率异常检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114338475B CN114338475B CN202111650423.4A CN202111650423A CN114338475B CN 114338475 B CN114338475 B CN 114338475B CN 202111650423 A CN202111650423 A CN 202111650423A CN 114338475 B CN114338475 B CN 114338475B
- Authority
- CN
- China
- Prior art keywords
- pci
- abnormal
- link rate
- expansion card
- information
- 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
Links
- 230000005856 abnormality Effects 0.000 title claims abstract description 35
- 238000001514 detection method Methods 0.000 title claims abstract description 33
- 230000002159 abnormal effect Effects 0.000 claims abstract description 77
- 238000004590 computer program Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 abstract description 27
- 238000004891 communication Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 210000001072 colon Anatomy 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种link速率异常检测方法、装置、电子设备及存储介质,涉及网络通信技术领域。该方法包括遍历sys设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息存储在数据结构中;根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常,排查和定位PCI设备的link速率的异常,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
Description
技术领域
本申请涉及网络通信技术领域,具体而言,涉及一种link速率异常检测方法、装置、电子设备及存储介质。
背景技术
随着国内硬件水平的飞速发展,网络设备的性能要求越来越高。网络设备的性能高低及网络设备的稳定性成为了评定现代化设备质量的重要指标。但是硬件本身的故障或者某些bug,都会导致网络设备的性能和稳定性降低。
发明内容
本申请实施例的目的在于提供一种link速率异常检测方法、装置、电子设备及存储介质,排查和定位PCI设备的link速率的异常,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
本申请实施例提供了一种link速率异常检测方法,所述方法包括:
遍历sys设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息存储在数据结构中;
根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;
根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常。
在上述实现过程中,将所有PCI设备存储至数据结构中,通过遍历数据结构定位网卡信息,从而确定网卡的link速率,若有异常则追溯并定位到具体的异常扩展卡或硬件平台,该方法通过排查和定位PCI设备和硬件平台的link速率的异常,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
进一步地,所述数据结构包括链表、队列或树状结构,所述遍历sys 设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息信息存储在数据结构中,包括:
根据每个PCI设备的根文件名查找所述PCI设备的文件信息;
根据所述文件信息,将所述PCI设备的PCI号、厂商号、设备号、设备类型和上级PCI设备的pci号存储至所述数据结构中;
递归遍历同一个槽位或设备类型下的所有PCI设备信息,并将所述设备信息依次添加至对应槽位或设备类型的后面。
在上述实现过程中,读取sys设备文件夹中的数据,提取PCI设备的文件信息并依次存储至数据结构中,以根据数据结构定位具体的扩展卡或PCI 设备。
进一步地,所述数据结构包括链表,所述根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常,包括:
检测所述网卡的link速率是否异常;
若异常,则向所述链表表头的方向依次检测所述网卡的上级设备的link 速率是否异常,直至检测到link速率正常的上级设备为止;
将最后一个link速率异常的PCI设备判定为异常设备。
在上述实现过程中,基于数据结构中的PCI设备和网卡的存储特性,可查找并定位具体的网卡,并检测网卡的link速率是否异常,若有异常,则向表头的方向追溯,直到检测到link速率正常的上级设备为止,此时,最后一个link速率异常的网卡或PCI设备即为异常设备,实现异常设备的定位,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
进一步地,所述将最后一个link速率异常的PCI设备判定为异常设备,包括:若异常设备是扩展卡上面的桥片或网卡,则为扩展卡异常;否则为硬件平台异常。
在上述实现过程中,若出现异常,不是扩展卡上面的桥片或网卡的问题就是对应的硬件平台的问题。
本申请实施例还提供一种连接速率异常检测装置,所述装置包括:
存储模块,用于遍历sys设备文件夹,获得任意硬件平台的所有PCI 设备信息,并将所述PCI设备信息存储在数据结构中;
定位模块,用于根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;
检测模块,用于根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常。
在上述实现过程中,将PCI设备及对应的网卡信息存储至数据结构中,通过遍历数据结构定位扩展卡信息,从而确定扩展卡的link速率,若有异常则追溯并定位到具体的异常扩展卡或硬件平台,该方法通过排查和定位 PCI设备的link速率的异常,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
进一步地,所述数据结构包括链表、队列或树状结构,所述存储模块包括:
查找模块,用于根据每个PCI设备的根文件名查找所述PCI设备的文件信息;
链表建立模块,用于根据所述文件信息,将所述PCI设备的PCI号、厂商号、设备号、设备类型和上级PCI设备的pci号存储至所述数据结构中;
遍历模块,用于递归遍历同一个槽位或设备类型下的所有设备信息,并将所述PCI设备信息依次添加至对应槽位或设备类型的后面。
在上述实现过程中,读取sys设备文件夹中的数据,提取PCI设备的文件信息并依次存储至数据结构中,以根据数据结构定位具体的网卡或PCI 设备。
进一步地,所述检测模块包括:
异常判断模块,用于检测所述网卡的link速率是否异常;
追溯模块,用于若所述网卡的link速率异常,则向所述链表表头的方向依次检测所述网卡的上级设备的link速率是否异常,直至检测到link速率正常的上级设备为止;
判定模块,用于将最后一个link速率异常的PCI设备判定为异常设备。
在上述实现过程中,基于数据结构中的PCI设备的存储特性,可查找并定位具体的PCI设备,并检测PCI设备的link速率是否异常,若有异常,则向表头的方向追溯,直到检测到link速率正常的上级设备为止,此时,最后一个link速率异常的PCI设备即为异常设备,实现异常设备的定位,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
进一步地,所述判定模块包括:
异常确定模块,用于若异常设备是扩展卡上面的桥片或网卡,则为扩展卡异常;否则为硬件平台异常。
在上述实现过程中,基于数据结构中的PCI设备的存储特性,可查找并定位具体的PCI设备,并检测PCI设备的link速率是否异常,若有异常,则向表头的方向追溯,直到检测到link速率正常的上级设备为止,此时,最后一个link速率异常的PCI设备即为异常设备,实现异常设备的定位,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中任一项所述的link速率异常检测方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的link速率异常检测方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种连接速率异常检测方法的流程图;
图2为本申请实施例提供的数据结构生成流程图;
图3为本申请实施例提供的某PCI设备的外观示意图;
图4为本申请实施例提供的PCI设备的结构体示意图;
图5为本申请实施例提供的PCI设备的外观示意图;
图6为本申请实施例提供的对应的PCI设备的结构体示意图;
图7为本申请实施例提供的2口万兆的扩展卡在pci结构体中的结构示意图;
图8(a)、8(b)和8(c)分别为本申请实施例提供的solt2、solt3和solt4的 pci结构体示意图;
图9为本申请实施例提供的设备的pci结构体的示意图;
图10为本申请实施例提供的相应的四光四电卡的pci结构示意图;
图11为本申请实施例提供的插入四光四电卡后的pci结构体的示意图;
图12为本申请实施例提供的link速率的判断流程图;
图13为本申请实施例提供的一种link速率异常检测装置的结构框图;
图14为本申请实施例提供的另一种link速率异常检测装置的结构框图。
图标:
100-存储模块;101-查找模块;102-链表建立模块;103-遍历模块;200- 定位模块;300-检测模块;301-异常判断模块;302-追溯模块;303-判定模块;304-异常定位模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为本申请实施例提供的一种连接速率异常检测方法的流程图。该方法具体包括以下步骤:
步骤S100:遍历sys设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息存储在数据结构中;
步骤S200:根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;
步骤S300:根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的 link速率,以判定是所述扩展卡异常或对应的硬件平台异常。
具体地,如图2所示,为数据结构生成流程图,具体包括以下步骤:
步骤S101:根据每个PCI设备的根文件名查找所述PCI设备的文件信息;
步骤S102:根据所述文件信息,将所述PCI设备的PCI号、厂商号、设备号、设备类型和上级PCI设备的pci号存储至所述数据结构中;
步骤S103:递归遍历同一个槽位或设备类型下的所有PCI设备信息,并将所述设备信息依次添加至对应槽位或设备类型的后面。
在sys文件系统中,存储有所有PCI设备(PCI总线是一种用于外部设备通信的标准协议接口,使用这种接口的设备简称为PCI设备)的信息。由于Linux下一切皆文件的特性,每一个节点都是一个目录,目录下有很多文件,代表当前设备的各项属性,如设备类型(网卡或者桥片等)、厂商号、设备号是多少等。
示例地,使用linux标准接口opendir遍历/sys/devices/文件夹,获取所有的文件名。每个PCI设备的根文件名称都是有固定格式的,如pci0000:00 代表着pci域0(pci0000:00冒号前面的0000代表域名)的槽位号为0 (pci0000:00冒号后面的00代表槽位号)。Linux标准接口strcmp可以进行字符串比较,例如文件名的前三位是否是pci,第七位是否是“:”;再用标准接口strlen确定该文件名的长度是否正确。一般的PCI设备只有一个pci 域1个槽位号,所以文件(目录)名字为pci0000:00,但部分PCI设备可能有多个域和槽位号,方法与上述一样,而且也都在/sys/devices/目录下,在此不做赘述。
将一个硬件平台,不安装扩展卡的时候遍历一遍,得到一个链表(数据结构的一种,也可以用树状结构等其他数据结构,但是只展示链表的工作过程),链表(一堆结构体连成一串)中的每一个结构体包含了一个PCI 设备的设备信息。这个链表代表的是当前硬件平台,在链表头可标注当前硬件平台的名称。
安装扩展卡的时候,再遍历一遍,新的链表上多了一截数据,多出来的这一截数据就代表了扩展卡(上面包含了一个两个或者多个pci设备,有网口,有可能有桥片)。可把多出来的一截数据提取出来,就是一个新的链表,添加一个链表头,链表头里添加扩展卡的名称。
扩展卡不变,完善硬件平台的链表,比如在第一槽位插入一个扩展卡。在链表中与扩展卡的第一个PCI设备相连的那个PCI设备和与扩展卡的最后一个PCI设备相连的那个PCI设备分别标记为第一槽位的起始和结束,将信息保存在硬件平台的链表中。把扩展卡插入在硬件平台的所有槽位下,这样就可找到所有槽位的起始和结束pci设备,并保存在硬件平台对应的链表中。
同一个项目里可能有很多硬件平台,每一个硬件平台负责不同的功能。对于一个插了扩展卡的硬件平台来说,遍历sys文件后,得到一个链表。用新得到的链表与之前保存的链表作比较,就能知道新的链表是哪几个链表的组合,也可获知是什么平台在哪些槽位插了哪些扩展卡。
如图3所示,为某PCI设备的外观示意图,如图4所示,为该PCI设备的结构体示意图。其中,对于图4中的17cd:dc16(0604),17cd为厂商号,dc16为设备号,0604为设备类型(即桥片),pci号为0000:00.0(0000 为pci域,00为槽位号(这个槽位号代表pci域下的槽位,这是计算机扫描 pci设备给定的,不是设备外观上的槽位),0为功能号,同一级(直接连接在pci域0或者连接在同一个桥片上)的所有桥片的槽位号一定是不一样且固定的,可以用来区别同一级的相同桥片(厂商号设备号相同)。
基于上述信息,可对/sys/devices/文件夹进行读取,并将读取到的文件信息保存至数据结构中,数据结构可以是链表、队列或树状结构。
将每一个PCI设备的pci号、厂商号、设备号、设备类型,上级PCI 设备pci号等信息保存在一个结构体中(一个pci设备对应一个结构体)。然后将这些结构体保存在一个链表、队列或者树状结构等数据结构中。
以PCI设备0000:00:00.0为例,用linux标准接口fopen分别打开 0000:00:00.0目录下的vendor,device文件读出pci设备0000:00:00.0的厂商号、设备号。使用fopen打开0000:00:00.0目录下的class文件,将读出的值右移8个bit位,得到设备的设备类型号(主桥的设备类型为0604)。主桥片的上级PCI设备可以设置为空。其他设备的上级节点名称为设备目录的上级目录,如,0000:00:11.0是桥片下面连接了两个PCI设备,分别是 0000:00:02.0和0000:00:02.1,在sys文件中就是0000:00:11.0目录下有0000:00:02.0和0000:00:02.1这两个目录。创建一个链表,将上述设备信息保存至链表上。
递归遍历同一个域同一个槽位下(一个硬件平台可能有多个域。一个域可能有多个槽位)的所有PCI设备,获取/sys/devices/pci0000:00目录下的所有格式为0000:00:xx.x(代表pci0000:00下的凭此设备)的文件信息,如0000:00:00.0。将所有PCI设备对应的文件信息添加到链表上。
如果设备类型是0604(桥片),就对该设备的目录也进行遍历(获取格式为0000:00:xx.x的设备,并将设备信息添加到链表上),直到该目录下没有pci设备或设备类型不是0604为止。
示例地,以FT2K4C平台为例。得到的链表结构如链表头->(17cd:dc16 0604)->(17cd:dc08 0604)->(17cd:dc01 0604)->(1b4b:9215 0106)-> (17cd:dc16 0604)->(17cd:dc08 0604)->(17cd:dc01 0604)->(1912:0014 0c03)。在链表头里补充信息代表这是一个硬件平台,平台为FT2K4C。
当一张2口万兆的扩展卡插入solt1后,设备外观和pci结构体相应发生变化,如图5所示,为PCI设备的外观示意图,如图6所示,为对应的 PCI设备的结构体示意图,如图7所示,为2口万兆的扩展卡在pci结构体中的结构示意图。
对应的链表结构为:链表头->(17cd:dc16 0604)->(17cd:dc08 0604) ->(17cd:dc01 0604)->(1b4b:9215 0106)->(17cd:dc16 0604)->(8086:1572 0200)->(8086:15720200)->(17cd:dc08 0604)->(17cd:dc01 0604)-> (1912:0014 0c03)。
与未插入扩展卡时的链表相比,链表头->(17cd:dc16 0604)->(17cd:dc080604)->(17cd:dc01 0604)->(1b4b:9215 0106)->(17cd:dc16 0604)-> (17cd:dc080604)->(17cd:dc01 0604)->(1912:0014 0c03),厂商号和设备号为17cd:dc16的桥片后面跟着两个连续的节点(因为扩展卡一定与某一个桥片连接,所以这些节点必定在该节点下,所以是连续的),其他PCI 设备的信息节点位置不变。厂商号、设备号为8086、1572,设备号为0200 的设备就是一个扩展卡。
由上述两个插入扩展卡前后的链表对比可知,两口万兆扩展卡在设备链表中的存在方式就是两个连续的厂商号、设备号为8086,1572,设备号为 0200的节点,即(8086:15720200)->(8086:1572 0200)就是两个插入扩展卡在链表上的表现形式。将(8086:15720200)->(8086:1572 0200)这个链表加上链表头保存起来,这个链表就代表了两口万兆扩展卡。链表头-> (8086:1572 0200)->(8086:1572 0200)。在链表头里补充信息代表这是一个扩展卡,扩展卡为两口万兆扩展卡。
示例地,将两口万兆扩展卡插入设备的solt2、solt3和solt4,如图 8(a)-8(c),分别为solt2、solt3和solt4的pci结构体示意图。
在链表中,如果某一个桥片节点后面加了两个(8086,1572)的节点,这就说明网卡连接在此桥片上。即这个节点与它的下一个节点就是槽位1 (假如现在扩展卡插在solt1上)的起始和结束节点。将信息保存在FT2K4C 平台的链表中。之后在FT2K4C平台上获取一个新链表时,如果这两个节点之间有其他pci设备节点即说明solt1插入了扩展卡。如果没有其他几点就代表solt1没有插入扩展卡。同理把所有solt的起始和结束节点信息都保存在FT2K4C平台的链表上。
因此,直连在pci域0下的四个桥片(设备类型0604为桥片)就是设备与网卡(扩展卡)的连接处,据此,可在链表中定位网卡的位置。
再如,将一个四光四电卡(WX_4F4C(8088的厂商号代表网讯公司,F 代表光口,C代表电口))插入solt2,如图9所示,为设备的pci结构体的示意图,如图10所示,为相应的四光四电卡的pci结构示意图。在链表中为:(10b5:8616 0604)->(10b5:8616 0604)->(8088:0103 0200)->(8088:0103 0200)->(8088:0103 0200)->(8088:0103 0200)->(10b5:86160604)-> (8088:0104 0200)->(8088:0104 0200)->(8088:0104 0200)->(8088:01040200)。
如图11所示,为插入四光四电扩展卡后的pci结构体的示意图,相应的链表结构为:链表头->(17cd:dc16 0604)->(8086:1572 0200)->(8086:1572 0200)->(17cd:dc080604)->(10b5:8616 0604)->(10b5:8616 0604)-> (8088:0103 0200)->(8088:01030200)->(8088:0103 0200)->(8088:0103 0200)->(10b5:8616 0604)->(8088:01040200)->(8088:0104 0200)-> (8088:0104 0200)->(8088:0104 0200)->(17cd:dc010604)->(1b4b:9215 0106)->(17cd:dc16 0604)->(17cd:dc08 0604)->(17cd:dc010604)-> (1912:0014 0c03)。则四光四电扩展卡的链表为:链表头->(10b5:8616 0604) ->(10b5:8616 0604)->(8088:0103 0200)->(8088:0103 0200)->(8088: 0103 0200)->(8088:0103 0200)->(10b5:8616 0604)->(8088:0104 0200) ->(8088:0104 0200)->(8088:0104 0200)->(8088:0104 0200)。
对于link速率的判断,如图12所示,为link速率的判断流程图,具体地:
步骤S301:检测所述网卡的link速率是否异常;
步骤S302:若异常,则向所述链表表头的方向依次检测所述网卡的上级设备的link速率是否异常,直至检测到link速率正常的上级设备为止;
步骤S303:将最后一个link速率异常的网卡或PCI设备判定为异常设备。
具体地,如果link速率存在异常,根据扩展卡的类型和在设备上的位置,确认速率异常时扩展卡还是PCI设备本身的问题。
检测所有网口的link速率,如果某个网口link速率异常(以(8088:0103 0200)为例),则检测上级桥片(上级桥片的pci号保存在当前pci设备的信息里)的link速率,依次向上,直到找到速率正常的桥片,最后一个速率异常的pci设备,就是异常pci设备。
此外,在确定硬件平台的过程中,可以根据特有的PCI设备、某些PCI 设备的数目或有哪几种PCI设备,来快速确定设备类型。例如FT2K_4S平台上有一个厂商号为1912,设备号为0014的pci设备(1912:0014(0c03)),在FT2K_8S等其他平台上没有。在FT2K_4S平台上有且只有两个厂商号为 17cd设备号为dc16(17cd:dc16(0604))的pci设备。在FT2K_4S平台上有(17cd:dc16(0604))和(1912:0014(0c03))这两种pci设备,在 FT2K_8S上有且仅有(17cd:dc16(0604))这一种pci设备。
本申请实施例还提供一种link速率异常检测装置,如图13所示,为一种link速率异常检测装置的结构框图,所述装置包括:
存储模块100,用于遍历sys设备文件夹,获得任意硬件平台的所有PCI 设备信息,并将所述PCI设备信息存储在数据结构中;
定位模块200,用于根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;
检测模块300,用于根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常。
如图14所示,为另一种link速率异常检测装置的结构框图,其中,存储模块100包括:
查找模块101,用于根据每个PCI设备的根文件名查找所述PCI设备的文件信息;
链表建立模块102,用于根据所述文件信息,将所述PCI设备的PCI 号、厂商号、设备号、设备类型和上级PCI设备的pci号存储至所述数据结构中;
遍历模块103,用于递归遍历同一个槽位或设备类型下的所有设备信息,并将所述PCI设备信息依次添加至对应槽位或设备类型的后面。
检测模块300包括:
异常判断模块301,用于检测所述网卡的link速率是否异常;
追溯模块302,用于若所述网卡的link速率异常,则向所述链表表头的方向依次检测所述网卡的上级设备的link速率是否异常,直至检测到link 速率正常的上级设备为止;
判定模块303,用于将最后一个link速率异常的PCI设备判定为异常设备。
所述判定模块303包括:
异常定位模块304,用于若异常设备是扩展卡上面的桥片或网卡,则为扩展卡异常;否则为硬件平台异常。
将PCI设备及对应的网卡信息存储至数据结构中,通过遍历数据结构定位网卡信息,从而确定网卡的link速率,若有异常则追溯并定位到具体的异常扩展卡或硬件平台,该方法通过排查和定位PCI设备和扩展卡的link 速率的异常,解决了现有方法的硬件故障导致网络设备的性能和稳定性降低的问题。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中任一项所述的link速率异常检测方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的link速率异常检测方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (6)
1.一种link速率异常检测方法,其特征在于,所述方法包括:
遍历sys设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息存储到数据结构中,所述数据结构包括链表;
根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;
根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常,具体地:
检测所述网卡的link速率是否异常;
若异常,则向所述链表表头的方向依次检测所述网卡的上级设备的link速率是否异常,直至检测到link速率正常的上级设备为止;
将最后一个link速率异常的PCI设备判定为异常设备,若异常设备是扩展卡上面的桥片或网卡,则为扩展卡异常;否则为硬件平台异常。
2.根据权利要求1所述的link速率异常检测方法,其特征在于,所述数据结构包括链表、队列或树状结构,所述遍历sys设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息存储在数据结构中,包括:
根据每个PCI设备的根文件名查找所述PCI设备的文件信息;
根据所述文件信息,将所述PCI设备的PCI号、厂商号、设备号、设备类型和上级PCI设备的pci号存储至所述数据结构中;
递归遍历同一个槽位或设备类型下的所有PCI设备信息,并将所述PCI设备信息依次添加至对应槽位或设备类型的后面。
3.一种link速率异常检测装置,其特征在于,所述装置包括:
存储模块,用于遍历sys设备文件夹,获得任意硬件平台的所有PCI设备信息,并将所述PCI设备信息存储在数据结构中,所述数据结构包括链表;
定位模块,用于根据所述数据结构定位所述硬件平台和对应的槽位下的扩展卡信息;
检测模块,用于根据所述扩展卡信息检测所述扩展卡上面的网卡和桥片的link速率,以判定是所述扩展卡异常或对应的硬件平台异常,所述检测模块包括:
异常判断模块,用于检测所述网卡的link速率是否异常;
追溯模块,用于若所述网卡的link速率异常,则向所述链表表头的方向依次检测所述网卡的上级设备的link速率是否异常,直至检测到link速率正常的上级设备为止;
判定模块,用于将最后一个link速率异常的PCI设备判定为异常设备;所述判定模块包括:
异常确定模块,用于若异常设备是扩展卡上面的桥片或网卡,则为扩展卡异常;否则为硬件平台异常。
4.根据权利要求3所述的link速率异常检测装置,其特征在于,所述数据结构包括链表、队列或树状结构,所述存储模块包括:
查找模块,用于根据每个PCI设备的根文件名查找所述PCI设备的文件信息;
链表建立模块,用于根据所述文件信息,将所述PCI设备的PCI号、厂商号、设备号、设备类型和上级PCI设备的pci号存储至所述数据结构中;
遍历模块,用于递归遍历同一个槽位或设备类型下的所有PCI设备信息,并将所述PCI设备信息依次添加至对应槽位或设备类型的后面。
5.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行根据权利要求1至2中任一项所述的link速率异常检测方法。
6.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至2任一项所述的link速率异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111650423.4A CN114338475B (zh) | 2021-12-30 | 2021-12-30 | 一种link速率异常检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111650423.4A CN114338475B (zh) | 2021-12-30 | 2021-12-30 | 一种link速率异常检测方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338475A CN114338475A (zh) | 2022-04-12 |
CN114338475B true CN114338475B (zh) | 2023-12-01 |
Family
ID=81018351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111650423.4A Active CN114338475B (zh) | 2021-12-30 | 2021-12-30 | 一种link速率异常检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338475B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104159244A (zh) * | 2014-08-05 | 2014-11-19 | 王强 | 一种便携式无线网络探测取证系统 |
CN104239170A (zh) * | 2013-06-17 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | Pci设备测试方法及系统 |
CN204904267U (zh) * | 2015-09-01 | 2015-12-23 | 北京立华莱康平台科技有限公司 | Pcie总线的兼容增强装置和主机设备 |
WO2016150098A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
KR20170074718A (ko) * | 2015-12-22 | 2017-06-30 | 윤동구 | 메모리 확장 카드 |
CN109960534A (zh) * | 2017-12-14 | 2019-07-02 | 迈普通信技术股份有限公司 | 设备探测方法、装置、存储介质以及电子设备 |
CN111309659A (zh) * | 2020-01-21 | 2020-06-19 | 北京工业大学 | 一种基于可插拔模块的LoRa多通道通信扩展方法 |
CN112685210A (zh) * | 2020-12-31 | 2021-04-20 | 北京天融信网络安全技术有限公司 | 一种外设故障原因定位方法、装置、设备及介质 |
CN113645085A (zh) * | 2021-10-15 | 2021-11-12 | 苏州浪潮智能科技有限公司 | 智能网卡的异常检测方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201514A1 (en) * | 2007-02-21 | 2008-08-21 | Inventec Corporation | Method of locating peripheral component interconnect devices |
-
2021
- 2021-12-30 CN CN202111650423.4A patent/CN114338475B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239170A (zh) * | 2013-06-17 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | Pci设备测试方法及系统 |
CN104159244A (zh) * | 2014-08-05 | 2014-11-19 | 王强 | 一种便携式无线网络探测取证系统 |
WO2016150098A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
CN204904267U (zh) * | 2015-09-01 | 2015-12-23 | 北京立华莱康平台科技有限公司 | Pcie总线的兼容增强装置和主机设备 |
KR20170074718A (ko) * | 2015-12-22 | 2017-06-30 | 윤동구 | 메모리 확장 카드 |
CN109960534A (zh) * | 2017-12-14 | 2019-07-02 | 迈普通信技术股份有限公司 | 设备探测方法、装置、存储介质以及电子设备 |
CN111309659A (zh) * | 2020-01-21 | 2020-06-19 | 北京工业大学 | 一种基于可插拔模块的LoRa多通道通信扩展方法 |
CN112685210A (zh) * | 2020-12-31 | 2021-04-20 | 北京天融信网络安全技术有限公司 | 一种外设故障原因定位方法、装置、设备及介质 |
CN113645085A (zh) * | 2021-10-15 | 2021-11-12 | 苏州浪潮智能科技有限公司 | 智能网卡的异常检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338475A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4148527B2 (ja) | 機能テスト・スクリプト生成装置 | |
CN105446723B (zh) | 用于标识源代码版本之间的语义区别的方法和装置 | |
US7571299B2 (en) | Methods and arrangements for inserting values in hash tables | |
US10621212B2 (en) | Language tag management on international data storage | |
US7096420B1 (en) | Method and system for automatically documenting system command file tags and generating skeleton documentation content therefrom | |
CN106445476B (zh) | 一种代码变更信息确定方法、装置及电子设备 | |
CN107193871A (zh) | 数据库修复方法及装置 | |
CN114338475B (zh) | 一种link速率异常检测方法、装置、电子设备及存储介质 | |
CN113612671B (zh) | 总线适配器与通道绑定配置方法、映射管理器及连接系统 | |
CN112632621B (zh) | 数据存取方法、装置、设备及计算机存储介质 | |
CN115542067A (zh) | 一种故障检测方法及装置 | |
CN101414299B (zh) | 复合文档的修复方法和装置 | |
CN107515958B (zh) | 电路布线检查方法及装置 | |
KR20010020962A (ko) | 데이터 처리 시스템에서 재귀 하드 링크를 처리하기 위한방법 및 장치 | |
CN105159790B (zh) | 一种数据抢救方法及文件服务器 | |
CN107632912A (zh) | 一种windows系统下的内存诊断测试方法 | |
CN111858145A (zh) | 数据备份与恢复的方法、设备和计算机程序产品 | |
US20220206789A1 (en) | Automatically updating documentation | |
JP5808264B2 (ja) | コード生成装置及びコード生成方法及びプログラム | |
CN115987865A (zh) | 一种路由代码生成方法、装置、矩阵检测方法及储存介质 | |
CN113708959A (zh) | 一种规则库更新方法、装置及设备 | |
Cisco | Using the Cisco IOS File System | |
CN112882721B (zh) | 一种软件包编译方法及装置 | |
CN112905169B (zh) | 一种自动化定位命名空间引用问题的方法及装置 | |
CN115221360A (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 |