CN117785433A - 数据处理方法及装置、电子设备及计算机可读存储介质 - Google Patents
数据处理方法及装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117785433A CN117785433A CN202211261354.2A CN202211261354A CN117785433A CN 117785433 A CN117785433 A CN 117785433A CN 202211261354 A CN202211261354 A CN 202211261354A CN 117785433 A CN117785433 A CN 117785433A
- Authority
- CN
- China
- Prior art keywords
- memory
- flow
- thread
- traffic
- data processing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000015654 memory Effects 0.000 claims description 393
- 238000004590 computer program Methods 0.000 claims description 14
- 230000000903 blocking effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据处理方法及装置、电子设备及计算机可读存储介质。所述数据处理方法应用于数据处理装置,所述数据处理装置运行n个线程,所述方法包括:通过所述n个线程中的第一线程统计所述第一线程的第一流量;根据所述第一流量,确定所述数据处理装置的第二流量。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及装置、电子设备及计算机可读存储介质。
背景技术
服务端采用协程模式处理客户端的请求,可降低时间开销,提高系统的处理效率。协程模式下的服务端在统计客户端的流量时,线程易出现阻塞进而导致服务端的硬件资源利用率低,以及导致服务端的处理效率降低。
发明内容
本申请提供一种数据处理方法及装置、电子设备及计算机可读存储介质。
第一方面,提供了一种数据处理方法,所述数据处理方法应用于数据处理装置,所述数据处理装置运行n个线程,所述方法包括:
通过所述n个线程中的第一线程统计所述第一线程的第一流量;
根据所述第一流量,确定所述数据处理装置的第二流量。
在该方面中,数据处理装置通过第一线程统计第一流量,并根据第一流量得到数据处理装置的第二流量。由于第一线程统计自身的流量,无需向其他协程上报流量,可降低第一线程出现阻塞的几率,进而可提高服务端的硬件资源的利用率,以及提高服务端的处理效率。
结合本申请任一实施方式,所述方法还包括:
读取第一内存的所述第一流量;所述第一内存为存储所述第一线程的流量数据的内存。
在该种实施方式中,数据处理装置在第一线程将已统计第一线程的第一流量存储至第一内存的情况下,通过从第一内存中读取第一流量获取第一流量,这样第一线程无需为将第一流量上报至数据处理装置而等待,进而可降低第一线程出现阻塞的几率。
结合本申请任一实施方式,所述读取第一内存的所述第一流量,包括:
读取所述第一内存的快照;
根据所述快照,得到所述第一流量。
在该种实施方式中,数据处理装置通过读取第一内存的快照,获取第一内存中的流量数据的信息,进而得到第一流量,可降低因读取第一内存中的数据产生阻塞的几率。
结合本申请任一实施方式,所述通过所述n个线程中的第一线程统计所述第一线程的第一流量,包括:
在目标客户端通过所述第一线程与所述数据处理装置建立连接的情况下,所述第一线程统计所述目标客户端的流量,作为所述第一流量;
所述读取第一内存的所述第一流量之前,所述方法还包括:
在检测到目标客户端发送的请求的情况下,根据所述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为所述第一内存。
在该种实施方式中,数据处理装置检测到目标客户端发送的请求,说明目标客户端将产生流量,进而需要为目标客户端分配一个内存,以存储目标客户端的流量数据。在一种可能实现的方式中,数据处理装置选取一个未被占用的内存,作为第一内存。将目标客户端的身份标识作为第一内存的标识,这样在目标客户端与数据处理装置断开连接,并再次成功建立连接的情况下,可根据目标客户端的身份标识和第一内存的标识确定用于存储目标客户端的流量数据的内存。
结合本申请任一实施方式,在所述流量内存的数量大于1的情况下,所述至少一个流量内存还包括与所述第一内存不同的第二内存,所述第二内存为存储第二线程的流量数据的内存,所述第二线程为所述n个线程中与所述第一内存不同的内存,所述至少一个流量内存为连续内存;
所述读取第一内存的所述第一流量,包括:
读取所述至少一个流量内存中的总数据;
根据所述总数据,得到所述第一内存的所述第一流量;
所述方法还包括:
根据所述总数据,得到所述第二内存的第三流量。
在该种实施方式中,由于至少一个流量内存为连续内存,数据处理装置可一次性将至少一个流量内存中的总数据读取至缓存,然后根据总数据分别确定存储在第一内存内的第一线程的第一流量和存储在第二内存内的第二线程的第三流量,即数据处理装置可通过对内存的一次访问,读取不同线程的流量。由此可减少数据处理装置读取n个线程的流量对内存的访问次数,进而降低访问开销。
结合本申请任一实施方式,在所述读取所述至少一个流量内存中的总数据之后,所述方法还包括:
根据所述总数据,得到所述目标客户端的连接数量;
在所述连接数量小于阈值的情况下,释放所述第一内存。
在该种实施方式中,连接数量小于阈值,说明没有任何客户端通过第一线程与数据处理装置连接,因此第一内存无需存储目标客户端的流量数据,此时数据处理装置释放第一内存,可提高第一内存的利用率。
结合本申请任一实施方式,所述根据所述第一流量,确定所述数据处理装置的第二流量,包括:
确定所述第一流量与所述第三流量的和,得到所述第二流量。
结合本申请任一实施方式,所述根据所述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为所述第一内存,包括:
在所述至少一个流量内存中的待确认内存未被占用的情况下,确定所述待确认内存为所述第一内存;所述待确认内存未被占用表征所述待确认内存未存储任何流量数据。
结合本申请任一实施方式,所述方法还包括:在所述待确认内存已被占用,且所述待确认内存已释放的情况下,确定所述待确认内存为所述第一内存;所述待确认内存已被占用表征所述待确认内存已存储过流量数据。
结合本申请任一实施方式,所述方法还包括:在所述待确认内存已被占用,且所述待确认内存未释放,且占用所述待确认内存的客户端的标识与所述身份标识匹配的情况下,确定所述待确认内存为所述第一内存。
第二方面,提供了一种数据处理装置,所述数据处理装置运行n个线程,所述数据处理装置包括:
第一处理单元,用于通过所述n个线程中的第一线程统计所述第一线程的第一流量;
第二处理单元,用于根据所述第一流量,确定所述数据处理装置的第二流量。
结合本申请任一实施方式,所述数据处理装置还包括:
读取单元,用于读取第一内存的所述第一流量;所述第一内存为存储所述第一线程的流量数据的内存。
结合本申请任一实施方式,所述读取单元,用于:
读取所述第一内存的快照;
根据所述快照,得到所述第一流量。
结合本申请任一实施方式,所述第一处理单元,用于:
在目标客户端通过所述第一线程与所述数据处理装置建立连接的情况下,所述第一线程统计所述目标客户端的流量,作为所述第一流量;
所述第一处理单元,还用于在检测到目标客户端发送的请求的情况下,根据所述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为所述第一内存。
结合本申请任一实施方式,在所述流量内存的数量大于1的情况下,所述至少一个流量内存还包括与所述第一内存不同的第二内存,所述第二内存为存储第二线程的流量数据的内存,所述第二线程为所述n个线程中与所述第一内存不同的内存,所述至少一个流量内存为连续内存;
所述读取单元,用于:
读取所述至少一个流量内存中的总数据;
根据所述总数据,得到所述第一内存的所述第一流量;
所述第一处理单元,还用于根据所述总数据,得到所述第二内存的第三流量。
结合本申请任一实施方式,所述第一处理单元,还用于:
根据所述总数据,得到所述目标客户端的连接数量;
在所述连接数量小于阈值的情况下,释放所述第一内存。
结合本申请任一实施方式,所述第一处理单元,用于确定所述第一流量与所述第三流量的和,得到所述第二流量。
结合本申请任一实施方式,所述第一处理单元,用于:
在所述至少一个流量内存中的待确认内存未被占用的情况下,确定所述待确认内存为所述第一内存;所述待确认内存未被占用表征所述待确认内存未存储任何流量数据。
结合本申请任一实施方式,所述第一处理单元,还用于在所述待确认内存已被占用,且所述待确认内存已释放的情况下,确定所述待确认内存为所述第一内存;所述待确认内存已被占用表征所述待确认内存已存储过流量数据。
结合本申请任一实施方式,所述第一处理单元,还用于在所述待确认内存已被占用,且所述待确认内存未释放,且占用所述待确认内存的客户端的标识与所述身份标识匹配的情况下,确定所述待确认内存为所述第一内存。
第三方面,提供了一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能实现的方式的方法。
第四方面,提供了另一种电子设备,包括:处理器、发送装置、输入装置、输出装置和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能实现的方式的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行如上述第一方面及其任意一种可能实现的方式的方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行上述第一方面及其任一种可能的实现方式的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种确定流量内存的存储状态的示意图;
图3为本申请实施例提供的一种数据处理装置的结构示意图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”可表示前后关联对象是一种“或”的关系,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。字符“/”还可表示数学运算中的除号,例如,a/b=a除以b;6/3=2。“以下至少一项(个)”或其类似表达。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
服务端通常是通过线程模式处理客户端的请求,即由服务端调用线程处理客户端的请求。在线程模式下若某个线程出现阻塞,服务端通过所运行的系统调用其他处于空闲状态且未阻塞的线程处理请求,从而实现线程切换。但线程切换带来的时间开销,会导致系统的处理效率降低,因此一些方法采用协程模式来处理客户端的请求。所谓协程模式,即服务端的一个中央处理器(central processing unit,CPU)执行一个线程,而一个线程包括至少一个协程。在协程模式下,系统不会执行线程切换的操作,进而可降低时间开销,提高系统的处理效率。
协程模式下的服务端在统计客户端的流量时,通常是通过中心化的方式实现流量统计,具体而言,服务端中存在一个用于统计流量的流量线程,通过流量线程统计处理客户端的请求的线程的流量,可确定与服务端连接的客户端的流量。
但在流量线程统计流量的过程中,线程需要排队向流量线程依次上报流量,进而易导致线程出现阻塞。而协程模式下的线程出现阻塞,会导致用于执行该线程的CPU出现闲置,即导致数据处理装置的硬件资源利用率低,以及导致服务端的处理效率降低。
基于此,本申请实施例提供了一种技术方案,以在服务端在协程模式下统计流量的情况下,降低线程出现阻塞的几率,进而提高服务端的硬件资源的利用率,以及提高服务端的处理效率。
本申请实施例的执行主体为数据处理装置,数据处理装置即为上述服务端,其中,数据处理装置可以是任意一种可执行本申请方法实施例所公开的技术方案的电子设备。可选的,数据处理装置可以是以下中的一种:服务器、计算机。
应理解,本申请方法实施例还可以通过处理器执行计算机程序代码的方式实现。下面结合本申请实施例中的附图对本申请实施例进行描述。请参阅图1,图1是本申请实施例提供的一种数据处理方法的流程示意图。
101、通过上述n个线程中的第一线程统计上述第一线程的第一流量。
本申请实施例中,数据处理装置运行n个线程,其中,n为正整数。n个线程中的任意一个线程均包括至少一个协程。在一种可能实现的方式中,数据处理装置的核数为n,即数据处理装置的CPU数量为n。每个CPU运行一个线程。
本申请实施例中,第一线程的流量为第一流量,即通过第一线程与数据处理装置连接的客户端的流量为第一流量。第一线程统计第一流量,即第一线程统计自身的流量,而无需向其他协程上报流量,这样可降低第一线程出现阻塞的几率。
102、根据上述第一流量,确定上述数据处理装置的第二流量。
本申请实施例中,第二流量为与数据处理装置连接的客户端的总流量,即第一流量为第二流量的一部分。即数据处理装置通过对第一流量和除第一线程之外的线程的流量进行求和,可确定第一流量。
本申请实施例中,数据处理装置通过第一线程统计第一流量,并根据第一流量得到数据处理装置的第二流量。由于第一线程统计自身的流量,无需向其他协程上报流量,可降低第一线程出现阻塞的几率,进而可提高服务端的硬件资源的利用率,以及提高服务端的处理效率。
应理解,本申请实施例中,第一线程仅为简洁阐述技术方案所选定的描述对象,不应理解为n个线程中仅第一线程统计自身的流量,在实际应用中,n个线程中的各个线程分别统计各自的流量。例如,n个线程包括第一线程和线程A,其中,第一线程统计第一流量,线程A统计通过线程A与数据处理装置建立连接的客户端的流量。这样可降低n个线程因上报流量出现阻塞的几率,进而可提高服务端的硬件资源的利用率,以及提高服务端的处理效率。
作为一种可选的实施方式,数据处理装置还执行以下步骤:
201、读取第一内存的上述第一流量。
本申请实施例中,第一内存为存储第一线程的流量数据的内存,其中,第一线程的流量数据携带通过第一线程与数据处理装置建立连接的客户端的流量信息。数据处理装置根据第一流量携带的流量信息,可确定第一流量。
在该种实施方式中,数据处理装置在第一线程将已统计第一线程的第一流量存储至第一内存的情况下,通过从第一内存中读取第一流量获取第一流量,这样第一线程无需为将第一流量上报至数据处理装置而等待,进而可降低第一线程出现阻塞的几率。
应理解,在实际应用中,n个线程中的各个线程分别统计各自的流量,并将各自的流量存储至相应的内存中。数据处理装置通过存储有从各个线程的流量数据的内存中读取各个线程的流量,可获取所有线程的流量,进而可通过对所有线程的流量进行求和,得到第二流量。
作为一种可选的实施方式,数据处理装置在执行步骤201的过程中执行以下步骤:
301、读取上述第一内存的快照。
本申请实施例中,第一内存的快照携带第一内存中的流量数据的信息。可选的,数据处理装置周期性的读取第一内存的快照。
302、根据上述快照,得到上述第一流量。
数据处理装置在读取第一内存的快照的情况下,可根据快照确定第一内存中的流量数据,进而可得到第一流量。
在该种实施方式中,数据处理装置通过读取第一内存的快照,获取第一内存中的流量数据的信息,进而得到第一流量,可降低因读取第一内存中的数据产生阻塞的几率。
应理解,在实际应用中,数据处理装置可通过分别读取各个线程的内存的快照,得到各个线程的流量。
作为一种可选的实施方式,数据处理装置在执行步骤101的过程中执行以下步骤:
401、在目标客户端通过上述第一线程与上述数据处理装置建立连接的情况下,上述第一线程统计上述目标客户端的流量,作为上述第一流量。
目标客户端为通过第一线程与数据处理装置建立连接的客户端,也就是说,第一线程的流量为目标客户端的流量。因此,第一线程通过统计目标客户端的流量,得到第一流量。
可选的,在目标客户端通过第一线程与数据处理装置成功建立连接后,数据处理装置在目标客户端与数据处理装置的连接中绑定流量中间件,即将流量中间件与目标客户端的会话绑定,由此可通过该流量中间件监测目标客户端的流量。
在该种实施方式中,数据处理装置还通过执行以下步骤确定第一内存:
402、在检测到目标客户端发送的请求的情况下,根据上述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为上述第一内存。
本申请实施例中,与数据处理装置建立连接的客户端的身份标识均是唯一的,即根据客户端的身份标识可确定客户端。可选的,目标客户端在通过第一线程与数据处理装置成功建立连接后,向数据处理装置发送身份标识。可选的,目标客户端的身份标识为目标客户端的网络地址。
本申请实施例中,至少一个流量内存中的任意一个内存均用于存储与数据处理装置成功建立连接的客户端的流量数据。
可选的,至少一个流量内存中的内存与客户端一一对应,即至少一个流量内存中的一个内存用于存储一个与数据处理装置成功建立连接的客户端的流量数据。
在一种可能实现的方式中,数据处理装置将一块连续内存划分为m个流量内存,此时,至少一个流量内存即为m个流量内存,每个流量内存均用于一个客户端的流量数据。例如,数据处理装置将一块容量为1兆(Mb)划分为1024个内存槽位(slot),此时一个内存槽位即为一个流量内存,每个流量内存的容量为1字节(Kb)。
数据处理装置检测到目标客户端发送的请求,说明目标客户端将产生流量,进而需要为目标客户端分配一个内存,以存储目标客户端的流量数据。在一种可能实现的方式中,数据处理装置选取一个未被占用的内存,作为第一内存。将目标客户端的身份标识作为第一内存的标识,这样在目标客户端与数据处理装置断开连接,并再次成功建立连接的情况下,可根据目标客户端的身份标识和第一内存的标识确定用于存储目标客户端的流量数据的内存。
作为一种可选的实施方式,在流量内存的数量大于1的情况下,至少一个流量内存为连续内存,即流量内存两两相邻。此时,至少一个流量内存还包括与第一内存不同的第二内存,即第一内存与第二内存相邻。第二内存为存储第二线程的流量数据的内存,第二线程为n个线程中与上述第一内存不同的内存。
在该种实施方式中,数据处理装置在执行步骤201的过程中执行以下步骤:
501、读取上述至少一个流量内存中的总数据。
本申请实施例中,总数据包括所有流量内存中的流量数据。由于至少一个流量内存是连续内存,数据处理装置可将至少一个流量内存中的总数据一次性读取到缓存,即将所有流量内存中的流量数据一起读取到缓存。
502、根据上述总数据,得到上述第一内存的上述第一流量。
由于总数据包括存储在第一内存中的流量数据,数据处理装置根据总数据,可得到第一内存的第一流量。可选的,数据处理装置根据第一内存的地址从总数据中确定存储在第一内存中的流量数据,进而得到第一流量。
在该种实施方式中,数据处理装置还执行以下步骤:
503、根据上述流量数据,得到上述第二内存的第三流量。
由于总数据包括存储在第二内存中的流量数据,数据处理装置根据总数据,可得到第二内存的第三流量,其中,第三流量即为第二线程的流量。可选的,数据处理装置根据第二内存的地址从总数据中确定存储在第二内存中的流量数据,进而得到第三流量。
在该种实施方式中,由于至少一个流量内存为连续内存,数据处理装置可一次性将至少一个流量内存中的总数据读取至缓存,然后根据总数据分别确定存储在第一内存内的第一线程的第一流量和存储在第二内存内的第二线程的第三流量,即数据处理装置可通过对内存的一次访问,读取不同线程的流量。由此可减少数据处理装置读取n个线程的流量对内存的访问次数,进而降低访问开销。
作为一种可选的实施方式,数据处理装置在读取到至少一个流量内存中的总数据的情况下,还执行以下步骤:
601、根据上述总数据,得到上述目标客户端的连接数量。
本申请实施例中,目标客户端即为当前正通过第一线程与数据处理装置建立连接的客户端,连接数量即为当前正通过第一线程与数据处理装置建立连接的客户端的数量。
例如,客户端A在2022年8月18日15点07分20秒至2022年8月18日17点27分13秒这段时间内通过第一线程与数据处理装置建立连接,客户端B从2022年9月18日15点32分2秒开始通过第一线程与数据处理装置建立连接,且未断开连接。
若当前时刻为2022年9月18日15点56分,那么由于客户端A在当前时刻未通过第一线程与数据处理装置建立连接,客户端A不是目标客户端,而客户端B在当前时刻通过第一线程与数据处理装置建立连接,因此客户端B是目标客户端。
在该种实施方式中,连接数量存储在第一内存中。因此数据处理装置根据总数据,可得到目标客户端的连接数据。
可选的,第一线程在确定一个客户端通过第一线程与数据处理装置建立连接的情况下,使连接数量加1。在确定一个目标客户端与数据处理装置断开连接的情况下,使连接数量减1。
应理解,在实际应用中,若将当前通过n个线程中除第一线程之外的线程与数据处理装置建立连接的客户端称为参考客户端,那么参考客户端的数量均存储分别存储在对应的流量内存中。例如,当前通过第二线程与数据处理装置建立连接的参考客户端的数量存储在第二内存中。
602、在上述连接数量小于阈值的情况下,释放上述第一内存。
可选的,阈值为1,此时连接数量小于1即为没有任何客户端通过第一线程与数据处理装置连接,即目标客户端的数量为0,因此第一内存无需存储目标客户端的流量数据,此时数据处理装置释放第一内存,可提高第一内存的利用率。
可选的,数据处理装置在已读取第一内存的流量数据,且连接数量小于阈值的情况下,释放第一内存。即数据处理装置已统计完第一线程的第一流量,并且目标客户端的数量为0,进而可释放第一内存,提高第一内存的利用率。
应理解,在实际应用中,至少一个流量内存中除第一内存之外的内存中均存储有参考客户端的数量,在确定参考客户端的数量小于阈值的情况下,将释放相应的内存。
作为一种可选的实施方式,数据处理装置在执行步骤102的过程中执行以下步骤:
701、确定上述第一流量与上述第三流量的和,得到上述第二流量。
数据处理装置通过对第一线程的第一流量和第二线程的第三流量进行求和,得到数据处理装置的总流量,即第二流量。
作为一种可选的实施方式,数据处理装置在执行根据上述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为上述第一内存的步骤中,执行以下步骤:
801、上述至少一个流量内存中的待确认内存未被占用的情况下,确定上述待确认内存为上述第一内存。
本申请实施例中,待确认内存是至少一个流量内存中的任意一个内存。待确认内存未被占用表征待确认内存未存储任何流量数据,即待确认内存未存储过任何流量数据。此时处理装置可将待确认内存作为第一内存,即将待确认内存用于存储第一线程的流量数据。
作为一种可选的实施方式,数据处理装置还执行以下步骤:901、在上述待确认内存已被占用,且上述待确认内存已释放的情况下,确定上述待确认内存为上述第一内存。
本申请实施例中,待确认内存已被占用,说明待确认内存曾被用于存储过流量数据。待确认内存已释放,说明待确认内存虽然被用于存储过流量数据,但存储在待确认内存中的流量数据已被清理,即待确认内存当前可用于存储流量数据。因此,数据处理装置确定待确认内存为第一内存。
在一种可能实现的方式中,数据处理装置先确定待确认内存是否已被占用,如果确定已被占用,则进一步确定待确认内存是否已释放,如果确定已释放,则确定待确认内存为第一内存。
作为一种可选的实施方式,数据处理装置还执行以下步骤:1001、在上述待确认内存已被占用,且上述待确认内存未释放,且占用上述待确认内存的客户端的标识与上述身份标识匹配的情况下,确定上述待确认内存为上述第一内存。
待确认内存未释放,即说明待确认内存中存储有占用待确认内存的客户端的流量数据。此时数据处理装置进一步确定占用待确认内存的客户端的标识与目标客户端的身份标识是否匹配,即确定占用待确认内存的客户端是否为目标客户端。如果确定两者匹配,即确定占用待确认内存的客户端为目标客户端,因此,可将待确认内存作为第一内存,即继续通过第一内存存储目标客户端的流量数据。
在一种可能实现的方式中,数据处理装置先确定待确认内存是否已被占用,如果确定已被占用,则进一步确定待确认内存是否已释放,如果确定未释放,则进一步确定占用待确认内存的客户端的标识与目标客户端的身份标识是否匹配,如果匹配则确定待确认内存是第一内存,如果不匹配,则排除将待确认内存作为第一内存的可能,并确定至少一个流量内存中除待确认内存之外的内存是否可作为第一内存,确定的方式可参见步骤801、步骤901、步骤1001。
本申请实施例中,数据处理装置通过执行步骤801、步骤901、步骤1001,实现为目标客户端分配第一内存,这样结合步骤601和步骤602对第一内存的释放,可提高第一内存的复用率,由此在与数据处理装置连接的客户端的数量多的情况下,可提高流量统计的准确度。
基于步骤801、步骤901、步骤1001的技术方案,本申请实施例还提供了一种可能的实现方式。如图2所示,流量内存的数量为s,即至少一个流量内存为s个流量内存,这s个内存的存储状态记录于二层位图中,其中,二层位图包括占用位图和可用位图。具体的,占用位图表征各个流量内存是否被占用,可用位图表征各个流量内存是否已被释放。
占用位图中的一格、可用位图中的一格、一个流量内存一一对应。具体在图2中,占用位图的第一格(即占用位图最左边的一格)、可用位图的第一格(即可用位图最左边的一格)均与流量内存1对应,占用位图的第二格(即占用位图左边起第二格)、可用位图的第二格(即可用位图左边起第二格)均与流量内存2对应,占用位图的第三格(即占用位图左边起第三格)、可用位图的第三格(即可用位图左边起第三格)均与流量内存3对应,占用位图的第四格(即占用位图左边起第四格)、可用位图的第四格(即可用位图左边起第四格)均与流量内存4对应,…,占用位图的第s格(即占用位图最右边的一格)、可用位图的第s格(即可用位图最右边的一格)均与流量内存s对应。
其中,占用位图某一格为深色表征该格对应的流量内存已被占用,占用位图某一格为白色表征该格对应的流量内存未被占用,可用位图某一格为深色表征该格对应的流量内存未被释放,可用位图某一格为白色表征该格对应的流量内存已被释放。
数据处理装置首先根据占用位图确定待确认内存是否被占用,如果确定未被占用,则将待确认内存作为第一内存,如果确定已被占用,则进一步根据可用位图确定待确认内存是否已被释放,若确定已被释放,则确定待确认内存为第一内存。若确定未被释放,则确定占用待确认内存的客户端的标识与目标客户端的身份标识是否匹配,如果匹配则确定待确认内存为第一内存,如果不匹配则根据占用位图确定除待确认内存之外的流量内存的是否被占用,直到确定第一内存。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参阅图3,图3为本申请实施例提供的一种数据处理装置的结构示意图,该数据处理装置1包括第一处理单元11、第二处理单元12,可选的,该数据处理装置1还包括读取单元13,具体的:
所述数据处理装置运行n个线程,所述数据处理装置包括:
第一处理单元11,用于通过所述n个线程中的第一线程统计所述第一线程的第一流量;
第二处理单元12,用于根据所述第一流量,确定所述数据处理装置的第二流量。
结合本申请任一实施方式,所述数据处理装置还包括:
读取单元13,用于读取第一内存的所述第一流量;所述第一内存为存储所述第一线程的流量数据的内存。
结合本申请任一实施方式,所述读取单元13,用于:
读取所述第一内存的快照;
根据所述快照,得到所述第一流量。
结合本申请任一实施方式,所述第一处理单元11,用于:
在目标客户端通过所述第一线程与所述数据处理装置建立连接的情况下,所述第一线程统计所述目标客户端的流量,作为所述第一流量;
所述第一处理单元11,还用于在检测到目标客户端发送的请求的情况下,根据所述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为所述第一内存。
结合本申请任一实施方式,在所述流量内存的数量大于1的情况下,所述至少一个流量内存还包括与所述第一内存不同的第二内存,所述第二内存为存储第二线程的流量数据的内存,所述第二线程为所述n个线程中与所述第一内存不同的内存,所述至少一个流量内存为连续内存;
所述读取单元13,用于:
读取所述至少一个流量内存中的总数据;
根据所述总数据,得到所述第一内存的所述第一流量;
所述第一处理单元11,还用于根据所述总数据,得到所述第二内存的第三流量。
结合本申请任一实施方式,所述第一处理单元11,还用于:
根据所述总数据,得到所述目标客户端的连接数量;
在所述连接数量小于阈值的情况下,释放所述第一内存。
结合本申请任一实施方式,所述第一处理单元11,用于确定所述第一流量与所述第三流量的和,得到所述第二流量。
结合本申请任一实施方式,所述第一处理单元11,用于:
在所述至少一个流量内存中的待确认内存未被占用的情况下,确定所述待确认内存为所述第一内存;所述待确认内存未被占用表征所述待确认内存未存储任何流量数据。
结合本申请任一实施方式,所述第一处理单元11,还用于在所述待确认内存已被占用,且所述待确认内存已释放的情况下,确定所述待确认内存为所述第一内存;所述待确认内存已被占用表征所述待确认内存已存储过流量数据。
结合本申请任一实施方式,所述第一处理单元11,还用于在所述待确认内存已被占用,且所述待确认内存未释放,且占用所述待确认内存的客户端的标识与所述身份标识匹配的情况下,确定所述待确认内存为所述第一内存。
本申请实施例中,数据处理装置通过第一线程统计第一流量,并根据第一流量得到数据处理装置的第二流量。由于第一线程统计自身的流量,无需向其他协程上报流量,可降低第一线程出现阻塞的几率,进而可提高服务端的硬件资源的利用率,以及提高服务端的处理效率。
在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
图4为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备2包括处理器21,存储器22。可选的,该电子设备2还包括输入装置23,输出装置24。该处理器21、存储器22、输入装置23和输出装置24通过连接器相耦合,该连接器包括各类接口、传输线或总线等等,本申请实施例对此不作限定。应当理解,本申请的各个实施例中,耦合是指通过特定方式的相互联系,包括直接相连或者通过其他设备间接相连,例如可以通过各类接口、传输线、总线等相连。
处理器21可以包括是一个或多个处理器,例如包括一个或多个CPU,在处理器是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。可选的,处理器21可以是多个GPU构成的处理器组,多个处理器之间通过一个或多个总线彼此耦合。可选的,该处理器还可以为其他类型的处理器等等,本申请实施例不作限定。
存储器22可用于存储计算机程序指令,以及用于执行本申请方案的程序代码在内的各类计算机程序代码。可选地,存储器包括但不限于是随机存储记忆体(random accessmemory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasableprogrammable read only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器用于相关指令及数据。
输入装置23用于输入数据和/或信号,以及输出装置24用于输出数据和/或信号。输入装置23和输出装置24可以是独立的器件,也可以是一个整体的器件。
可理解,本申请实施例中,存储器22不仅可用于存储相关指令,还可用于存储相关数据,本申请实施例对于该存储器中具体所存储的数据不作限定。
可以理解的是,图4仅仅示出了一种电子设备的简化设计。在实际应用中,电子设备还可以分别包含必要的其他元件,包含但不限于任意数量的输入/输出装置、处理器、存储器等,而所有可以实现本申请实施例的电子设备都在本申请的保护范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。所属领域的技术人员还可以清楚地了解到,本申请各个实施例描述各有侧重,为描述的方便和简洁,相同或类似的部分在不同实施例中可能没有赘述,因此,在某一实施例未描述或未详细描述的部分可以参见其他实施例的记载。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital versatiledisc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。
Claims (13)
1.一种数据处理方法,其特征在于,所述数据处理方法应用于数据处理装置,所述数据处理装置运行n个线程,所述方法包括:
通过所述n个线程中的第一线程统计所述第一线程的第一流量;
根据所述第一流量,确定所述数据处理装置的第二流量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
读取第一内存的所述第一流量;所述第一内存为存储所述第一线程的流量数据的内存。
3.根据权利要求2所述的方法,其特征在于,所述读取第一内存的所述第一流量,包括:
读取所述第一内存的快照;
根据所述快照,得到所述第一流量。
4.根据权利要求2所述的方法,其特征在于,所述通过所述n个线程中的第一线程统计所述第一线程的第一流量,包括:
在目标客户端通过所述第一线程与所述数据处理装置建立连接的情况下,所述第一线程统计所述目标客户端的流量,作为所述第一流量;
所述读取第一内存的所述第一流量之前,所述方法还包括:
在检测到目标客户端发送的请求的情况下,根据所述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为所述第一内存。
5.根据权利要求4所述的方法,其特征在于,在所述流量内存的数量大于1的情况下,所述至少一个流量内存还包括与所述第一内存不同的第二内存,所述第二内存为存储第二线程的流量数据的内存,所述第二线程为所述n个线程中与所述第一内存不同的内存,所述至少一个流量内存为连续内存;
所述读取第一内存的所述第一流量,包括:
读取所述至少一个流量内存中的总数据;
根据所述总数据,得到所述第一内存的所述第一流量;
所述方法还包括:
根据所述总数据,得到所述第二内存的第三流量。
6.根据权利要求5所述的方法,其特征在于,在所述读取所述至少一个流量内存中的总数据之后,所述方法还包括:
根据所述总数据,得到所述目标客户端的连接数量;
在所述连接数量小于阈值的情况下,释放所述第一内存。
7.根据权利要求5所述的方法,其特征在于,所述根据所述第一流量,确定所述数据处理装置的第二流量,包括:
确定所述第一流量与所述第三流量的和,得到所述第二流量。
8.根据权利要求4至7中任意一项所述的方法,其特征在于,所述根据所述目标客户端的身份标识,从至少一个流量内存中确定一个内存,作为所述第一内存,包括:
在所述至少一个流量内存中的待确认内存未被占用的情况下,确定所述待确认内存为所述第一内存;所述待确认内存未被占用表征所述待确认内存未存储任何流量数据。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:在所述待确认内存已被占用,且所述待确认内存已释放的情况下,确定所述待确认内存为所述第一内存;所述待确认内存已被占用表征所述待确认内存已存储过流量数据。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:在所述待确认内存已被占用,且所述待确认内存未释放,且占用所述待确认内存的客户端的标识与所述身份标识匹配的情况下,确定所述待确认内存为所述第一内存。
11.一种数据处理装置,其特征在于,所述数据处理装置运行n个线程,所述数据处理装置包括:
第一处理单元,用于通过所述n个线程中的第一线程统计所述第一线程的第一流量;
第二处理单元,用于根据所述第一流量,确定所述数据处理装置的第二流量。
12.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如权利要求1至10中任意一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行权利要求1至10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211261354.2A CN117785433A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法及装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211261354.2A CN117785433A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法及装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785433A true CN117785433A (zh) | 2024-03-29 |
Family
ID=90387937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211261354.2A Pending CN117785433A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法及装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785433A (zh) |
-
2022
- 2022-10-14 CN CN202211261354.2A patent/CN117785433A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11546644B2 (en) | Bandwidth control method and apparatus, and device | |
US5805827A (en) | Distributed signal processing for data channels maintaining channel bandwidth | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN112689007B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112465615B (zh) | 账单数据的处理方法、装置及系统 | |
CN112214313A (zh) | 内存分配方法及相关设备 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN114595043A (zh) | 一种io调度方法和装置 | |
CN108241535B (zh) | 资源管理的方法、装置及服务器设备 | |
CN110231981B (zh) | 服务调用方法及装置 | |
CN113867973A (zh) | 资源分配的方法和装置 | |
CN111866902B (zh) | 资源利用率的评估方法和装置 | |
CN117785433A (zh) | 数据处理方法及装置、电子设备及计算机可读存储介质 | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN204425400U (zh) | 应用服务器系统 | |
CN115878309A (zh) | 资源分配方法、装置、处理核、设备和计算机可读介质 | |
CN109379211B (zh) | 一种网络监控方法及装置、服务器和存储介质 | |
US9479579B2 (en) | Grouping processing method and system | |
CN111092817A (zh) | 一种数据传输方法及装置 | |
CN109818767B (zh) | 一种Redis集群容量调整的方法、装置及存储介质 | |
CN117785434A (zh) | 数据处理方法及装置、电子设备及计算机可读存储介质 | |
CN112087401B (zh) | 分布式存储中实现服务质量的方法和装置 | |
CN111970073B (zh) | 一种网络负荷状态的确定方法及装置 | |
CN111866093B (zh) | 一种业务数据的分发方法及装置 | |
CN113162990B (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 |