CN108989151A - 用于网络或应用性能管理的流量采集方法 - Google Patents

用于网络或应用性能管理的流量采集方法 Download PDF

Info

Publication number
CN108989151A
CN108989151A CN201810806484.7A CN201810806484A CN108989151A CN 108989151 A CN108989151 A CN 108989151A CN 201810806484 A CN201810806484 A CN 201810806484A CN 108989151 A CN108989151 A CN 108989151A
Authority
CN
China
Prior art keywords
net packet
newly
packet
shared drive
increased
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.)
Granted
Application number
CN201810806484.7A
Other languages
English (en)
Other versions
CN108989151B (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.)
BEIJING YUNSHAN NETWORKS TECHNOLOGY Co Ltd
Original Assignee
BEIJING YUNSHAN NETWORKS TECHNOLOGY Co Ltd
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 BEIJING YUNSHAN NETWORKS TECHNOLOGY Co Ltd filed Critical BEIJING YUNSHAN NETWORKS TECHNOLOGY Co Ltd
Priority to CN201810806484.7A priority Critical patent/CN108989151B/zh
Publication of CN108989151A publication Critical patent/CN108989151A/zh
Application granted granted Critical
Publication of CN108989151B publication Critical patent/CN108989151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Abstract

本发明实施例提供一种用于网络或应用性能管理的流量采集方法,包括:采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;若采集单元检测到共享内存中存在新增的网包,则采集新增的网包,完成流量采集;其中,共享内存为采集单元和操作系统内核共用的内存,新增的网包为目标虚拟网卡对应的目标虚拟机发送或接收的网包。本发明实施例提供的用于网络或应用性能管理的流量采集方法,通过设置采集单元在共享内存中对目标虚拟网卡进行网包监控,若检测到存在新增的网包,则采集新增的网包,能够进行高效地流量采集,为后端分析工具提供可靠的数据源,能够在无需对虚拟机进行变更的前提下完全采集互访的流量。

Description

