CN116700999B - 数据处理方法、装置、计算机设备及存储介质 - Google Patents

数据处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116700999B
CN116700999B CN202310980445.XA CN202310980445A CN116700999B CN 116700999 B CN116700999 B CN 116700999B CN 202310980445 A CN202310980445 A CN 202310980445A CN 116700999 B CN116700999 B CN 116700999B
Authority
CN
China
Prior art keywords
data processing
data
threads
performance
network traffic
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
Application number
CN202310980445.XA
Other languages
English (en)
Other versions
CN116700999A (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.)
Information and Data Security Solutions Co Ltd
Original Assignee
Information and Data Security Solutions 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 Information and Data Security Solutions Co Ltd filed Critical Information and Data Security Solutions Co Ltd
Priority to CN202310980445.XA priority Critical patent/CN116700999B/zh
Publication of CN116700999A publication Critical patent/CN116700999A/zh
Application granted granted Critical
Publication of CN116700999B publication Critical patent/CN116700999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据处理方法、装置、计算机设备及存储介质,涉及数据处理技术领域,以至少解决数据处理性能低的问题。该方法包括:在数据接收进程,获取网络流量数据;以及,按照计算机设备的运行资源,确定对网络流量数据进行处理的至少一个数据处理进程和各个数据处理进程分别包括的数据处理线程的线程数量;线程数量在预设范围内;在预设范围内对网络流量数据处理的数据处理性能是高于第一预设性能的;数据处理进程与数据存储区域一一对应;将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程,以及,采用多个数据处理线程,对分配的网络流量数据进行处理。

Description

