CN112437074A - 计数处理方法、装置、电子设备及存储介质 - Google Patents
计数处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112437074A CN112437074A CN202011287214.3A CN202011287214A CN112437074A CN 112437074 A CN112437074 A CN 112437074A CN 202011287214 A CN202011287214 A CN 202011287214A CN 112437074 A CN112437074 A CN 112437074A
- Authority
- CN
- China
- Prior art keywords
- counting
- storage unit
- period
- counter
- current
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种计数处理方法、装置、电子设备及存储介质,该方法在周期性计数情景中,预先为参与统计的统计维度对应的计数器至少分配有两个存储单元,其中,在当前计数周期内,计数器基于一个存储单元对该预定统计维度进行计数,而在当前计数周期结束时,将计数器切换为基于处于已复位状态的另一存储单元对该预定统计维度进行下一计数周期的计数,由此可以做到在当前周期结束时通过切换存储单元而无缝进入下一周期的统计计数中,不必等待当前周期所使用的存储单元完成复位,从而,避免了因复位操作所需的耗时而导致周期性计数中计数结果上下波动的问题,能够满足周期性计数中的高准确度计数要求。
Description
技术领域
本申请属于测量、计数技术领域,尤其涉及一种计数处理方法、装置、电子设备及存储介质。
背景技术
在周期统计数据情景下(如请求数/秒),需要利用计数器在每个统计周期内进行计数,每个统计周期结束后需要对计数器的计数表进行复位,然后基于复位后的计数表进入下一周期的统计计数。
当计数表的数据量较大时,复位操作会需要消耗一较长时间,这会导致在需要精确计数的场景下出现相邻周期的统计计数结果上下波动的问题,无法满足该场景下对计数周期内的高准确度计数要求。
发明内容
有鉴于此,本申请提供了一种计数处理方法、装置、电子设备及存储介质,用于至少解决周期性计数情景下因计数复位操作的耗时而导致的相邻周期计数结果上下波动的问题,满足周期性计数中的高准确度计数要求。
具体技术方案如下:
一种计数处理方法,包括:
在当前计数周期内,利用计数器在预定统计维度进行计数;
向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据;至少为所述计数器预先分配有所述第一存储单元和第二存储单元;
在所述当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数;
其中,在所述下一计数周期不是所述预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,对所述第一存储单元执行复位操作,以至少使所述第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态。
可选的,所述利用计数器在预定统计维度进行计数,包括:
基于所述计数器对应的至少一个线程在所述预定统计维度进行计数;
其中,所述计数器对应的每个线程,用于在检测发现所述预定统计维度对应的待统计对象时触发所述向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据的步骤,并对所述待统计对象进行业务处理。
可选的,所述计数器对应多个线程,所述第一存储单元、所述第二存储单元分别包括与所述多个线程一一对应的多个数据区域;
所述基于所述计数器对应的至少一个线程在所述预定统计维度进行计数,包括:基于所述多个线程以并行方式对所述待统计对象的检测发现,对所述预定统计维度进行多路并行计数;
所述向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据,包括:
对于检测发现有所述待统计对象的每个线程:
根据预定的计数步长以及所述线程当前检测发现的所述待统计对象的数量,更新所述线程在所述第一存储单元映射的相应数据区域的计数数据。
可选的,所述第一存储单元和所述第二存储单元为如下结构形式中的任意一种:
两个数据表;
一个数组;
两个缓存区域;
若所述第一存储单元和所述第二存储单元的结构形式为一个数组,则:
所述数组包括两个元素,第一元素对应的存储空间用于作为所述第一存储单元,第二元素对应的存储空间用于作为所述第二存储单元。
可选的,所述对所述第一存储单元执行复位操作,包括:
清除所述第一存储单元包括的所述多个数据区域中的计数数据。
可选的,在所述当前计数周期结束之后、对所述第一存储单元执行复位操作之前,所述方法还包括:
获取所述第一存储单元中各个数据区域中的计数数据;
根据所述各个数据区域中的计数数据,确定所述预定统计维度在所述当前计数周期对应的计数结果。
可选的,在确定所述预定统计维度对应的计数结果之后,还包括:
确定所述计数结果是否超过预定阈值;
若超过预定阈值,执行预定的防护处理,和/或,将所述计数结果发送至调度中心,以使调度中心至少基于所述计数结果进行任务调度。
一种计数处理装置,包括:
计数单元,用于在当前计数周期内,利用计数器在预定统计维度进行计数,并向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据;至少为所述计数器预先分配有所述第一存储单元和第二存储单元;
切换单元,用于在所述当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数;
复位单元,用于在所述下一计数周期不是所述预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,对所述第一存储单元执行复位操作,以至少使所述第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态。
一种电子设备,包括:
存储器,用于存放计算机指令集;
处理器,用于通过执行所述存储器上存放的指令集,实现如上任一项所述的计数处理方法。
一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令集,所述计算机指令集被处理器执行时实现如上任一项所述的计数处理方法。
本申请实施例提供的计数处理方法、装置、电子设备及存储介质,在周期性计数情景中,预先为参与统计的统计维度对应的计数器至少分配有两个存储单元,其中,在当前计数周期内,计数器基于一个存储单元对该预定统计维度进行计数,而在当前计数周期结束时,将计数器切换为基于处于已复位状态的另一存储单元对该预定统计维度进行下一计数周期的计数,由此可以做到在当前周期结束时通过切换存储单元而无缝进入下一周期的统计计数中,不必等待当前周期所使用的存储单元完成复位(当前周期所使用的存储单元的复位可以与下一周期的计数并行进行),从而,避免了因复位操作所需的耗时而导致周期性计数中计数结果上下波动的问题,能够满足周期性计数中的高准确度计数要求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。
图1是本申请实施例提供的计数处理方法的一种流程示意图;
图2是本申请实施例提供的为每个计数器预先分配有两个存储单元的示意图;
图3是本申请实施例提供的多线程同时更新计数器的示意图;
图4是本申请实施例提供的将不同存储单元分别划分为多个数据区域的示意图;
图5是本申请实施例提供的计数处理方法的另一种流程示意图;
图6是本申请实施例提供的计数处理方法的又一种流程示意图;
图7是本申请实施例提供的CDN DDOS攻击防护系统的系统架构图;
图8是本申请实施例提供的计数处理方法的再一种流程示意图;
图9是本申请实施例提供的计数处理装置的一种结构示意图;
图10是本申请实施例提供的计数处理装置的另一种结构示意图
图11是本申请实施例提供的计数处理装置的又一种结构示意图;
图12是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在周期统计数据情景下(如请求数/秒),需要利用计数器在每个统计周期内进行计数,目前常见的周期性计数方法,具体是为计数器分配一个计数表,在统计周期内计数表计数递增,周期结束时对计数表进行复位,然后基于复位后的计数表进入下一周期的统计计数。当计数表数据量较大时,复位操作会消耗相对较长的时间,例如,当计数表的数据量超过10MB量级后,以现有服务器的服务性能,对计数表复位一般需要消耗毫秒级的时长,造成相邻统计周期(如,1s)不精确,相应导致在相邻统计周期内的计数数据不准确,一般呈现上下抖动现象,本申请实施例将该现象称为流量抖动。
为了至少避免流量抖动现象的发生,满足对周期性计数中的高准确度计数要求,提出了本申请实施例的计数处理方法、装置、电子设备及存储介质。
参见图1,为本申请可选实施例提供的计数处理方法的一种流程示意图,该计数处理方法可应用于但不限于具有统计计数功能的手机、平板电脑、个人PC(如笔记本、一体机、台式机)等终端设备中,或具有统计计数功能的私有云/公有云云平台、服务节点等对应的物理机中,除了统计计数功能,可选的,应用本申请方法的执行主体设备还可以具备基于定时器的定时功能,以基于定时功能实现在所需统计维度的周期性计数。
如图1所示,本实施例中,所述计数处理方法包括以下处理步骤:
步骤101、在当前计数周期内,利用计数器在预定统计维度进行计数。
步骤102、向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据;至少为所述计数器预先分配有所述第一存储单元和第二存储单元。
所述的预定统计维度,为周期性统计计数情景中具有统计计数需求的维度,例如,在DoS(Denial of Service,拒绝服务攻击)、DDoS(Distributed Denial of Service,分布式拒绝服务攻击)防护的处理流程中会涉及到很多的周期性统计计数,如,SYN(Synchronize sequence numbers,同步序列编号)Flood攻击、ACK(Acknowledgecharacter,确认字符)Flood攻击、UDP(User Datagram Protocol,用户数据报协议)Flood攻击等各种攻击类型的攻击次数检测、流量限速中网络报文字节数的统计计数、源IP(Internet Protocol,网际互连协议)流量计数/目的IP流量计数中的网络报文数的统计计数等,相对应地,该预定统计维度则可以是但不限于上述相应攻击类型的攻击次数检测维度、网络报文字节数的统计维度、网络报文数的统计维度等等。
预定统计维度的个数可以是一个或多个,本实施例中,为每个统计维度对应分配一个计数器,利用分配的一个计数器在所对应维度进行周期性计数。
为了实现基于计数器的周期性计数处理,可结合采用后台定时器,基于后台定时器的定时功能控制周期性计数中每个计数周期的启动、结束及不同周期之间的切换。具体地,实施中,可创建并启动一用于负责对后台定时器进行监控的监控线程,该线程通过不断循环式访问定时器(例如,在请求数/秒的周期性统计中,该线程可以以毫秒级时间不断对定时器进行访问),确定周期性计数中当前周期的进度,以实现不同计数周期的启动、结束与切换。
与传统技术中为每个计数器分配一个计数表不同,本申请实施例中,至少为每个计数器预先分配有两个存储单元,即,预先为每个计数器分配有两个或两个以上的存储单元,以用于进行计数器计数数据的记录与更新,具体如图2所示。
下文将主要以为每个计数器分配有两个存储单元即第一存储单元和第二存储单元为例,对本申请实施例的计数处理方法详细说明。
其中,第一存储单元和第二存储单元不同,两个存储单元具体可实现为如下结构形式中的任意一种:
1)两个数据表;
也即,两个计数表,在计数器所对应统计维度的一个计数周期内,仅使用一个计数表负责在该周期内进行计数器计数数据的记录与更新,另一个计数表备用,本实施例将所在周期内处于使用状态的计数表称为热表,处于备用状态的计数表称为冷表。两个计数表通过计数周期的不断切换,而不断从热表状态切换为冷表状态,或从冷表状态切换为热表状态。
2)一个数组;
该数组包括两个元素,第一元素对应的存储空间(如,磁盘数据区的某块区域)用于作为第一存储单元,第二元素对应的存储空间用于作为第二存储单元。
3)两个缓存区域;
该实现方式中,具体可以在针对预定统计维度而触发计数时,实时在系统内存中创建两块动态缓存区域,并将该两块动态缓存区域分配给计数器,该两块动态缓存区域可以在针对该统计维度的当前周期性统计事件结束后释放。
优选地,两个存储单元结构形式的类型相同,如均为数据表,或均为缓存区域等,但不限于此,两个存储单元结构形式的类型也可以不同,如一个为数据表形式,另一个为数组元素形式等,本实施例对此不加限定。
基于为一个计数器分配的至少两个存储单元,在当前计数周期内,利用计数器在预定统计维度进行计数,并向两个存储单元中的之一,如第一存储单元同步更新计数器在当前计数周期内产生的计数数据,而另一存储单元如第二存储单元则处于备用状态。
以两个存储单元的实现形式为两个计数表(即冷热双表)为例,计数器在当前计数周期内产生的计数数据则同步更新至当前计数周期内处于热表状态的计数表中。
步骤103、在所述当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数。
在基于定时器的定时功能判定计数器的当前计数周期结束时,直接将计数器切换为基于处于已复位状态的第二存储单元无缝进入下一计数周期,开始下一计数周期中对所述预定统计维度的统计计数,如各种攻击类型的攻击次数检测、流量限速中网络报文字节数的统计计数、源IP流量计数/目的IP流量计数中的网络报文数的统计计数等。
并且,在所述下一计数周期不是该预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,对所述第一存储单元执行复位操作,以至少使第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态(在该下一计数周期为最后一个计数周期的情况下,则不关注是否对第一存储单元进行复位)。
也就是说,第一存储单元的复位操作可以在所述下一计数周期对应的时间段内进行,与所述下一计数周期内的计数操作过程(或至少部分计数操作过程)并行执行,由于所述下一计数周期的计数不需使用所述第一存储单元,从而该下一计数周期的启动不必以完成第一存储单元的复位为前提,第一存储单元复位操作的耗时也不会对该下一计数周期内的计数产生影响。
针对第一、第二存储单元为两个计数表的示例,假设当前计数周期内采用0号计数表作为热表进行统计计数,1号计数表为冷表,则在当前计数周期结束时,直接进行冷热表切换,以1号计数表为热表在切换进入的下一计数周期内进行统计计数,0号计数表则从热表状态切换为冷表状态。之后每个周期结束时重复执行类似于上述处理过程的切换操作。
本实施例提供的计数处理方法,在周期性计数情景中,预先为参与统计的统计维度对应的计数器至少分配有两个存储单元,其中,在当前计数周期内,计数器基于一个存储单元对该预定统计维度进行计数,而在当前计数周期结束时,将计数器切换为基于处于已复位状态的另一存储单元对该预定统计维度进行下一计数周期的计数,由此可以做到在当前周期结束时通过切换存储单元而无缝进入下一周期的统计计数中,不必等待当前周期所使用的存储单元完成复位(当前周期所使用的存储单元的复位可以与下一周期的计数并行进行),从而,避免了因复位操作所需的耗时而导致周期性计数中计数结果上下波动的问题,能够满足周期性计数中的高准确度计数要求。
实施中,可选的,可基于计数器对应的至少一个线程在所述预定统计维度进行计数。实际应用中,为了满足高性能要求,可采用多线程技术,对一个统计维度对应的批量业务处理任务进行处理。
例如,参见图3,具体可在CDN(Content Delivery Network,内容分发网络)DDOS攻击防护系统(中的各节点)针对同一统计维度采用多线程技术,每个线程绑定一个CPU(Central Processing Unit/Processor,中央处理器)核心单独处理该统计维度下的网络报文,如,报文解析、报文内容检测、服务配置查询、负载均衡报文分发等等,多个线程构成对该统计维度下批量网络报文的并行处理,以达到超高性能,然而,这会导致面临多线程同时更新计数器(指多个线程对应的同一统计维度所采用的一个计数器)而造成的计数冲突问题。
为了在解决上述流量抖动问题的同时,进一步解决因多线程同时更新计数器造成的计数冲突问题,本实施例针对计数器的两个存储单元,分别将其划分为多个数据区域,并采用分组哈希的方法,将计数器所对应统计维度下的多个线程分别哈希映射到存储单元(第一存储单元、第二存储单元)的不同区域,如图4所示,以此实现同一统计维度下多个线程的多路并行计数。
在此基础上,参见图5示出的计数处理方法的另一流程示意图,本申请的计数处理方法可进一步实现为:
步骤501、基于计数器对应的多个线程以并行方式对所述预定统计维度对应的待统计对象的检测发现,对所述预定统计维度进行多路并行计数。
本实施例中,计数器对应的多个线程,即指计数器负责计数的所述预定统计维度对应的多个线程。
其中,计数器对应的每个线程,负责所述预定统计维度对应的待统计对象的检测发现,并在检测发现相应待统计对象时触发向第一存储单元同步更新计数器在当前计数周期内产生的计数数据的步骤,以及对待统计对象进行业务处理。
预定统计维度对应的待统计对象,比如,可以是但不限于相应攻击类型的攻击次数检测维度下的攻击行为/攻击事件、网络报文数的统计维度下的网络报文等等;以待统计对象为网络报文为例,对待统计对象的业务处理,可以是但不限于报文解析、报文内容检测、服务配置查询、负载均衡报文分发等。
步骤502、对于检测发现有所述待统计对象的每个线程:根据预定的计数步长以及所述线程当前检测发现的所述待统计对象的数量,更新所述线程在所述第一存储单元映射的相应数据区域的计数数据。
每个线程在第一存储单元(如作为热表的0号计数表)对应的相应数据区域,随着该线程对所对应统计维度下待统计对象的检测发现而进行计数数据的递增,每次递增的数值视预先设定的计数步长(设为L,通常L=1)以及该线程在当前时刻发现的待统计对象的个数(设为m)而定,每次具体递增L*m。
第一存储单元中对应于多个线程的各个数据区域的计数递增过程并行执行、相互独立。
步骤503、在当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数。
具体地,在当前计数周期结束时,将计数器切换为基于处于已复位状态的第二存储单元(如1号计数表)包括的多个数据区域进行下一计数周期的计数。针对第二存储单元包括的对应于多个线程的各个数据区域,其同样采用并行方式随着所对应线程对所在统计维度下待统计对象的检测发现进行计数数据的递增,第二存储单元的各数据区域的计数递增过程与第一存储单元的上述处理过程类似,可参照理解。
步骤504、在所述下一计数周期不是所述预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,清除所述第一存储单元包括的所述多个数据区域中的计数数据,以至少使所述第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态。
容易理解,在基于计数周期的结束而进行周期切换后,当对当前所结束周期内采用的存储单元进行复位时,需要以已读取该存储单元中的数据(以获得当前已结束的周期内对预定统计维度的计数结果)为前提,由此,参见图6,所述计数处理方法在步骤404之间还可以包括:
步骤504’、获取所述第一存储单元中各个数据区域中的计数数据;根据所述各个数据区域中的计数数据,确定所述预定统计维度在所述当前计数周期对应的计数结果。
具体可读取第一存储单元中各个数据区域中的计数值,并将读取的各计数值进行累加求和,最终得到该预定统计维度在所述当前计数周期的计数值,如,当前计数周期内的网络报文数、网络报文字节数或预定类型攻击的攻击次数等。
本实施例采用多线程技术对同一统计维度对应的处理对象(如网络报文)进行并行处理,提升了同一统计维度下批量处理对象的处理性能,同时通过将同一统计维度对应的计数器所分配的至少两个存储单元分别划分为多个数据区域,并采用分组哈希方式,将计数器所对应统计维度下的多个线程分别哈希映射到存储单元(第一存储单元、第二存储单元)的不同区域,在不同区域基于所对应的不同线程对该统计维度进行多路并行计数,最终通过多个区域计数数据的累加而得到该统计维度的计数结果,有效解决了多线程同时更新计数器而造成的计数冲突问题。
在本申请一可选实施例中,可将本申请方法应用于如图7示出的CDN DDOS攻击防护系统的各个节点中(但不限于此,还可以应用于类似架构的系统中,或非分布式架构的单机设备中),该系统包括调度中心及多个服务节点,其中,每个节点负责处理系统中的网络报文、向调度中心上报流量数据以及在接收的流量超过自身的防护阈值后,执行相应防护逻辑;调度中心负责接收各节点上报的流量数据,并根据流量数据结合每个节点的服务能力在各节点间进行流量调度。
在该应用场景下,参见图8示出的计数处理方法的流程示意图,该计数处理方法在步骤504’之后,还可以包括以下处理:
步骤505、确定所述计数结果是否超过预定阈值。
具体地,可由每个节点确定自身统计的相应维度计数值是否超出自身系统针对该维护设定的相应阈值。
示例性地,比如,判定当前已结束的周期内统计得到的相应攻击类型的攻击次数是否超过该攻击类型的攻击次数阈值,判定统计得到的报文字节数是否超过流量限速中设定的字节数阈值,判定统计得到的网络报文数是否超过源IP流量计数/目的IP流量计数中设定的网络报文数阈值等。
步骤506、若超过预定阈值,执行预定的防护处理,和/或将所述计数结果发送至调度中心,以使调度中心至少基于所述计数结果进行任务调度。
若某一节点中,统计的相应维度计数值超出自身系统针对该维护设定的相应阈值,则可进入自身节点的防护逻辑,如源IP统计计数/目的IP统计计数中超过阈值后直接丢包,或者,流量限速的计数统计中超过阈值后直接丢包,或者,触发SYN Flood/ACKFlood防护阈值后进行源IP限速、目的IP限速或采用相应算法进行客户端认证等等。
另外,可选的,在统计计数结果超过阈值后,节点还可以将计数结果发送至调度中心,调度中心根据计数结果及节点的服务能力(如,基于节点的磁盘I/O、CPU、内存确定节点服务能力)进行任务(流量)调度。
对应于上述的计数处理方法,本申请实施例还公开了一种计数处理装置,参阅图9示出的计数处理装置的结构示意图,该装置可以包括:
计数单元901,用于在当前计数周期内,利用计数器在预定统计维度进行计数,并向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据;至少为所述计数器预先分配有所述第一存储单元和第二存储单元;
切换单元902,用于在所述当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数;
复位单元903,用于在所述下一计数周期不是所述预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,对所述第一存储单元执行复位操作,以至少使所述第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态。
在本申请实施例的一可选实施方式中,计数单元901,具体用于:
基于所述计数器对应的至少一个线程在所述预定统计维度进行计数;
其中,所述计数器对应的每个线程,用于在检测发现所述预定统计维度对应的待统计对象时触发所述向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据的步骤,并对所述待统计对象进行业务处理。
在本申请实施例的一可选实施方式中,所述计数器对应多个线程,所述第一存储单元、所述第二存储单元分别包括与所述多个线程一一对应的多个数据区域;
计数单元901基于所述计数器对应的至少一个线程在所述预定统计维度进行计数,包括:基于所述多个线程以并行方式对所述待统计对象的检测发现,对所述预定统计维度进行多路并行计数;
计数单元901向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据,包括:
对于检测发现有所述待统计对象的每个线程:
根据预定的计数步长以及所述线程当前检测发现的所述待统计对象的数量,更新所述线程在所述第一存储单元映射的相应数据区域的计数数据。
在本申请实施例的一可选实施方式中,所述第一存储单元和所述第二存储单元为如下结构形式中的任意一种:
两个数据表;
一个数组;
两个缓存区域;
若所述第一存储单元和所述第二存储单元的结构形式为一个数组,则:
所述数组包括两个元素,第一元素对应的存储空间用于作为所述第一存储单元,第二元素对应的存储空间用于作为所述第二存储单元。
在本申请实施例的一可选实施方式中,复位单元903对所述第一存储单元执行复位操作,包括:
清除所述第一存储单元包括的所述多个数据区域中的计数数据。
在本申请实施例的一可选实施方式中,参阅图10示出的计数处理装置的结构示意图,该装置还可以包括:
在所述当前计数周期结束之后、对所述第一存储单元执行复位操作之前,所述方法还包括:
计数结果确定单元904,用于在所述当前计数周期结束之后、对所述第一存储单元执行复位操作之前,获取所述第一存储单元中各个数据区域中的计数数据;根据所述各个数据区域中的计数数据,确定所述预定统计维度在所述当前计数周期对应的计数结果。
在本申请实施例的一可选实施方式中,参阅图11示出的计数处理装置的结构示意图,该装置还可以包括:
处理单元905,用于在确定所述预定统计维度对应的计数结果之后,确定所述计数结果是否超过预定阈值;若超过预定阈值,执行预定的防护处理,和/或,将所述计数结果发送至调度中心,以使调度中心至少基于所述计数结果进行任务调度。
对于本申请实施例公开的计数处理装置而言,由于其与上文任一方法实施例公开的计数处理方法相对应,所以描述的比较简单,相关相似之处请参见上文方法实施例中计数处理方法部分的说明即可,此处不再详述。
本申请实施例还公开了一种电子设备,该电子设备可以是但不限于具有统计计数功能的手机、平板电脑、个人PC(如笔记本、一体机、台式机)等终端设备中,或具有统计计数功能的私有云/公有云云平台、服务节点等对应的物理机。
该电子设备的组成结构如图12所示,至少包括:
存储器1201,用于存放计算机指令集;
所述的计算机指令集可以采用计算机程序的形式实现。
存储器1201可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其它易失性固态存储器件。
处理器1202,用于通过执行所述存储器上存放的指令集,实现如上文方法实施例所公开的计数处理方法。
处理器1202可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件等。
除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。
通信接口用于电子设备与其它设备之间的通信。通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。
本实施例中,电子设备中的处理器通过执行存储器中存放的计算机指令集,在周期性计数情景中,预先为参与统计的统计维度对应的计数器至少分配有两个存储单元,其中,在当前计数周期内,计数器基于一个存储单元对该预定统计维度进行计数,而在当前计数周期结束时,将计数器切换为基于处于已复位状态的另一存储单元对该预定统计维度进行下一计数周期的计数,由此可以做到在当前周期结束时通过切换存储单元而无缝进入下一周期的统计计数中,不必等待当前周期所使用的存储单元完成复位(当前周期所使用的存储单元的复位可以与下一周期的计数并行进行),从而,避免了因复位操作所需的耗时而导致周期性计数中计数结果上下波动的问题,能够满足周期性计数中的高准确度计数要求。
除此之外,本申请实施例还公开了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机指令集,所述计算机指令集被处理器执行时实现如上文方法实施例所公开的计数处理方法。
该计算机可读存储介质中存储的指令在运行时,在周期性计数情景中,预先为参与统计的统计维度对应的计数器至少分配有两个存储单元,其中,在当前计数周期内,计数器基于一个存储单元对该预定统计维度进行计数,而在当前计数周期结束时,将计数器切换为基于处于已复位状态的另一存储单元对该预定统计维度进行下一计数周期的计数,由此可以做到在当前周期结束时通过切换存储单元而无缝进入下一周期的统计计数中,不必等待当前周期所使用的存储单元完成复位(当前周期所使用的存储单元的复位可以与下一周期的计数并行进行),从而,避免了因复位操作所需的耗时而导致周期性计数中计数结果上下波动的问题,能够满足周期性计数中的高准确度计数要求。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种计数处理方法,其特征在于,包括:
在当前计数周期内,利用计数器在预定统计维度进行计数;
向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据;至少为所述计数器预先分配有所述第一存储单元和第二存储单元;
在所述当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数;
其中,在所述下一计数周期不是所述预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,对所述第一存储单元执行复位操作,以至少使所述第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态。
2.根据权利要求1所述的方法,其特征在于,所述利用计数器在预定统计维度进行计数,包括:
基于所述计数器对应的至少一个线程在所述预定统计维度进行计数;
其中,所述计数器对应的每个线程,用于在检测发现所述预定统计维度对应的待统计对象时触发所述向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据的步骤,并对所述待统计对象进行业务处理。
3.根据权利要求2所述的方法,其特征在于,所述计数器对应多个线程,所述第一存储单元、所述第二存储单元分别包括与所述多个线程一一对应的多个数据区域;
所述基于所述计数器对应的至少一个线程在所述预定统计维度进行计数,包括:基于所述多个线程以并行方式对所述待统计对象的检测发现,对所述预定统计维度进行多路并行计数;
所述向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据,包括:
对于检测发现有所述待统计对象的每个线程:
根据预定的计数步长以及所述线程当前检测发现的所述待统计对象的数量,更新所述线程在所述第一存储单元映射的相应数据区域的计数数据。
4.根据权利要求3所述的方法,其特征在于,所述第一存储单元和所述第二存储单元为如下结构形式中的任意一种:
两个数据表;
一个数组;
两个缓存区域;
若所述第一存储单元和所述第二存储单元的结构形式为一个数组,则:
所述数组包括两个元素,第一元素对应的存储空间用于作为所述第一存储单元,第二元素对应的存储空间用于作为所述第二存储单元。
5.根据权利要求3所述的方法,其特征在于,所述对所述第一存储单元执行复位操作,包括:
清除所述第一存储单元包括的所述多个数据区域中的计数数据。
6.根据权利要求3所述的方法,其特征在于,在所述当前计数周期结束之后、对所述第一存储单元执行复位操作之前,所述方法还包括:
获取所述第一存储单元中各个数据区域中的计数数据;
根据所述各个数据区域中的计数数据,确定所述预定统计维度在所述当前计数周期对应的计数结果。
7.根据权利要求6所述的方法,其特征在于,在确定所述预定统计维度对应的计数结果之后,还包括:
确定所述计数结果是否超过预定阈值;
若超过预定阈值,执行预定的防护处理,和/或,将所述计数结果发送至调度中心,以使调度中心至少基于所述计数结果进行任务调度。
8.一种计数处理装置,其特征在于,包括:
计数单元,用于在当前计数周期内,利用计数器在预定统计维度进行计数,并向第一存储单元同步更新所述计数器在所述当前计数周期内产生的计数数据;至少为所述计数器预先分配有所述第一存储单元和第二存储单元;
切换单元,用于在所述当前计数周期结束时,将所述计数器切换为基于处于已复位状态的所述第二存储单元,对所述预定统计维度进行下一计数周期的计数;
复位单元,用于在所述下一计数周期不是所述预定统计维度的当前统计事件中最后一个计数周期的情况下,在所述当前计数周期的结束时刻至所述下一计数周期的结束时刻对应的时间段内,对所述第一存储单元执行复位操作,以至少使所述第一存储单元在所述下一计数周期结束时对应的计数周期切换时刻处于已复位状态。
9.一种电子设备,其特征在于,包括:
存储器,用于存放计算机指令集;
处理器,用于通过执行所述存储器上存放的指令集,实现如权利要求1-7任一项所述的计数处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令集,所述计算机指令集被处理器执行时实现如权利要求1-7任一项所述的计数处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011287214.3A CN112437074B (zh) | 2020-11-17 | 2020-11-17 | 计数处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011287214.3A CN112437074B (zh) | 2020-11-17 | 2020-11-17 | 计数处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112437074A true CN112437074A (zh) | 2021-03-02 |
CN112437074B CN112437074B (zh) | 2022-11-22 |
Family
ID=74701164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011287214.3A Active CN112437074B (zh) | 2020-11-17 | 2020-11-17 | 计数处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112437074B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010852A (zh) * | 2021-03-29 | 2021-06-22 | 北京金山云网络技术有限公司 | 数据的计量统计方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276888A (zh) * | 1997-10-23 | 2000-12-13 | 国际商业机器公司 | 在多线程处理器中选择线程切换事件的方法和装置 |
CN1913493A (zh) * | 2006-08-24 | 2007-02-14 | 杭州华为三康技术有限公司 | 避免路由设备频繁切换状态的方法和一种路由设备 |
US20140379953A1 (en) * | 2013-06-24 | 2014-12-25 | International Business Machines Corporation | Continuous in-memory accumulation of hardware performance counter data |
CN106230823A (zh) * | 2016-08-01 | 2016-12-14 | 北京神州绿盟信息安全科技股份有限公司 | 一种流量统计方法及装置 |
-
2020
- 2020-11-17 CN CN202011287214.3A patent/CN112437074B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276888A (zh) * | 1997-10-23 | 2000-12-13 | 国际商业机器公司 | 在多线程处理器中选择线程切换事件的方法和装置 |
CN1913493A (zh) * | 2006-08-24 | 2007-02-14 | 杭州华为三康技术有限公司 | 避免路由设备频繁切换状态的方法和一种路由设备 |
US20140379953A1 (en) * | 2013-06-24 | 2014-12-25 | International Business Machines Corporation | Continuous in-memory accumulation of hardware performance counter data |
CN106230823A (zh) * | 2016-08-01 | 2016-12-14 | 北京神州绿盟信息安全科技股份有限公司 | 一种流量统计方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010852A (zh) * | 2021-03-29 | 2021-06-22 | 北京金山云网络技术有限公司 | 数据的计量统计方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112437074B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181798B (zh) | 网络时延测量方法、装置、电子设备及存储介质 | |
US10356004B2 (en) | Software load balancer to maximize utilization | |
US9219786B2 (en) | Behavior based client selection for disparate treatment | |
CN110162270B (zh) | 基于分布式存储系统的数据存储方法、存储节点及介质 | |
US10433035B2 (en) | Profiles for collecting telemetry data | |
CN109450816B (zh) | 一种队列调度方法、装置、网络设备及存储介质 | |
US11095674B2 (en) | DDoS attack detection method and device | |
US10785164B2 (en) | Preventing duplication of packets in a network | |
CN112437074B (zh) | 计数处理方法、装置、电子设备及存储介质 | |
WO2022105691A1 (zh) | 防止ipfix消息丢失的方法及其应用、asic芯片 | |
CN110958245B (zh) | 一种攻击的检测方法、装置、设备和存储介质 | |
CN111464629B (zh) | 热点数据确定方法及装置 | |
US20100138917A1 (en) | Refresh mechanism for rate-based statistics | |
WO2013013478A1 (zh) | 网络流量控制方法、装置、系统及服务器 | |
CN113271228B (zh) | 带宽资源调度方法、装置、设备及计算机可读存储介质 | |
CN113268327A (zh) | 事务请求的处理方法、装置和电子设备 | |
CN110908798A (zh) | 多进程协同式网络流量解析方法及装置 | |
CN110943886B (zh) | 一种性能数据传输方法及装置 | |
US20240022638A1 (en) | Systems and methods for processing heartbeat packets in switching hardware | |
CN111953608B (zh) | 一种邻居表项管理方法、装置、电子设备及存储介质 | |
Wang et al. | Robust pipelined memory system with worst case performance guarantee for network processing | |
Zhang et al. | Facing the signaling storm: A method with stochastic concept | |
WO2023084599A1 (ja) | トラフィック監視装置およびトラフィック監視プログラム | |
CN115118473B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111641698B (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 |