用于网络或应用性能管理的流量采集方法
技术领域
本发明实施例涉及计算机技术领域,更具体地,涉及一种用于网络或应用性能管理的流量采集方法。
背景技术
网络性能管理(NPM,Network Performance Management)将端到端业务和应用在交付相关性方面的可见性与网络行为分析相结合,来解决网络运维管理方面难以发现、定位和诊断故障的挑战。NPM可以分析应用每一跳路径上TCP或更高层面的行为或者是某个核心节点上的所有基于诸如TCP等传输层协议的应用行为,并且在出现故障的时候及时发现和定位问题,从而为IT的运维保障提供一种能够实时发现网络和应用故障、深挖问题直至单个会话,并能调阅全部原始数据的“终极手段”。应用性能管理(APM,ApplicationPerformance Management)是比NPM在用户自定义应用的性能分析方面更进一步的产品。APM需要针对用户应用进行定制开发,深度识别和解析用户特定应用协议和流程的各个字段和各种状态,从而给出用户所需的各种统计分析结果。
对于进行网络性能管理和应用性能管理,其中需要进行流量采集,由于进行流量采集的目的是对网络的运行状况和应用的性能进行监控管理,因此对流量的采集不能影响流量的正常转发。为了对流量进行采集,现有方法均需要对目标流量进行复制。
现有的服务器流量采集方法分为两类:第一类方法是在服务器上通过sFlowAgent或tcpdump工具从系统内核中采集(复制)网包,进而完成对于流量的采集。第二类方法是在与服务器连接的交换机上通过镜像(SPAN、RSPAN、ERSPAN等)采集(复制)网包,进而完成对于流量的采集。
已有技术对虚拟服务器的流量采集存在如下缺陷:
首先是在交换机上采集的功能问题:采用第二类方法采集流量时,由于虚拟服务器上的虚拟机之间存在直接的网络访问,在交换机上通过镜像复制流量的方式不能完全采集服务器内部互访的流量。
其次是在虚拟机内部采集的侵入性问题:采用第一类方法采集流量时,在虚拟机内部安装sFlow或tcpdump能够实现流量的全部采集,但这种方法需要对所有虚拟机进行变更,存在软件安装的版本冲突、访问虚拟机的权限冲突、部署规模大难以管理等一系列问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种用于网络或应用性能管理的流量采集方法。
本发明实施例提供一种用于网络或应用性能管理的流量采集方法,包括:采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集;其中,所述共享内存为采集单元和操作系统内核共用的内存,所述新增的网包为所述目标虚拟网卡对应的目标虚拟机发送或接收的网包。
本发明实施例提供一种用于网络或应用性能管理的流量采集设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述流量采集方法。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述流量采集方法。
本发明实施例提供的用于网络或应用性能管理的流量采集方法,通过设置采集单元在共享内存中对目标虚拟网卡进行网包监控,若检测到存在新增的网包,则采集新增的网包,能够进行高效地流量采集,为后端分析工具提供可靠的数据源,能够在无需对虚拟机进行变更的前提下完全采集互访的流量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明用于网络或应用性能管理的流量采集方法实施例的流程图;
图2为本发明实施例中的用于网络或应用性能管理的流量采集设备的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明用于网络或应用性能管理的流量采集方法实施例的流程图,如图1所示,包括:S101、采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;S102、若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集;其中,所述共享内存为采集单元和操作系统内核共用的内存,所述新增的网包为所述目标虚拟网卡对应的目标虚拟机发送或接收的网包。
本发明实施例提供的用于网络或应用性能管理的流量采集方法,基于部署在同一虚拟服务器上的操作系统内核、采集单元、若干个虚拟机和与所述若干个虚拟机一一对应的若干个虚拟网卡完成。本发明实施例中的若干个指代一个或者多个。
任一虚拟机,用于向对应的虚拟网卡发送网包,以及接收对应的虚拟网卡转发的网包;
任一虚拟网卡,用于接收对应的虚拟机发送的网包,并将对应的虚拟机发送的网包转发至指定的虚拟机,所述指定的虚拟机在所述虚拟服务器中。
所述任一虚拟网卡还用于接收其它虚拟机发送给对应的虚拟机的网包,并将发送给对应的虚拟机的网包转发至对应的虚拟机,所述其它虚拟机在所述虚拟服务器中。
具体地,步骤S101中,采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控,网包的监控是循环查找的,所述共享内存优选包括一个环形缓冲区,采集单元在环形缓冲区中通过循环查找,可以在当有新增的网包时即采集。
具体地,步骤S102中,采集所述新增的网包,即已经完成流量采集,本领域的技术人员可以理解,采集了新增的网包,即指代已经完成流量采集。
进一步地,本发明实施例中的操作系统内核优选为Linux操作系统内核。
进一步地,对于本发明实施例中提到的套接字:应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。
进一步地,共享内存是通过把同一块内存分别映射到不同的进程空间中实现进程间通信。
本发明实施例提供的用于网络或应用性能管理的流量采集方法,通过设置采集单元在共享内存中对目标虚拟网卡进行网包监控,若检测到存在新增的网包,则采集新增的网包,能够进行高效地流量采集,为后端分析工具提供可靠的数据源,能够在无需对虚拟机进行变更的前提下完全采集互访的流量。
进一步地,采用现有技术中第一类方法采集流量时,需要在网卡、内核各产生一次复制,共产生两次网包复制,这样会使得CPU开销较大。虚拟服务器可能承载大量的虚拟机,本身的网络负载相比裸服务器更高。
为了解决现有技术中的上段所述的问题,基于上述实施例,所述步骤S102,即若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集,之前还包括:所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中;或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中。
具体地,mmap方法是将一个文件或者其它对象映射进内存的方法。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。
进一步地,所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中,之后还包括:所述目标虚拟网卡将所述第一网包转发至所述第一网包指定的虚拟机。
进一步地,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中,之后还包括:所述目标虚拟网卡将所述第二网包转发至所述目标虚拟机。
所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中之后,所述共享内存中就包含了一个新增的网包,此时采集单元即可采集(抓取)该新增的网包。所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中之后,所述共享内存中就包含了一个新增的网包,此时采集单元即可采集(抓取)该新增的网包。
进一步地,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中,具体包括:所述操作系统内核将所述第一网包作为所述新增的网包复制到自身的内存中,将自身内存中的新增的网包通过mmap方法映射到共享内存中。
进一步地,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中,具体包括:所述操作系统内核将所述第二网包作为所述新增的网包复制到自身的内存中,将自身内存中的新增的网包通过mmap方法映射到共享内存中。
本发明实施例提供的用于网络或应用性能管理的流量采集方法,通过设置操作系统内核将新增的网包通过mmap方法映射到共享内存中,能够在流量采集方法的过程中只是进行一次复制的操作,即将新增的网包复制进操作系统内核,而无需从内核再次复制新增的网包以实现抓取,解决了现有技术中由于存在两次复制而导致的CPU开销较大的问题,能够降低CPU消耗。
基于上述实施例,所述步骤S101,即所述采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控,进一步包括:所述采集单元通过调用所述操作系统内核的抓包套接字接口,将虚拟服务器中的任一虚拟网卡设置为目标虚拟网卡,并在共享内存中对所述目标虚拟网卡进行网包监控。
本实施例是指,所述用于网络或应用性能管理的流量采集方法,可以指定任一虚拟服务器中的虚拟网卡,对其进行网包的采集。
基于上述实施例,所述若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集,之前还包括:所述采集单元通过调用所述操作系统内核的抓包套接字接口,向所述操作系统内核申请所述共享内存。
具体地,所述采集单元通过调用所述操作系统内核的抓包套接字接口,向所述操作系统内核申请所述共享内存,是指:所述采集单元通过调用所述操作系统内核的抓包套接字接口,向所述操作系统内核申请与所述操作系统内核共用的所述共享内存。
基于上述实施例,所述步骤S102,即所述若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集,之后还包括:所述采集单元将所述新增的网包发送至后端分析工具,以使得所述后端分析工具通过接收并分析所述新增的网包进行网络性能管理或应用性能管理。
具体地,所述后端分析工具包括后端网络性能管理分析工具,用于接收并分析所述新增的网包进行网络性能管理。所述后端分析工具还包括后端应用性能管理分析工具,用于接收并分析所述新增的网包进行应用性能管理。
基于上述实施例,所述采集单元为运行于虚拟服务器上的用户态进程。
具体地,用户态(user mode)在计算机结构指两项类似的概念。在CPU的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。
基于上述实施例,所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中;或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中,具体包括:所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包以用户态形式映射到共享内存中;或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包以用户态形式映射到共享内存中。
所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包以用户态形式映射到共享内存中,是指,映射到共享内存中的新增的网包是用户态的形式。
基于同样的道理,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包以用户态形式映射到共享内存中,是指,映射到共享内存中的新增的网包是用户态的形式。
基于上述实施例,所述采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控,具体包括:所述用户态进程通过调用操作系统内核的AF_PACKET接口,在共享内存中对目标虚拟网卡进行网包监控。
作为一个优选地实施例,用于网络或应用性能管理的流量采集方法包括:
首先,所述采集单元通过调用所述操作系统内核的抓包套接字接口,向所述操作系统内核申请所述共享内存。
其次,所述采集单元通过调用所述操作系统内核的抓包套接字接口,将虚拟服务器中的任一虚拟网卡设置为目标虚拟网卡,并在共享内存中对所述目标虚拟网卡进行网包监控。
再次,所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中;或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中。
然后,所述采集单元检测到所述共享内存中存在新增的网包,采集所述新增的网包,完成流量采集。
最后,所述采集单元将所述新增的网包发送至后端分析工具,以使得所述后端分析工具通过接收并分析所述新增的网包进行网络性能管理或应用性能管理。
下面以一个具体的实例来说明本发明实施例中提出的用于网络或应用性能管理的流量采集方法:
首先,作为采集单元的用户态进程通过调用Linux操作系统内核的AF_PACKET接口,向所述Linux操作系统内核申请共享内存M,M由N块大小为S的内存组成。
其次,作为采集单元的用户态进程通过调用Linux操作系统内核的AF_PACKET接口,将虚拟服务器中的虚拟网卡NIC_A设置为目标虚拟网卡,并在M中对NIC_A进行网包监控。
再次,NIC_A接收到所述目标虚拟机A发送的第一网包,所述Linux操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到M中;或者,NIC_A接收到发送给A的第二网包,所述Linux操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到M中。
然后,作为采集单元的用户态进程检测到M中存在新增的网包,采集所述新增的网包,完成流量采集。
最后,作为采集单元的用户态进程将新增的网包发送至后端分析工具,以使得所述后端分析工具通过接收并分析所述新增的网包进行网络性能管理或应用性能管理。
本实例采集了350k pps的流量,消耗CPU为1核的19%。
通过该实例,以及进行在服务器上通过tcpdump工具从系统内核中采集网包的实例,可以得知本发明实施例中提出的用于网络或应用性能管理的流量采集方法相较于现有技术中的在服务器上通过tcpdump工具从系统内核中采集网包的方法,降低了77%的CPU消耗。
基于上述实施例,图2为本发明实施例中的用于网络或应用性能管理的流量采集设备的框架示意图。请参考图2,本发明实施例提供一种用于网络或应用性能管理的流量采集设备,包括:处理器(processor)210、通信接口(Communications Interface)220、存储器(memory)230和总线240,其中,处理器210,通信接口220,存储器230通过总线240完成相互间的通信。处理器210可以调用存储器230中的逻辑指令,以执行如下方法,包括:采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集;其中,所述共享内存为采集单元和操作系统内核共用的内存,所述新增的网包为所述目标虚拟网卡对应的目标虚拟机发送或接收的网包。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的流量采集方法,例如包括:采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集;其中,所述共享内存为采集单元和操作系统内核共用的内存,所述新增的网包为所述目标虚拟网卡对应的目标虚拟机发送或接收的网包。
基于上述实施例,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的流量采集方法,例如包括:采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集;其中,所述共享内存为采集单元和操作系统内核共用的内存,所述新增的网包为所述目标虚拟网卡对应的目标虚拟机发送或接收的网包。
本领域普通技术人员可以理解:实现上述设备实施例或方法实施例仅仅是示意性的,其中所述处理器和所述存储器可以是物理上分离的部件也可以不是物理上分离的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
本发明实施例提供的用于网络或应用性能管理的流量采集方法,通过设置采集单元在共享内存中对目标虚拟网卡进行网包监控,若检测到存在新增的网包,则采集新增的网包,能够进行高效地流量采集,为后端分析工具提供可靠的数据源,能够在无需对虚拟机进行变更的前提下完全采集互访的流量。通过设置操作系统内核将新增的网包通过mmap方法映射到共享内存中,能够在流量采集方法的过程中只是进行一次复制的操作,即将新增的网包复制进操作系统内核,而无需从内核再次复制新增的网包以实现抓取,解决了现有技术中由于存在两次复制而导致的CPU开销较大的问题,能够降低CPU消耗。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种用于网络或应用性能管理的流量采集方法,其特征在于,包括:
采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控;
若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集;其中,所述共享内存为采集单元和操作系统内核共用的内存,所述新增的网包为所述目标虚拟网卡对应的目标虚拟机发送或接收的网包。
2.根据权利要求1所述的流量采集方法,其特征在于,所述若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集,之前还包括:
所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中;
或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中。
3.根据权利要求1所述的流量采集方法,其特征在于,所述采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控,进一步包括:
所述采集单元通过调用所述操作系统内核的抓包套接字接口,将虚拟服务器中的任一虚拟网卡设置为目标虚拟网卡,并在共享内存中对所述目标虚拟网卡进行网包监控。
4.根据权利要求1所述的流量采集方法,其特征在于,所述若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集,之前还包括:
所述采集单元通过调用所述操作系统内核的抓包套接字接口,向所述操作系统内核申请所述共享内存。
5.根据权利要求1所述的流量采集方法,其特征在于,所述若所述采集单元检测到所述共享内存中存在新增的网包,则采集所述新增的网包,完成流量采集,之后还包括:
所述采集单元将所述新增的网包发送至后端分析工具,以使得所述后端分析工具通过接收并分析所述新增的网包进行网络性能管理或应用性能管理。
6.根据权利要求2所述的流量采集方法,其特征在于,所述采集单元为运行于虚拟服务器上的用户态进程。
7.根据权利要求6所述的流量采集方法,其特征在于,所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中;或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包映射到共享内存中,具体包括:
所述目标虚拟网卡接收到所述目标虚拟机发送的第一网包,所述操作系统内核将所述第一网包作为所述新增的网包并通过mmap方法将所述新增的网包以用户态形式映射到共享内存中;
或者,所述目标虚拟网卡接收到发送给所述目标虚拟机的第二网包,所述操作系统内核将所述第二网包作为所述新增的网包并通过mmap方法将所述新增的网包以用户态形式映射到共享内存中。
8.根据权利要求6所述的流量采集方法,其特征在于,所述采集单元通过调用操作系统内核的抓包套接字接口,在共享内存中对目标虚拟网卡进行网包监控,具体包括:
所述用户态进程通过调用操作系统内核的AF_PACKET接口,在共享内存中对目标虚拟网卡进行网包监控。
9.一种用于网络或应用性能管理的流量采集设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至8任一所述的流量采集方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至8任一所述的流量采集方法。
CN201810806484.7A 2018-07-20 2018-07-20 用于网络或应用性能管理的流量采集方法 Active CN108989151B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810806484.7A CN108989151B (zh) 2018-07-20 2018-07-20 用于网络或应用性能管理的流量采集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810806484.7A CN108989151B (zh) 2018-07-20 2018-07-20 用于网络或应用性能管理的流量采集方法