数据处理方法、装置、计算机设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
为了提高数据平面应用程序数据处理的工作效率,基于DPDK(Data PlaneDevelopment Kit,数据平面开发套件)模式,采用进程中的多个线程,对应用程序关联的数据进行收发和处理操作,以提高数据处理性能和吞吐量。随着应用程序的用户数量和用户数据的逐步增多,上述数据的数据量也会逐步增加。为了保证对日益增加的数据的数据处理性能,通常采用增加进程中线程的线程数量,来同步处理日益增加的数据。然而,上述无限制地增加线程数量的方式,对数据的数据处理性能不仅改善不大,甚至导致数据处理性能大大降低的问题。
发明内容
本发明提供一种数据处理方法、装置、计算机设备及存储介质,以至少解决数据处理性能低的问题。本发明的技术方案如下:
根据本发明实施例的第一方面,提供了一种数据处理方法,应用于计算机设备,该方法包括:在数据接收进程,获取网络流量数据;以及,按照计算机设备的运行资源,确定对网络流量数据进行处理的至少一个数据处理进程和各个数据处理进程分别包括的数据处理线程的线程数量;线程数量在预设范围内;在预设范围内对网络流量数据处理的数据处理性能是高于第一预设性能的;数据处理进程与数据存储区域一一对应,数据存储区域用于存储对应的数据处理进程上的网络流量数据;将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程,以及,采用对应的多个数据处理线程,对分配的网络流量数据进行处理。
在一些实现方式中,上述网络流量数据是从计算机设备的网卡中获取的。
在一种可能的实现方式中,将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程,包括:确定网络流量数据中多组IP对;一组IP对为网络流量数据中一组上行数据和下行数据对应的IP对;按照将同一组IP对的上行数据和下行数据分配至同一数据处理线程的分配原则,将网络流量数据分配至对应的多个数据处理线程。
在另一种可能的实现方式中,确定网络流量数据中多组IP对,包括:确定网络流量数据中上行数据的第一IP对的第一哈希值以及下行数据的第二IP对的第二哈希值;将第一哈希值和第二哈希值相同的第一IP对和第二IP对确定为一组IP对。
在另一种可能的实现方式中,该方法还包括:为每个数据处理线程初始化一个对应的无锁队列;将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程;包括:将网络流量数据分配至各个数据处理线程对应的无锁队列,以使各个数据处理线程基于无锁队列,接收分配至数据处理线程的网络流量数据。
在另一种可能的实现方式中,数据处理性能与线程数量正相关,预设范围为第一预设阈值至第二预设阈值构成的范围区间;第一预设阈值小于第二预设阈值;方法还包括:检测到性能提高指令;性能提高指令用于指示将网络流量数据的数据处理性能提高至大于或等于第二预设性能;第二预设性能大于第一预设性能; 响应于性能提高指令,依次将各个数据处理进程中包括的数据处理线程的线程数量增加至第二预设阈值,直至对网络流量数据的数据处理性能大于或等于第二预设性能。
在另一种可能的实现方式中,该方法还包括:在将各个数据处理进程中包括的数据处理线程的线程数量均增加至第二预设阈值,且网络流量数据的数据处理性能小于第二预设性能时,逐次增加至少一个数据处理进程的进程数量,直至对网络流量数据的数据处理性能大于或等于第二预设性能或占用所有计算机设备的运行资源。
在另一种可能的实现方式中,该方法还包括:针对任一数据处理线程,将处理后的网络流量数据释放至数据处理线程所属数据处理进程对应的数据存储区域中。
在另一种可能的实现方式中,针对任一数据处理线程,对分配的网络流量数据进行处理包括以下一项或多项:解析分配至数据处理线程的网络流量数据、对分配至数据处理线程的网络流量数据进行数据清洗和对分配至数据处理线程的网络流量数据进行数据还原。
根据本发明实施例的第二方面,提供了一种数据处理装置,应用于计算机设备,该装置包括:获取单元,用于在数据接收进程,获取网络流量数据;以及,按照计算机设备的运行资源,确定对网络流量数据进行处理的至少一个数据处理进程和各个数据处理进程分别包括的数据处理线程的线程数量;线程数量在预设范围内;在预设范围内对网络流量数据处理的数据处理性能是高于第一预设性能的;数据处理进程与数据存储区域一一对应,数据存储区域用于存储对应的数据处理进程上的网络流量数据;
处理单元,用于将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程,以及,采用对应的多个数据处理线程,对分配的网络流量数据进行处理。
在一种可能的实现方式中,处理单元具体用于:确定网络流量数据中多组IP对;一组IP对为网络流量数据中一组上行数据和下行数据对应的IP对;按照将同一组IP对的上行数据和下行数据分配至同一数据处理线程的分配原则,将网络流量数据分配至对应的多个数据处理线程。
在另一种可能的实现方式中,确定网络流量数据中多组IP对,包括:确定网络流量数据中上行数据的第一IP对的第一哈希值以及下行数据的第二IP对的第二哈希值;将第一哈希值和第二哈希值相同的第一IP对和第二IP对确定为一组IP对。
在另一种可能的实现方式中,处理单元还具体用于:为每个数据处理线程初始化一个对应的无锁队列;将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程;包括:将网络流量数据分配至各个数据处理线程对应的无锁队列,以使各个数据处理线程基于无锁队列,接收分配至数据处理线程的网络流量数据。
在另一种可能的实现方式中,数据处理性能与线程数量正相关,预设范围为第一预设阈值至第二预设阈值构成的范围区间;第一预设阈值小于第二预设阈值;处理单元还具体用于:检测到性能提高指令;性能提高指令用于指示将网络流量数据的数据处理性能提高至大于或等于第二预设性能;第二预设性能大于第一预设性能; 响应于性能提高指令,依次将各个数据处理进程中包括的数据处理线程的线程数量增加至第二预设阈值,直至对网络流量数据的数据处理性能大于或等于第二预设性能。
在另一种可能的实现方式中,处理单元还具体用于:在将各个数据处理进程中包括的数据处理线程的线程数量均增加至第二预设阈值,且网络流量数据的数据处理性能小于第二预设性能时,逐次增加至少一个数据处理进程的进程数量,直至对网络流量数据的数据处理性能大于或等于第二预设性能或占用所有计算机设备的运行资源。
在另一种可能的实现方式中,处理单元还具体用于:针对任一数据处理线程,将处理后的网络流量数据释放至数据处理线程所属数据处理进程对应的数据存储区域中。
在另一种可能的实现方式中,针对任一数据处理线程,对分配的网络流量数据进行处理包括以下一项或多项:解析分配至数据处理线程的网络流量数据、对分配至数据处理线程的网络流量数据进行数据清洗和对分配至数据处理线程的网络流量数据进行数据还原。
根据本发明实施例的第三方面,提供了一种计算机设备,包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行可执行指令,以实现如第一方面及其任一种可能的实现方式的数据处理方法。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行如第一方面及其任一种可能的实现方式的的数据处理方法。
根据本申请实施例的第五方面,提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行上述第一方面及其任一种可能的实现方式的数据处理方法。
本发明的实施例提供的技术方案至少带来以下有益效果:在数据接收进程上,考虑到计算机设备的运行资源的限制、进程数量和线程数量对数据处理性能的综合影响,对接收的网络流量数据的进程数量和各个数据处理进程包括的线程数量进行确定,以使各个数据处理进程包括的线程数量限定在预设范围内,以使一个数据处理进程关联的一个数据存储区域所对应的数据处理线程的线程数量位于合理范围内,从而使得在数据处理进程和数据处理线程时,以高于第一预设性能的数据处理性能,对网络流量数据进行处理。如此,避免一个数据处理进程中包括的数据处理线程的线程数量过多,导致该数据处理进程关联的一个数据存储区域对应的数据处理线程过多的问题,从而减少数据处理过程中该数据存储区域产生的共享数据区,以降低共享数据区产生互斥锁的可能性、提高数据处理性能;同时,避免一个数据处理进程中包括的数据处理线程的线程数量过少,而导致数据处理性能过低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1是根据一示例性实施例示出的一种数据处理系统的示意图;
图2是根据一示例性实施例示出的一种数据处理方法的流程图一;
图3是根据一示例性实施例示出的一种数据处理过程的示意图;
图4是根据一示例性实施例示出的一种数据处理方法的流程图二;
图5是根据一示例性实施例示出的一种数据处理装置的框图;
图6是根据一示例性实施例示出的一种计算机设备的示意图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
并且,以下本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在对本申请实施例提供的数据处理方法进行详细介绍之前,先对本申请实施例涉及的应用场景和实施环境进行简单介绍。
首先,对本申请涉及的应用场景进行简单介绍。
为了提高数据平面应用程序数据处理的工作效率,基于DPDK(Data PlaneDevelopment Kit,数据平面开发套件)模式,采用进程中的多个线程,对应用程序关联的数据进行收发和处理操作,以提高数据处理性能和吞吐量。随着应用程序的用户数量和用户数据的逐步增多,上述数据的数据量也会逐步增加。为了保证对日益增加的数据的数据处理性能,通常采用增加进程中线程的线程数量,来同步处理日益增加的数据。然而,上述增加线程数量的方式,对数据的数据处理性能不仅改善不大,甚至导致数据处理性能大大降低的问题。
针对上述问题,本申请提供了一种数据处理方法,在数据接收进程上,考虑到计算机设备的运行资源的限制、进程数量和线程数量对数据处理性能的综合影响,对接收的网络流量数据的进程数量和各个数据处理进程包括的线程数量进行确定,以使各个数据处理进程包括的线程数量限定在预设范围内,以使一个数据处理进程关联的一个数据存储区域所对应的数据处理线程的线程数量位于合理范围内,从而使得在数据处理进程和数据处理线程时,以高于第一预设性能的数据处理性能,对网络流量数据进行处理。
如此,避免一个数据处理进程中包括的数据处理线程的线程数量过多,导致该数据处理进程关联的一个数据存储区域对应的数据处理线程过多的问题,从而减少数据处理过程中该数据存储区域产生的共享数据区,以降低共享数据区产生互斥锁的可能性、提高数据处理性能;同时,避免一个数据处理进程中包括的数据处理线程的线程数量过少,而导致数据处理性能过低。
其次,下面对本申请涉及的实施架构进行简单介绍。
图1是本申请提供的一种数据处理系统的示意图。如图1所示,该数据处理系统包括安装有应用程序的终端设备101和包括服务器的计算机设备102。其中,终端设备101和计算机设备102的服务器之间可以通过有线网络或无线网络建立连接。
基于计算机设备102的网卡,对各个终端设备101的应用程序的网络流量数据进行采集。计算机设备102先基于数据接收进程,对网络流量数据进行接收处理。具体地,从计算机设备102的网卡中,获取网络流量数据以及确定用于对该网络流程数据进行处理的各个数据处理进程和各个数据处理进程包括的多个数据处理线程,并对传输层以下层(如开放式系统互联通信7层参考模型中的会话层、表达层和应用层或开放式系统互联通信4层参考模型中的应用层)的数据进行数据还原,以得到多组IP对。并根据IP对的哈希值,将网络流量数据分发至数据处理进程中各个数据处理线程。计算机设备102再基于数据处理进程对应的各个数据处理线程,对分配至数据处理线程上的网络流量数据进行处理。
在一些实施例中,服务器包含有数据库或与数据库连接,各个不同应用程序的网络流量数据存储在数据库中。服务器可以通过访问该数据库获取到网络流量数据。
另一些实施例中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本申请对服务器的具体实现方式也不作限制。
终端设备101可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等可以安装并使用内容社区应用(如快手)的设备,本申请对该终端设备101的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。
可选地,上述图1所示的数据处理系统中,计算机设备102可以与至少一个终端设备101连接。本申请对终端设备的数量及类型均不作限制。
本申请实施例提供的数据处理方法可以应用于前述图1所示的实施架构中的终端设备。为了便于理解,以下结合附图对本申请提供的数据处理方法进行具体介绍。
图2是根据一示例性实施例示出的一种数据处理方法的流程图,如图2所示,该数据处理方法包括以下步骤。
S21,基于数据接收进程,获取网络流量数据;以及,按照计算机设备的运行资源,确定对网络流量数据进行处理的至少一个数据处理进程和各个数据处理进程分别包括的数据处理线程的线程数量。
上述数据接收进程也包括至少一个数据接收线程。
为了减小出现互斥锁的概率,上述至少一个数据处理进程中一个数据处理进程对应一个数据存储区域。该数据存储区域用于存储与数据存储区域对应的数据处理进程上的网络流量数据。
示例性的,该数据存储区域可以为存储器缓存(memory buffer ,mbuf)。
在一些实施方式中,在确定至少一个数据处理进程和各个数据处理进程分别包括的数据处理线程的线程数量的同时,也对应地,为各个数据处理进程申请一一对应的多个存储器缓存,多个存储器缓存也可称为存储器缓存池。
上述线程数量在预设范围内。并且,在预设范围内对网络流量数据处理的数据处理性能是高于第一预设性能的。
可选地,在预设范围内,数据处理性能与线程数量正相关,即在预设范围内,线程数量越大,数据处理性能越大。
可以理解的是,预设范围是由第一预设阈值和第二预设阈值构成的区间范围,第一预设阈值小于第二预设阈值。一个数据处理进程包括的线程数量在第一预设阈值时对应的数据处理性能是第一预设性能。
其中,第二预设阈值可以是指示数据处理性能最大时一个数据处理进程包括的线程数量。如此,一个数据处理进程包括的线程数量大于第二预设阈值时数据处理性能下降。
进一步地,将数据处理进程设置为与数据存储区域一一对应,数据存储区域用于存储对应的数据处理进程上的网络流量数据。
在一些实施方式中,上述网络流量数据是从计算机设备的网卡中获取的。
可选地,计算机设备的运行资源包括用于对网络流量数据运行的计算机硬件资源和计算机软件资源。其中,计算机硬件资源包括处理器、内存、硬盘、显示器等等;计算机软件资源可以是应用程序、数据库、网络资源或其他软件等等,这些软件资源构成了计算机设备的核心,它们提供了计算机设备所需的功能。
示例性的,如图3所示,数据处理过程包括数据接收进程和数据处理进程两个阶段。通常,在对网络流量数据接收的数据接收进程阶段,数据接收性能较高,因此,为了避免对计算机设备的运行资源的浪费,将数据接收进程的进程数量设置为一个。在对网络流量数据接收进程阶段,对网络流量数据进行接收和获取的同时,也基于计算机设备的运行资源,对网络流量数据待分配的数据处理进程的进程数量和待分配的数据处理线程的线程数量进行确定,以保证对网络流量数据的数据处理性能。
S22,将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程,以及,采用多个数据处理线程,对对应分配的网络流量数据进行处理。
在一些实施例中,对网络流量数据进行处理产生的数据处理结果,可以为网络日志和告警日志等。
可选地,针对任一数据处理线程,对分配的网络流量数据进行处理包括以下一项或多项:解析分配至数据处理线程的网络流量数据、对分配至数据处理线程的网络流量数据进行数据清洗和对分配至数据处理线程的网络流量数据进行数据还原。
如图3所示,在对网络流量数据接收进程完成后,将网络流量数据分配至各个数据处理进程包括的数据处理线程中,以采用各个数据处理线程,对分配至数据处理线程的网络流量数据进行处理。其中,用于对网络流量数据进行处理的数据处理进程为两个:数据处理进程1和数据处理进程2。数据处理进程1均包括n个数据处理线程,即,数据处理进程1包括数据处理线程1-1、数据处理线程1-2、、、数据处理线程1-n;数据处理进程2包括n个数据处理线程,即为:数据处理线程2-1、数据处理线程2-2、、、数据处理线程2-n。
作为一种数据分配方式,首先,为每个数据处理线程初始化一个对应的无锁队列。其次,将网络流量数据分配至各个数据处理线程对应的无锁队列,以使各个数据处理线程基于无锁队列,接收分配至数据处理线程的网络流量数据。基于此无锁队列的数据分配方式,使得数据处理线程上接收分配的网络流量数据过程的不产生互斥锁,从而加快数据处理速度。
示例性的,如图3中一个数据处理线程对应一个无锁队列。具体地,在数据处理进程1中,数据处理线程1-1对应设置有无锁队列1-1、数据处理线程1-2对应设置有无锁队列1-2、、、数据处理线程1-n对应设置有无锁队列1-n。在数据处理进程2中,数据处理线程2-1对应设置有无锁队列2-1、数据处理线程2-2对应设置有无锁队列2-2、、、数据处理线程2-n对应设置有无锁队列2-n。
为了使得同一数据处理进程中其他数据处理线程能对当前数据处理线程的合理使用,针对任一数据处理线程,将处理后的网络流量数据释放至数据处理线程所属数据处理进程对应的数据存储区域中。
通过上述实施方式,在数据接收进程上,考虑到计算机设备的运行资源的限制、进程数量和线程数量对数据处理性能的综合影响,对接收的网络流量数据的进程数量和各个数据处理进程包括的线程数量进行确定,以使各个数据处理进程包括的线程数量限定在预设范围内,以使一个数据处理进程关联的一个数据存储区域所对应的数据处理线程的线程数量位于合理范围内,从而使得在数据处理进程和数据处理线程时,以高于第一预设性能的数据处理性能,对网络流量数据进行处理。
如此,避免一个数据处理进程中包括的数据处理线程的线程数量过多,导致该数据处理进程关联的一个数据存储区域对应的数据处理线程过多的问题,从而减少数据处理过程中该数据存储区域产生的共享数据区,以降低共享数据区产生互斥锁的可能性、提高数据处理性能;同时,避免一个数据处理进程中包括的数据处理线程的线程数量过少,而导致数据处理性能过低。
作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体施过程,本申请实施例提供了另一些数据处理实施方式。
结合图2如图4所示,上述步骤S22中对网络流量数据的分配方式,可以通过如下步骤具体实施。
S221,确定网络流量数据中多组IP对。
其中,一组IP对为网络流量数据中一组上行数据和下行数据对应的IP。一组上行数据和下行数据中,上行数据和下行数据相互对应。
作为一种IP对的确定方式,先确定网络流量数据中包括的上行数据的第一IP对的第一哈希值以及下行数据的第二IP对的第二哈希值。分别将网络流量数据中第一哈希值和第二哈希值相同的第一IP对和第二IP对确定为一组IP对,以得到多组IP对。
上述IP对可以为五元组或四元组的IP对。五元组可以为源IP地址,源端口,目的IP地址,目的端口和传输层协议。
S222,按照将同一组IP对的上行数据和下行数据分配至同一数据处理线程的分配原则,将网络流量数据分配至对应的多个数据处理线程。
基于IP对分配网络流量数据的分配方式,能使得对应的上行数据和下行数据(如请求数据和对应的应答数据)在同一个数据处理线程,以使得对数据处理过程的网络流量数据能同源同宿,从而保证数据处理过程的合理性。
针对在对网络流量数据进行处理前或处理时或处理过程中,对数据处理性能提出更高要求的实施场景,会检测到对应的性能提高指令,该性能提高指令用于指示将网络流量数据的数据处理性能提高至大于或等于第二预设性能。为了提升数据处理性能,响应于该性能提高指令,依次将各个数据处理进程中包括的数据处理线程的线程数量增加至第二预设阈值,直至对网络流量数据的数据处理性能大于或等于第二预设性能。
具体地,按照各个数据处理进程的预设序列,依次地针对一个数据处理进程中将该一个数据处理进程中包括的数据处理线程的线程数量增加至第二预设阈值,并且每次将一个数据处理进程包括的线程数量增加至第二预设阈值后,判断该网络流量数据的数据处理性能是否大于或等于第二预设性能,若是,则停止对后续的一个数据处理进程包括的线程数量进行增加。若否,则继续将后续的一个数据处理进程包括的线程数量增加至第二预设阈值。
进一步地,在将各个数据处理进程中包括的数据处理线程的线程数量均增加至预设阈值后,网络流量数据的数据处理性能依然小于第二预设性能时,逐次增加至少一个数据处理进程的进程数量,直至对网络流量数据的数据处理性能大于或等于第二预设性能或占用所有计算机设备的运行资源。
其中,针对任一逐次增加的数据处理进程,一个数据处理进程包括第二预设阈值个数据处理线程。
具体地,逐次增加一个数据处理进程,直至对网络流量数据的数据处理性能大于或等于第二预设性能或占用所有计算机设备的运行资源。
基于上述提升数据处理性能的方式,每个数据处理进程会启动多个数据处理线程,同时控制单个数据处理进程内的线程数量,当需要提升系统处理性能时,先通过增加数据处理进程内的线程数量来实现;当各个数据处理进程内的线程数量达到临界值(即,第二预设阈值)时,通过增加数据处理进程的进程数量的方式来继续提升数据处理性能,以达到充对计算机设备的硬件cpu多核的能力的充分利用。
为了实现上述功能,数据处理装置包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例还提供一种如图5所示的数据处理装置,应用于计算机设备,该装置包括:获取单元501和处理单元502。
获取单元501,用于在数据接收进程,获取网络流量数据;以及,按照计算机设备的运行资源,确定对网络流量数据进行处理的至少一个数据处理进程和各个数据处理进程分别包括的数据处理线程的线程数量;线程数量在预设范围内;在预设范围内对网络流量数据处理的数据处理性能是高于第一预设性能的;数据处理进程与数据存储区域一一对应,数据存储区域用于存储对应的数据处理进程上的网络流量数据;
处理单元502,用于将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程,以及,采用对应的多个数据处理线程,对分配的网络流量数据进行处理。
在一种可能的实施方式中,处理单元502具体用于:确定网络流量数据中多组IP对;一组IP对为网络流量数据中一组上行数据和下行数据对应的IP;按照将同一组IP对的上行数据和下行数据分配至同一数据处理线程的分配原则,将网络流量数据分配至对应的多个数据处理线程。
在另一种可能的实施方式中,确定网络流量数据中多组IP对,包括:确定网络流量数据中上行数据的第一IP对的第一哈希值以及下行数据的第二IP对的第二哈希值;将第一哈希值和第二哈希值相同的第一IP对和第二IP对确定为一组IP对。
在另一种可能的实施方式中,处理单元502还具体用于:为每个数据处理线程初始化一个对应的无锁队列;将网络流量数据分配至至少一个数据处理进程对应的多个数据处理线程;包括:将网络流量数据分配至各个数据处理线程对应的无锁队列,以使各个数据处理线程基于无锁队列,接收分配至数据处理线程的网络流量数据。
在另一种可能的实施方式中,数据处理性能与线程数量正相关,预设范围为第一预设阈值至第二预设阈值构成的范围区间;第一预设阈值小于第二预设阈值;处理单元502还具体用于:检测到性能提高指令;性能提高指令用于指示将网络流量数据的数据处理性能提高至大于或等于第二预设性能;第二预设性能大于第一预设性能; 响应于性能提高指令,依次将各个数据处理进程中包括的数据处理线程的线程数量增加至第二预设阈值,直至对网络流量数据的数据处理性能大于或等于第二预设性能。
在另一种可能的实施方式中,处理单元502还具体用于:在将各个数据处理进程中包括的数据处理线程的线程数量均增加至第二预设阈值,且网络流量数据的数据处理性能小于第二预设性能时,逐次增加至少一个数据处理进程的进程数量,直至对网络流量数据的数据处理性能大于或等于第二预设性能或占用所有计算机设备的运行资源。
在另一种可能的实施方式中,处理单元502还具体用于:针对任一数据处理线程,将处理后的网络流量数据释放至数据处理线程所属数据处理进程对应的数据存储区域中。
在另一种可能的实施方式中,针对任一数据处理线程,对分配的网络流量数据进行处理包括以下一项或多项:解析分配至数据处理线程的网络流量数据、对分配至数据处理线程的网络流量数据进行数据清洗和对分配至数据处理线程的网络流量数据进行数据还原。
关于上述实施例中的装置,其中各个单元模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是本申请提供的一种计算机设备的示意图。如图6,该计算机设备60可以包括至少一个处理器601以及用于存储处理器可执行指令的存储器603。其中,处理器601被配置为执行存储器603中的指令,以实现以下实施例中的数据处理方法。
另外,计算机设备60还可以包括通信总线602、至少一个通信接口604、输入设备606和输出设备605。
处理器601可以是一个处理器(central processing units,CPU),微处理单元,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线602可包括一通路,在上述组件之间传送信息。
通信接口604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
输入设备606用于接收输入信号和输出设备605用于输出信号。
存储器603可以是只读存储器(read-only memory,ROM) 或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM) 或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器603用于存储执行本申请方案的指令,并由处理器601来控制执行。处理器601用于执行存储器603中存储的指令,从而实现本申请方法中的功能。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备60可以包括多个处理器,例如图6中的处理器601和处理器607。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
该计算机设备如图6所示包括:处理器601和用于存储处理器601可执行指令的存储器603;其中,处理器601被配置为执行可执行指令,以实现如上述任一种可能的实施方式的数据处理方法。且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,当计算机可读存储介质中的指令由数据处理装置或计算机设备的处理器执行时,使得数据处理装置或计算机设备能够执行如上述任一种可能的实施方式的数据处理方法。且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行如上述任一种可能的实施方式的数据处理方法。且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据处理方法,其特征在于,应用于计算机设备,所述方法包括:
在数据接收进程,获取网络流量数据;
以及,按照所述计算机设备的运行资源,确定对所述网络流量数据进行处理的至少一个数据处理进程和各个所述数据处理进程分别包括的数据处理线程的线程数量;所述线程数量在预设范围内;在所述预设范围内对所述网络流量数据处理的数据处理性能是高于第一预设性能的;所述数据处理进程与数据存储区域一一对应,所述数据存储区域用于存储对应的所述数据处理进程上的所述网络流量数据;
将所述网络流量数据分配至所述至少一个数据处理进程对应的多个所述数据处理线程,以及,采用对应的多个所述数据处理线程,对分配的所述网络流量数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将所述网络流量数据分配至所述至少一个数据处理进程对应的多个所述数据处理线程,包括:
确定所述网络流量数据中多组IP对;一组IP对为所述网络流量数据中一组上行数据和下行数据对应的IP对;
按照将同一组IP对的上行数据和下行数据分配至同一所述数据处理线程的分配原则,将所述网络流量数据分配至对应的多个所述数据处理线程。
3.根据权利要求2所述的方法,其特征在于,所述确定所述网络流量数据中多组IP对,包括:
确定所述网络流量数据中上行数据的第一IP对的第一哈希值以及下行数据的第二IP对的第二哈希值;
将所述第一哈希值和所述第二哈希值相同的第一IP对和第二IP对确定为一组IP对。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
为每个所述数据处理线程初始化一个对应的无锁队列;
所述将所述网络流量数据分配至所述至少一个数据处理进程对应的多个所述数据处理线程;包括:
将所述网络流量数据分配至各个所述数据处理线程对应的无锁队列,以使各个所述数据处理线程基于所述无锁队列,接收分配至所述数据处理线程的所述网络流量数据。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述数据处理性能与所述线程数量正相关,所述预设范围为第一预设阈值至第二预设阈值构成的范围区间;所述第一预设阈值小于所述第二预设阈值;所述方法还包括:
检测到性能提高指令;所述性能提高指令用于指示将所述网络流量数据的数据处理性能提高至大于或等于第二预设性能;所述第二预设性能大于所述第一预设性能;
响应于所述性能提高指令,依次将各个所述数据处理进程中包括的所述数据处理线程的线程数量增加至所述第二预设阈值,直至对所述网络流量数据的数据处理性能大于或等于所述第二预设性能。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在将各个所述数据处理进程中包括的所述数据处理线程的线程数量均增加至所述第二预设阈值,且所述网络流量数据的数据处理性能小于所述第二预设性能时,逐次增加所述至少一个数据处理进程的进程数量,直至对所述网络流量数据的数据处理性能大于或等于所述第二预设性能或占用所有所述计算机设备的运行资源。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
针对任一所述数据处理线程,将处理后的所述网络流量数据释放至所述数据处理线程所属所述数据处理进程对应的所述数据存储区域中。
8.一种数据处理装置,其特征在于,应用于计算机设备,所述装置包括:
获取单元,用于在数据接收进程,获取网络流量数据;以及,按照所述计算机设备的运行资源,确定对所述网络流量数据进行处理的至少一个数据处理进程和各个所述数据处理进程分别包括的数据处理线程的线程数量;所述线程数量在预设范围内;在所述预设范围内对所述网络流量数据处理的数据处理性能是高于第一预设性能的;所述数据处理进程与数据存储区域一一对应,所述数据存储区域用于存储对应的所述数据处理进程上的所述网络流量数据;
处理单元,用于将所述网络流量数据分配至所述至少一个数据处理进程对应的多个所述数据处理线程,以及,采用对应的多个所述数据处理线程,对分配的所述网络流量数据进行处理。
9.一种计算机设备,其特征在于,包括:
处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1-7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行如权利要求1-7中任一项的数据处理方法。
CN202310980445.XA 2023-08-07 2023-08-07 数据处理方法、装置、计算机设备及存储介质 Active CN116700999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310980445.XA CN116700999B (zh) 2023-08-07 2023-08-07 数据处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310980445.XA CN116700999B (zh) 2023-08-07 2023-08-07 数据处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN116700999A CN116700999A (zh) 2023-09-05
CN116700999B true CN116700999B (zh) 2023-10-03

