一种网卡收发报文的统计调试方法及系统的制作方法

文档序号:9931157阅读:431来源:国知局
一种网卡收发报文的统计调试方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种网卡收发报文的统计调试方法及系统。
【背景技术】
[0002]现有的网络设备(如防火墙、交换机以及服务器等)的转发都离不开网卡,现有的网络设备转发是否正常可通过查看网卡硬件寄存器的统计信息来判断。
[0003]但是,现有技术中,由于硬件寄存器统计信息有限,导致对网络设备转发是否正常的判断不准确。有时需要软件的相关统计信息进行对比查看才能定位问题,现有软件的相关统计信息需要自己添加,对比信息也需要自己添加,命令行也需要自己添加,进而造成统计调试速度慢、效率低。
[0004]因此,如何提供一种网卡收发报文的统计调试方法及系统,以实现快速查看、定位网卡收发报文是否正常以及大致判断问题原因,成为目前急需解决的问题之一。

【发明内容】

[0005]针对现有技术方案存在的问题和不足,本发明提供了一种网卡收发报文的统计调试方法及系统,以实现快速查看、定位网卡收发报文是否正常及大致判断问题原因的目的。
[0006]根据本发明的一个方面,提供了一种网卡收发报文的统计调试方法,该方法包括:
[0007]在网卡收发报文函数中增加统计调试信息,以使网卡收发报文函数按照所述统计调试信息对网卡收发报文信息进行统计,得到软件收发报文数据;
[0008]获取网卡硬件寄存器的统计信息,得到硬件收发报文数据;
[0009]对所述软件收发报文数据和硬件收发报文数据进行比对,并根据比对结果确定所述网卡的工作状态。
[0010]其中,所述方法还包括:
[0011]当所述网卡的工作状态存在异常时,根据所述软件收发报文数据和/或硬件收发报文数据进行异常问题定位。
[0012]其中,所述统计调试信息,包括各网卡队列收发包个数、各数据包字节数、丢包个数和SKB分配失败个数,以及各CPU内核收发包个数、各数据包字节数、丢包个数和SKB分配失败个数。
[0013]其中,所述方法还包括:
[0014]对所述各网卡队列收发包个数和各CPU内核收发包个数进行打印显示;以及
[0015]根据所述各网卡队列收发包个数确定网卡多队列哈希是否均匀,和/或根据所述各CPU内核收发包个数确定CPU多核收发是否均衡。
[0016]其中,所述获取网卡硬件寄存器的统计信息,得到硬件收发报文数据,具体包括:
[0017]封装网卡硬件寄存器的读写函数、硬件统计寄存器的读取函数、硬件收发DMA寄存器读取函数以及软件收发头尾指针读取函数,得到封装函数;
[0018]采用所述封装函数读取网卡硬件寄存器的统计信息,得到硬件收发报文数据。
[0019]其中,所述网卡硬件寄存器的统计信息包括:控制寄存器和状态寄存器的值、硬件统计寄存器的值、硬件头和尾对应的指针值以及软件头和尾对应的指针值。
[0020]其中,所述对所述软件收发报文数据和硬件收发报文数据进行比对,并根据比对结果确定所述网卡的工作状态,进一步包括:
[0021]对所述硬件统计寄存器的值中的非零值、软件收发报文数据、硬件收发报文数据以及软件收发报文数据与硬件收发报文数据的差值进行打印显示;
[0022]根据打印显示结果,确定所述网卡在收发报文中是否存在丢包和/或错包。
[0023]其中,所述方法还包括:
[0024]对所述硬件头和尾对应的指针值以及软件头和尾对应的指针值进行打印显示;以及
[0025]根据硬件头和尾对应的指针值确定当前收发报文过程对应的硬件环形队列运转状态,并根据软件头和尾对应的指针值确定当前收发报文过程对应的软件环形队列运转状
??τ O
[0026]根据本发明的另一个方面,提供了一种网卡收发报文的统计调试系统,该系统包括:
[0027]统计模块,用于在网卡收发报文函数中增加统计调试信息,以使网卡收发报文函数按照所述统计调试信息对网卡收发报文信息进行统计,得到软件收发报文数据;
[0028]获取模块,用于获取网卡硬件寄存器的统计信息,得到硬件收发报文数据;
[0029]处理模块,对所述软件收发报文数据和硬件收发报文数据进行比对,并根据比对结果确定所述网卡的工作状态。
[0030]其中,所述处理模块,还用于当所述网卡的工作状态存在异常时,根据所述软件收发报文数据和/或硬件收发报文数据进行异常问题定位。
[0031]本发明的有益效果为:
[0032]本发明提供的网卡收发报文的统计调试方法及系统,通过在网络设备网卡收发报文函数中增加统计调试信息作为软统计,得到软件收发报文数据,同时获取网卡硬件寄存器的统计信息作为硬统计,得到硬件收发报文数据,对软硬件统计数据进行比对查看,进而快速定位网卡收发报文是否正常及大致判断问题原因。
[0033]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0034]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0035]图1为本发明实施例提出的一种网卡收发报文的统计调试方法的流程图;
[0036]图2为本发明实施例提出的一种网卡收发报文的统计调试系统的结构示意图。
【具体实施方式】
[0037]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0038]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
[0039]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
[0040]图1示出了本发明实施例的一种网卡收发报文的统计调试方法的流程图。
[0041]如图1所示,本发明实施例提出的网卡收发报文的统计调试方法具体包括以下步骤:
[0042]S11、在网卡收发报文函数中增加统计调试信息,以使网卡收发报文函数按照所述统计调试信息对网卡收发报文信息进行统计,得到软件收发报文数据。
[0043]S12、获取网卡硬件寄存器的统计信息,得到硬件收发报文数据。
[0044]S13、对所述软件收发报文数据和硬件收发报文数据进行比对,并根据比对结果确定所述网卡的工作状态。
[0045]需要说明的是,在本实施例中,所述网卡的工作状态包括正常状态和异常状态。具体的,当软件收发报文数据和硬件收发报文数据一致时,则确定硬件网卡的工作状态正常。当软件收发报文数据和硬件收发报文数据不一致时,即硬件网卡的存在丢包、错包等状态时,则确定硬件网卡的工作状态存在异常,为异常状态。
[0046]本发明实施例提供的网卡收发报文的统计调试方法,通过在网卡收发报文函数中增加统计调试信息,以使网卡收发报文函数按照所述统计调试信息对网卡收发报文信息进行统计,得到软件收发报文数据,同时获取网卡硬件寄存器的统计信息,得到硬件收发报文数据,再通过对软硬件统计数据进行比对,并根据比对结果确定网卡的工作状态,进而可以直观查看网卡软硬件统计值及状态,并通过对软硬件统计值进行比对查看,进而快速定位网卡收发报文是否正常及大致判断问题原因。
[0047]在本发明的一个可选实施例中,所述网卡收发报文的统计调试方法还包括:当所述网卡的工作状态存在异常时,根据所述软件收发报文数据和/或硬件收发报文数据进行异常问题定位。
[0048]本发明实施例中,当根据软件收发报文数据和硬件收发报文数据的比对结果确定网卡的工作状态为异常状态时,进一步可通过软件收发报文数据或硬件收发报文或两者结合确定导致异常的问题,定对导致异常的问题进行定位,进一步确保网卡收发报文的统计调试。
[0049]在本发明的一个可选实施例中,所述统计调试信息,包括各网卡队列收发包个数、各数据包字节数、丢包个数和SKB分配失败个数,以及各CPU内核收发包个数、各数据包字节数、丢包个数和SKB分配失败个数。
[0050]进一步地,所述方法还包括:对所述各网卡队列收发包个数和各CPU内核收发包个数进行打印显示;以及根据所述各网卡队列收发包个数确定网卡多队列哈希是否均匀,和/或根据所述各(PU内核收发包个数确定CPU多核收发是否均衡。
[0051]在实际应用中,通过在网卡收发包函数中增加报文统计信息作为软统计,包括按网卡队列、按CPU CoreID的收发包个数、字节数的统计,丢包个数统计(tx_busy),skb分配失败个数统计(skb_alloc_fail);按网卡队列的报文统计用于判断网卡收发包是否均匀,按CPU CoreID的收发包统计用于判断CPU负载是否均衡,发送丢包统计用于判断网卡是否达到发送性能瓶颈,skb分配失败个数统计用于判断skb是否已经耗尽。
[0052]在一个具体示例中,通过新增命令行实现按网卡队列或按CPUCoreID打印显示收发包个数,进而便
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1