Publications (2)

Publication Number Publication Date
CN108989151A true CN108989151A (zh) 2018-12-11
CN108989151B CN108989151B (zh) 2020-08-28

Family

ID=64549480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810806484.7A Active CN108989151B (zh) 2018-07-20 2018-07-20 用于网络或应用性能管理的流量采集方法

Country Status (1)

Country Link
CN (1) CN108989151B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110505092A (zh) * 2019-08-26 2019-11-26 中国人民解放军63698部队 一种航天通信专网性能监测及综合分析系统
CN111431757A (zh) * 2020-02-18 2020-07-17 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
CN112350887A (zh) * 2020-10-19 2021-02-09 北京基调网络股份有限公司 一种apm探针采样率确定方法、计算机设备及存储介质
CN114900487A (zh) * 2022-05-27 2022-08-12 深圳铸泰科技有限公司 基于内存设计优化流量抓取方法及系统
CN115242763A (zh) * 2021-04-16 2022-10-25 京东科技控股股份有限公司 一种终端应用的网络流量采集方法、系统及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351791B1 (en) * 1998-06-25 2002-02-26 International Business Machines Corporation Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
CN1925465A (zh) * 2006-09-22 2007-03-07 中国科学院计算技术研究所 基于共享内存实现的数据包捕获方法
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
CN102571912A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种实现基于多核处理器和混合操作系统的卸载协议栈的方法
CN105119756A (zh) * 2015-09-10 2015-12-02 深圳市网誉科技有限公司 一种基于网络管理平台与数据分析的网络监控系统及方法
CN106789728A (zh) * 2017-01-25 2017-05-31 甘肃农业大学 一种基于NetFPGA的VoIP流量实时识别方法
CN108243118A (zh) * 2016-12-27 2018-07-03 华为技术有限公司 转发报文的方法和物理主机

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351791B1 (en) * 1998-06-25 2002-02-26 International Business Machines Corporation Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
CN1925465A (zh) * 2006-09-22 2007-03-07 中国科学院计算技术研究所 基于共享内存实现的数据包捕获方法
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
CN102571912A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种实现基于多核处理器和混合操作系统的卸载协议栈的方法
CN105119756A (zh) * 2015-09-10 2015-12-02 深圳市网誉科技有限公司 一种基于网络管理平台与数据分析的网络监控系统及方法
CN108243118A (zh) * 2016-12-27 2018-07-03 华为技术有限公司 转发报文的方法和物理主机
CN106789728A (zh) * 2017-01-25 2017-05-31 甘肃农业大学 一种基于NetFPGA的VoIP流量实时识别方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110505092A (zh) * 2019-08-26 2019-11-26 中国人民解放军63698部队 一种航天通信专网性能监测及综合分析系统
CN111431757A (zh) * 2020-02-18 2020-07-17 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
WO2021164262A1 (zh) * 2020-02-18 2021-08-26 平安科技(深圳)有限公司 虚拟网络的流量采集方法、装置、计算机设备及存储介质
CN111431757B (zh) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
CN112350887A (zh) * 2020-10-19 2021-02-09 北京基调网络股份有限公司 一种apm探针采样率确定方法、计算机设备及存储介质
CN112350887B (zh) * 2020-10-19 2021-07-13 北京基调网络股份有限公司 一种apm探针采样率确定方法、计算机设备及存储介质
CN115242763A (zh) * 2021-04-16 2022-10-25 京东科技控股股份有限公司 一种终端应用的网络流量采集方法、系统及相关装置
CN114900487A (zh) * 2022-05-27 2022-08-12 深圳铸泰科技有限公司 基于内存设计优化流量抓取方法及系统
CN114900487B (zh) * 2022-05-27 2023-12-19 深圳铸泰科技有限公司 基于内存设计优化流量抓取方法及系统