Family

ID=87832577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310980445.XA Active CN116700999B (zh) 2023-08-07 2023-08-07 数据处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116700999B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019140593A (ja) * 2018-02-14 2019-08-22 ブラザー工業株式会社 プログラムおよび情報処理装置
CN113238854A (zh) * 2021-07-07 2021-08-10 苏州浪潮智能科技有限公司 一种线程数自动调节的方法、装置、设备及可读介质
CN113821174A (zh) * 2021-09-26 2021-12-21 迈普通信技术股份有限公司 存储处理方法、装置、网卡设备及存储介质
CN114443274A (zh) * 2021-12-22 2022-05-06 新奥新智科技有限公司 调节微服务线程池中线程数的方法、装置及可读存储介质
CN115269206A (zh) * 2022-09-27 2022-11-01 湖南三湘银行股份有限公司 一种基于资源分配的数据处理方法及平台
CN116400964A (zh) * 2023-05-25 2023-07-07 平安科技(深圳)有限公司 多线程无锁的数据处理方法及相关设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522245B2 (en) * 2010-09-28 2013-08-27 Advanced Micro Devices, Inc. Thread criticality predictor
JP6435980B2 (ja) * 2015-04-27 2018-12-12 富士通株式会社 並列計算機、スレッド再割当判定方法及びスレッド再割当判定プログラム
US10725829B2 (en) * 2018-01-22 2020-07-28 Salesforce.Com, Inc. Scheduling capacity in a data-processing cluster to an application queue by repurposing monitoring-based capacity of a delegator queue for job execution in the application queue
US11269686B2 (en) * 2019-11-25 2022-03-08 Red Hat, Inc. Adaptive consumer thread pool

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019140593A (ja) * 2018-02-14 2019-08-22 ブラザー工業株式会社 プログラムおよび情報処理装置
CN113238854A (zh) * 2021-07-07 2021-08-10 苏州浪潮智能科技有限公司 一种线程数自动调节的方法、装置、设备及可读介质
CN113821174A (zh) * 2021-09-26 2021-12-21 迈普通信技术股份有限公司 存储处理方法、装置、网卡设备及存储介质
CN114443274A (zh) * 2021-12-22 2022-05-06 新奥新智科技有限公司 调节微服务线程池中线程数的方法、装置及可读存储介质
CN115269206A (zh) * 2022-09-27 2022-11-01 湖南三湘银行股份有限公司 一种基于资源分配的数据处理方法及平台
CN116400964A (zh) * 2023-05-25 2023-07-07 平安科技(深圳)有限公司 多线程无锁的数据处理方法及相关设备

Also Published As

Publication number Publication date
CN116700999A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
US20190196875A1 (en) Method, system and computer program product for processing computing task
US9161064B2 (en) Auto-scaling management of web content
CN108650334B (zh) 一种会话失效的设置方法及装置
WO2022111313A1 (zh) 一种请求处理方法及微服务系统
WO2014194704A1 (en) A grouping processing method and system
EP3161669A1 (en) Memcached systems having local caches
CN116010109B (zh) 缓存资源分配方法、装置、电子设备和存储介质
CN112785676B (zh) 一种图像渲染方法、装置、设备和存储介质
CN116700999B (zh) 数据处理方法、装置、计算机设备及存储介质
CN107493574B (zh) 无线控制器设备、并行认证处理方法、系统、组网装置
CN110489356B (zh) 信息处理方法、装置、电子设备及存储介质
US11475356B2 (en) Data processing method, electronic device and computer readable storage method for deduplication of a training dataset
CN116521639A (zh) 一种日志数据的处理方法、电子设备和计算机可读介质
JP7489478B2 (ja) タスク割り当て方法と装置、電子デバイス、コンピュータ可読媒体
US10264061B2 (en) User service access allocation method and system
CN115567602A (zh) Cdn节点回源方法、设备及计算机可读存储介质
US9479579B2 (en) Grouping processing method and system
US11233847B1 (en) Management of allocated computing resources in networked environment
CN114416357A (zh) 容器组的创建方法、装置、电子设备和介质
US10887381B1 (en) Management of allocated computing resources in networked environment
CN113672398B (zh) 全流量回溯分析系统的内存优化方法和设备
CN113055199A (zh) 网关访问方法、装置及网关设备
CN117349037B (zh) 在离线应用干扰消除方法、装置、计算机设备及存储介质
CN110796587A (zh) Drawcall调用处理方法、装置、终端及存储介质
CN115391042A (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