Also Published As

Publication number Publication date
CN108989151B (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN108989151A (zh) 用于网络或应用性能管理的流量采集方法
CN108848092B (zh) 基于调用链的微服务灰度发布的处理方法及装置
JP6571161B2 (ja) アプリケーショントポロジ関係を探索するための方法、装置、およびシステム
CN100471139C (zh) 一种网络测试的系统和方法
CN110365793A (zh) 违规外联监测方法、装置、系统及存储介质
CN110391937B (zh) 一种基于soap服务模拟的物联网蜜网系统
CN110213121B (zh) 虚拟通信产品的测试平台、测试方法和测试装置
CN107704360A (zh) 监控数据的处理方法、设备、服务器及存储介质
US11675682B2 (en) Agent profiler to monitor activities and performance of software agents
EP3862879A1 (en) Container network interface monitoring
US10499311B2 (en) Method and apparatus for implementing network sharing
CN115617610A (zh) 一种基于Kubernetes的旁路无侵入式应用运行中的全行为监测方法及系统
CN114039875B (zh) 一种基于eBPF技术的数据采集方法、装置及系统
CN104866528B (zh) 多平台数据采集方法及系统
CN106161104A (zh) 一种基于Docker事件自动化配置Docker容器同主机网络IP的方法
CN114816894B (zh) 一种芯片测试系统、方法、设备及介质
CN109857391A (zh) 数据的处理方法及装置、存储介质和电子装置
CN102523209B (zh) 安全检测虚拟机的动态调整方法及动态调整装置
WO2017166997A1 (zh) 智能网卡侧的异常处理方法和装置
CN112564994A (zh) 流量监测方法、装置、云服务器及存储介质
CN113900939A (zh) 测试环境访问方法、装置、可读存储介质和计算机设备
CN107977243A (zh) 一种第三方接口调用方法及装置
CN104618191B (zh) 一种主机与裸存储块之间的通信故障检测方法和装置
CN116436968A (zh) 一种服务网格通信方法、系统、装置以及存储介质
CN107181701B (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