CN108279973A - 一种信息统计方法、装置及电子设备 - Google Patents

一种信息统计方法、装置及电子设备 Download PDF

Info

Publication number
CN108279973A
CN108279973A CN201710008324.3A CN201710008324A CN108279973A CN 108279973 A CN108279973 A CN 108279973A CN 201710008324 A CN201710008324 A CN 201710008324A CN 108279973 A CN108279973 A CN 108279973A
Authority
CN
China
Prior art keywords
user
statistics
information
request
statistical
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
CN201710008324.3A
Other languages
English (en)
Other versions
CN108279973B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710008324.3A priority Critical patent/CN108279973B/zh
Publication of CN108279973A publication Critical patent/CN108279973A/zh
Application granted granted Critical
Publication of CN108279973B publication Critical patent/CN108279973B/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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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/5015Service provider selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种信息统计方法、装置及电子设备,所述信息统计方法包括:当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;将填充完毕的所述对象发送给对应的统计任务;各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。本申请可以在不增加用户请求延时的情况下,实时获取丰富的请求统计信息。

Description

一种信息统计方法、装置及电子设备
技术领域
本发明涉及计算机领域,尤其涉及一种信息统计方法、装置及电子设备。
背景技术
在多用户的云服务中,比如表格存储(TableStore)等多租户云服务,需要尽可能的降低用户请求之间的互相影响。这就要求系统对某些用户的突增流量进行及时的监控和统计并迅速反馈给调度模块,调度模块就可以对该用户的业务流量进行及时的流控和隔离,从而避免影响系统中的其他用户。
负载均衡(控制用户的突发流量)对于提供云服务的系统的稳定性具有重要价值,而对每条用户请求进行及时的统计处理是负载均衡的关键技术。
目前统计用户请求的信息的常见方案有如下两种:
方案一、包括步骤101~105
101、服务系统针对每条用户请求打印一条日志,日志内容包括请求ID、资源名、数据量大小等。
102、服务系统所在的宿主机部署日志收集程序,将日志收集之后发送到一个预处理系统。
103、预处理系统根据定义好的日志解析器从日志里面解析出来关键信息,并发送给一个流计算系统。
104、流计算系统根据预定义好的计算规则对信息进行汇总处理,并将结果存入数据库。
105、服务系统控制节点从数据库读取统计信息,进行负载均衡调度。
该方案存在以下不足:
(1)记录日志需要进行大量的序列化动作,会占用大量的CPU资源。
(2)处理路径太长,事件从发生到被感知并处理一般在10分钟以上,而突发事件可能已经对系统中的其他用户产生了严重的影响;
(3)记录、提取、汇总计算由系统的不同部分实现,架构复杂。
方案二、在用户请求结束后做即时的信息统计。
(1)是在请求执行路径上进行计算,占用工作线程,为了减少对用户请求影响,只能计算少量的信息,统计信息少,不利于负载均衡;
(2)架构灵活性差,要加入新的统计就要在请求执行路径上修改代码,很容易破坏业务逻辑;
(3)不容易测试:测试统计代码需要构造真实的请求,才能走到相关的统计代码,增加了测试事件的复杂度。
发明内容
本申请提供一种信息统计方法、装置及电子设备,可以在不增加用户请求延时的情况下,实时获取丰富的请求统计信息。
本申请采用如下技术方案。
一种信息统计方法,包括:
当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
将填充完毕的所述对象发送给对应的统计任务;
各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。
可选地,所述工作线程还用于在被调用后,从无锁的对象资源池中获得一个所述用户请求对应种类的对象。
可选地,所述执行信息包括以下一种或多种:
请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,进行的输入输出IO次数等。
可选地,所述将填充完毕的对象发送给对应的统计任务包括:
根据订阅关系,将填充完毕的对象发送给订阅该种对象的统计任务。
可选地,所述各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计包括:
各统计任务分别采用映射-规约Map-Reduce的方式,对本统计任务所对应的对象中的执行信息进行相应的统计。
可选地,所述的信息统计方法还包括:
一个或多个统计任务将进行统计得到的统计结果作为所述执行信息填充进所述对象。
一种信息统计装置,包括:一个或多个统计模块;
处理模块,用于当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
总线模块,用于将填充完毕的所述对象发送给对应的统计模块;
各所述统计模块分别用于根据本统计模块所对应的对象中的执行信息进行相应的统计。
可选地,所述工作线程还用于在被调用后,从无锁的对象资源池中获得一个所述用户请求对应种类的对象。
可选地,所述执行信息包括以下一种或多种:
请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,进行的输入输出IO次数等。
可选地,所述统计模块还用于向所述总线模块订阅对象;
所述总线模块将填充完毕的对象发送给对应的统计模块包括:
所述总线模块根据订阅关系,将填充完毕的对象发送给订阅该种对象的统计模块。
可选地,所述统计模块根据本统计模块所对应的对象中的执行信息进行相应的统计包括:
所述统计模块采用映射-规约Map-Reduce的方式,对本统计模块所对应的对象中的执行信息进行相应的统计。
可选地,所述统计模块还用于将进行统计得到的统计结果作为所述执行信息填充进所述对象。
一种用于进行信息统计的电子设备,包括:存储器和处理器;
所述存储器用于保存用于进行信息统计的程序;所述用于进行信息统计的程序在被所述处理器读取执行时,执行以下操作:
当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
将填充完毕的所述对象发送给对应的统计任务;
各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。
本申请包括以下优点:
本申请至少一个实施例中,统计不占用用于执行用户请求的工作线程,所以不会导致用户请求的延时,因此可以进行复杂统计。由于是在用户请求执行过程中完成执行信息的填充,在用户请求执行完成后读取执行信息进行统计,因此对CPU的消耗较少,且可以获得实时的统计信息。
本申请实施例的一种实现方式中,采用订阅方式可以实现对对同一条用户请求所产生的执行信息进行多种不同维度的统计,从而得到丰富的统计信息以进行精细化的负载均衡调度,架构也比较自然清晰。而且如果要针对某种执行信息加入新的统计任务,只需要关注该统计任务本身的逻辑,无需关心执行信息的来源。
本申请实施例的一种实现方式中,利用Map-Reduce方式对多个对象进行并行计算,可以增加架构的灵活性,并进一步降低信息统计的延迟。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
图1是实施例一的信息统计方法的流程图;
图2是实施例一的例子中统计任务和对象总线的关系示意图;
图3是实施例一的例子的流程图;
图4是实施例二的信息统计装置的示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种配置中,进行信息统计的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
实施例一、一种信息统计方法,如图1所示,包括步骤S110~S130:
S110、当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
S120、将填充完毕的所述对象发送给对应的统计任务;
S130、各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。
本实施例中,步骤S110~S120、步骤S130均可以是一个不断进行的步骤,每当收到用户请求,就可以进行步骤S110;每当对象填充完毕,就可以进行步骤S120;每当收到填充完毕的对象,就可以进行步骤S130。另外,步骤S110、S120和S130可以是个并行的过程,即:在对已完毕的对象进行统计时,还可以继续根据收到的用户请求创建并填充对象,填充完毕的对象可以发送到统计任务的队列中,统计任务可以当正在进行的统计完成后,从队列中获取对象继续进行统计。
本实施例中,采用的是利用旁路进行统计的架构,工作线程只用于执行用户请求和填充对象,执行完成后的工作交由旁路完成。由于统计不占用用于执行用户请求的工作线程,所以不会导致用户请求的延时,因此可以进行复杂统计。而且采用旁路统计的架构具有很强灵活性,由于不影响主路(即用户请求的执行路径),因此更易于扩展和测试,可以在旁路上测试新算法,比如计算各种压缩算法对不同数据的压缩比,从而为各类数据匹配更好的压缩算法。
本实施例中,每个统计任务也可以各看成是一个线程。不同的统计任务是对用户请求从不同维度进行统计,在对象中所选用的执行信息不同,统计结果不同。通过设置不同的统计任务,可以进行多个维度的统计;在实际应用时,可以根据需求自行设置一个或多个统计任务。
本实施例中,对象可以看成是一种预定格式的数据结构,该数据结构中可以包含多个成员变量,每个成员变量对应一种执行信息。每种对象包含哪些执行信息可以预先设置;每种执行信息在对象中可以有固定的位置;工作线程可以将各种执行信息分别填充到数据结构中的相应位置,统计时只要在相应位置就可以读取到所需要的执行信息。
本实施例中,可以在创建统计任务时设定该统计任务对应的一或多种对象、以及进行统计时的具体计算方式,比如根据对象中的哪些执行信息进行统计、统计方式是累加或求均值等。
本实施例中,统计任务进行统计时不仅仅是依据刚收到的对象,而是依据收到的一批对象进行统计;比如某个统计任务是统计执行信息x的总和,即:对执行信息x的值进行累加;如果目前根据已收到的对象中的执行信息x,计算出的累加值是S,S就是目前的统计结果;当又收到一个对象,该对象中执行信息x的值是y,则更新统计结果为S+y。
本实施例中,所述工作线程可以在被调用后获取一个新的对象作为所述用户请求对应的对象;在执行完成用户请求后,所述用户请求对应的对象就可以填充完毕。由于是在用户请求执行过程中填充执行信息,在用户请求执行完成后就对执行信息进行统计,因此可以获得实时的统计信息。本实施例这样做的基础在于,负载均衡一般只使用最新的统计信息即可。
本实施例中,不同种类的用户请求可以对应于不同种类的对象,因为每种用户请求需要记录的执行信息可能不同,相应地,每种用户请求所对应种类的对象所包含的执行信息可以至少部分不同。工作进程所填充的对象,种类与所执行的用户请求的种类是对应的。
一种实现方式中,所述工作线程还可以用于在被调用后,从无锁的对象资源池中获得一个所述用户请求对应种类的对象。
其它实现方式中,也可以在调用工作线程时创建一个所述用户请求对应种类的对象,或者由工作线程在被调用后创建一个所述用户请求对应种类的对象。
本实施例中,所述统计任务和对象可以是多对多的关系,即一种对象可以用在一个或多个统计任务中,一个统计任务可以使用一种或多种对象中的执行信息。比如统计任务A使用种类a和种类b的对象,统计任务B使用种类a和种类c的对象,则当填充完毕一个种类a的对象后,会发送给统计任务A和统计任务B;当填充完毕一个种类b的对象后,会发送给统计任务A;当填充完毕一个种类c的对象后,会发送给统计任务B。
一种实现方式中,所述执行信息可以包括以下一种或多种:
请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,进行的IO次数等。
本实现方式中,不同种类的对象可以分别包含以上执行信息中的一或多种;各统计任务在收到对象后,可以从中获取一或多种执行信息用于统计。
其它实现方式中,可以根据需要完成的统计目标设置其它在执行用户请求过程中、或对用户请求处理过程中可获取的信息,作为所述执行信息。
一种实现方式中,所述将填充完毕的对象发送给对应的统计任务可以包括:
根据订阅关系,将填充完毕的对象发送给订阅该种对象的统计任务。
本实现方式中,所述订阅关系中可以记录各统计任务所订阅的对象的种类;当填充完毕某个种类的对象后,就发送给订阅该种对象的统计任务。一个对象所对应的统计任务,是指订阅该种对象的统计任务。一个统计任务对应的对象,是指该统计任务所订阅的一或多种对象。
本实现方式中,可以采用一个对象总线来发送填充完毕的对象;所述对象总线可以采用自身的线程进行发送。各统计任务在初始化时可以分别向对象总线订阅一或多种对象。
其它实现方式中,也可以将填充完毕的对象发送给所有的统计任务,由各统计任务自行筛选所需要的对象。
一种实现方式中,所述各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计可以包括:
各统计任务分别采用映射-规约(Map-Reduce)的方式,对本统计任务所对应的对象中的执行信息进行相应的统计。
本实现方式中,各统计任务可以各自具有mapper(映射器)和reducer(归约器),mapper与reducer的比例可以根据需要自行设定。
本实现方式中,每个统计任务可以包括一个或多个实现相同操作的reducer,各reducer分别从本reducer队列中获取一个或多个对象,从对象中获取相应的执行信息并进行统计,统计完成后再次到本reducer的队列中获取对象。mapper可以只用于将对象放入本统计任务的reducer的队列。
本实现方式中,当统计方式是进行累加时,reducer获取到新的对象后,可以将新的对象中相应执行信息的值与原先的统计结果相加,得到更新后的统计结果。当统计方式是进行均值,或其它会根据执行信息变化而导致计算结果相应变化的统计方式时,reducer获取到新的对象后,可以重新进行统计,得到更新后统计结果。
本实现方式中,采用Map-Reduce可以加快计算速度和并行度;根据实验,采用本实现方式,针对突发事件5秒内可以做出调度反馈。
其它实现方式中,也可以采用另外的统计架构来实现统计任务。
一种实现方式中,所述调用用于执行用户请求的工作线程可以包括:
在空闲线程池中调用一个空闲的工作线程。
本实现方式中,当释放工作线程时,相当于将该工作线程重新放回空闲线程池。
一种实现方式中,所述方法还可以包括:
一个或多个统计任务将进行统计得到的统计结果作为执行信息填充到对象中。
本实现方式中,当对象填充完毕后一样可以执行步骤S120~S130,对于收到填充有统计结果的对象的统计任务而言,统计时并无区别,仍是从对象中获取相应的执行信息并进行统计。
本实现方式中,所述对象所包含的执行信息不仅可以是执行用户请求过程中直接产生的,还可以是由统计任务产生的统计结果。有可能存在某些对象只包含直接产生的执行信息,有些对象只包含作为执行信息的统计结果,有些对象两者都包含。其中,一种对象所包含的统计结果,可以属于一个或多个统计任务。
比如,统计任务A是对执行信息x1求和,即累加执行信息x1的值,得到的统计结果就是执行信息x1的累加值S1;统计任务B是对执行信息x2求和,即累加执行信息x2的值,得到的统计结果就是执行信息x2的累加值S2;统计任务C是需要统计执行信息x1的总和除以执行信息x2的总和,则统计任务C可以订阅对象V;统计任务A将统计结果S1填充到对象V中,统计任务B将统计结果S2填充到对象V中,当对象V填充完毕后发送给统计任务C,统计任务C从对象V后从中获取S1和S2,得到统计结果S1/S2。本实现方式中,一个或多个统计任务的统计结果也可以作为执行信息,供其它统计任务作为统计的基础,即:本实现方式中,统计任务可以做级联处理。该级联处理可以是多级的,比如统计任务A的统计结果供统计任务B进行统计,统计任务B的统计结果还可以再供其它统计任务进行统计。其它实现方式中,也可以不进行级联处理,或设计其它方式来完成级联处理。
下面用一个例子对本实施例进行说明。本例子中,一个使用本实施例的方法的系统对用户请求进行信息统计,其中,通过对象总线将对象分发给相应的统计任务;统计任务采用map-reduce方式进行信息统计。
本例子中,在系统启动阶段进行如下操作:
系统初始化各个统计任务,每个统计任务都有自己的mapper,reducer,可以根据需要灵活设定mapper与reducer的比例;当一个统计任务包含多个reducer时,该统计任务的任一个mapper可以与该统计任务中的一个或多个reducer连接,该连接关系也可以根据需要灵活设定。
本例子中的统计任务包括:网络输入流量统计任务,网络输出流量统计任务,读请求统计任务,写请求统计任务,系统后台活动统计任务。实际应用中可以根据需要自行设计统计任务,不限于本例中列举的统计任务。
系统初始化对象总线,对象总线记录对象和统计任务的订阅关系,以便对象填充完毕后分发给订阅该对象的统计任务。
统计任务和对象总线之间的关系如图2所示。
每个统计任务均向对象总线订阅一个或多个种类的对象,比如网络输入流量统计任务订阅写对象,写请求统计任务也订阅写对象,网络流量输出统计任务订阅读对象。
统计任务和对象是多对多的关系,一种对象可以被一个或多个任务订阅,一个统计任务也可以订阅一种或多种对象;一个或多个统计任务的reducer里面可以输出特定的对象到对象总线,以供其它统计任务做级联处理,如图2中的虚线所示。
本例子中,在系统运行阶段如图3所示,进行如下步骤301~306:
301、服务系统收到用户请求后,从空闲线程池调用一个空闲的工作线程T1来执行该用户请求。
302、工作线程T1从无锁的空闲对象池里获得一个所述用户请求对应种类的对象(避免内存分配),用于记录该用户请求执行过程中的执行信息。本例子中,空闲对象池可以通过无锁队列实现,以避免争抢。每种用户请求都有对应种类的对象,因为每种用户请求需要记录的执行信息可能不同,相应地,每种用户请求对应种类的对象的成员变量可以不同。本例子中,假设所取到的对象的成员变量包括以下执行信息:请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,中间进行的IO次数等。
303、工作线程T1执行所述用户请求,在执行过程中填充对象。对象中的成员变量在用户请求执行完后都会填充完毕。
304、返回该用户请求的响应数据(后续将由服务系统发送给用户)之后,将对象放入对象总线,随后执行该用户请求的工作线程T1将被释放继续执行后续收到的用户请求。
305、对象总线根据订阅关系,利用自己的线程将收到的对象发布给订阅该对象的各个统计任务。
步骤304和305之间可以是一个异步的过程。
306、收到对象的统计任务通过Map-Reduce方式得到统计结果,mapper将对象发送给reducer,reducer得到统计结果。
后续可以将统计结果发给服务系统的控制节点以进行负载均衡调度。
在上述运行过程中,工作线程T1所执行的操作如下:
工作线程T1在执行用户请求的过程中,将会根据获取的执行信息不断填充对象的成员变量,当用户请求执行完成时,对象将填充完毕。
用户请求执行完成后,工作线程T1将用户请求的响应数据返回给调用方,将对象的指针传递给对象总线,此时工作线程T1被释放(即重新放入空闲线程池),以便执行下一个用户请求。
在上述运行过程中,对象总线所执行的操作如下:
对象总线收到视图对象的指针后,将对象发送给每一个订阅该对象的统计任务;本例子中,发送一个对象给某个统计任务的具体方法是:调用该统计任务的mapper中的发送功能,将对象的指针放入该统计任务的reducer的队列,等待reducer处理。
本例子中,mapper的逻辑很简单,只需要将对象的指针传递到reducer即可,reducer根据对象的指针可以找到相应的对象,并从对象中获取所需的执行信息。reducer的设计跟具体要统计的内容密切相关。比如需要统计服务进程占用的网络带宽,此时全局只能有一个reducer(即只有一个统计任务,该统计任务只有一个reducer),这样所有的占用带宽的用户请求对应的对象都被该reducer统计,就可以方便的知道服务进程总的带宽占用。再比如每秒查询率((Query Per Second,qps)统计,因为不同种类的用户请求的qps之间没有汇总统计的需求,那么就可以针对每种用户请求分别设置一个reducer(比如不同种类用户请求对应的视图对象发送给不同统计任务,每个统计任务各有一个reducer,假设种类A的用户请求对应种类a的视图对象,种类B的用户请求对应种类b的视图对象,则种类a的视图对象发送给一个reducer,种类a的视图对象发送给另一个reducer),这样每种用户请求的reducer统计该种用户请求的qps即可,提高了并行度,也提高了性能,并且降低了系统的复杂度。具体reducer的细节可以根据对统计目标的需求进行设计,本申请对此不进行限定。
实施例二、一种信息统计装置,如图4所示,包括:一个或多个统计模块23;
处理模块21,用于当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
总线模块22,用于将填充完毕的所述对象发送给对应的统计模块;
各所述统计模块分别用于根据本统计模块所对应的对象中的执行信息进行相应的统计。
本实施例中,处理模块21是上述装置中负责调用、释放工作进程的部分,可以是软件、硬件或两者的结合。
本实施例中,总线模块22是上述装置中负责传递对象的部分,可以是软件、硬件或两者的结合。
本实施例中,统计模块23是上述装置中负责进行统计的部分,可以是软件、硬件或两者的结合。
一种实现方式中,所述工作线程还可以用于在被调用后,从无锁的对象资源池中获得一个所述用户请求对应种类的对象。
一种实现方式中,所述执行信息可以包括以下一种或多种:
请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,进行的输入输出IO次数等。
一种实现方式中,所述统计模块还可以用于向所述总线模块订阅对象;
所述总线模块将填充完毕的对象发送给对应的统计模块可以包括:
所述总线模块根据订阅关系,将填充完毕的对象发送给订阅该种对象的统计模块。
一种实现方式中,所述统计模块根据本统计模块所对应的对象中的执行信息进行相应的统计可以包括:
所述统计模块采用Map-Reduce的方式,对本统计模块所对应的对象中的执行信息进行相应的统计。
一种实现方式中,所述统计模块还用于将进行统计得到的统计结果作为所述执行信息填充进所述对象。
本实施例的信息统计装置的各模块的操作分别对应于实施例一中的步骤S110~S130,各模块操作的其它实现细节可参见实施例一。
实施例三、一种用于进行信息统计的电子设备,包括:存储器和处理器;
所述存储器用于保存用于进行信息统计的程序;所述用于进行信息统计的程序在被所述处理器读取执行时,执行以下操作:
当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
将填充完毕的所述对象发送给对应的统计任务;
各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。
本实施例中,用于进行信息统计的程序在被处理器读取执行时,所执行的操作对应于实施例一中的步骤S110~S130;该程序所执行的操作的其它细节可参见实施例一。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。

Claims (13)

1.一种信息统计方法,包括:
当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
将填充完毕的所述对象发送给对应的统计任务;
各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。
2.如权利要求1所述的信息统计方法,其特征在于:
所述工作线程还用于在被调用后,从无锁的对象资源池中获得一个所述用户请求对应种类的对象。
3.如权利要求1所述的信息统计方法,其特征在于,所述执行信息包括以下一种或多种:
请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,进行的输入输出IO次数等。
4.如权利要求1所述的信息统计方法,其特征在于,所述将填充完毕的对象发送给对应的统计任务包括:
根据订阅关系,将填充完毕的对象发送给订阅该种对象的统计任务。
5.如权利要求1所述的信息统计方法,其特征在于,所述各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计包括:
各统计任务分别采用映射-规约Map-Reduce的方式,对本统计任务所对应的对象中的执行信息进行相应的统计。
6.如权利要求1所述的信息统计方法,其特征在于,还包括:
一个或多个统计任务将进行统计得到的统计结果作为所述执行信息填充进所述对象。
7.一种信息统计装置,其特征在于,包括:一个或多个统计模块;
处理模块,用于当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
总线模块,用于将填充完毕的所述对象发送给对应的统计模块;
各所述统计模块分别用于根据本统计模块所对应的对象中的执行信息进行相应的统计。
8.如权利要求7所述的信息统计装置,其特征在于:
所述工作线程还用于在被调用后,从无锁的对象资源池中获得一个所述用户请求对应种类的对象。
9.如权利要求7所述的信息统计装置,其特征在于,所述执行信息包括以下一种或多种:
请求行数、请求列数、请求数据大小,响应行数、响应列数、响应数据大小,各个阶段执行时间,进行的输入输出IO次数等。
10.如权利要求7所述的信息统计装置,其特征在于:
所述统计模块还用于向所述总线模块订阅对象;
所述总线模块将填充完毕的对象发送给对应的统计模块包括:
所述总线模块根据订阅关系,将填充完毕的对象发送给订阅该种对象的统计模块。
11.如权利要求7所述的信息统计装置,其特征在于,所述统计模块根据本统计模块所对应的对象中的执行信息进行相应的统计包括:
所述统计模块采用映射-规约Map-Reduce的方式,对本统计模块所对应的对象中的执行信息进行相应的统计。
12.如权利要求7所述的信息统计方法,其特征在于:
所述统计模块还用于将进行统计得到的统计结果作为所述执行信息填充进所述对象。
13.一种用于进行信息统计的电子设备,包括:存储器和处理器;
其特征在于:
所述存储器用于保存用于进行信息统计的程序;所述用于进行信息统计的程序在被所述处理器读取执行时,执行以下操作:
当收到用户请求后,调用用于执行用户请求的工作线程,在所述用户请求执行完成后释放所述工作线程;所述工作线程用于执行所述用户请求,并将所述用户请求的执行信息填充到所述用户请求对应的对象中;
将填充完毕的所述对象发送给对应的统计任务;
各统计任务分别根据本统计任务所对应的对象中的执行信息进行相应的统计。
CN201710008324.3A 2017-01-05 2017-01-05 一种信息统计方法、装置及电子设备 Active CN108279973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710008324.3A CN108279973B (zh) 2017-01-05 2017-01-05 一种信息统计方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710008324.3A CN108279973B (zh) 2017-01-05 2017-01-05 一种信息统计方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108279973A true CN108279973A (zh) 2018-07-13
CN108279973B CN108279973B (zh) 2022-05-06

Family

ID=62800649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710008324.3A Active CN108279973B (zh) 2017-01-05 2017-01-05 一种信息统计方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108279973B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416958A (zh) * 2020-12-07 2021-02-26 恩亿科(北京)数据科技有限公司 实时qps控制方法、系统、计算机及计算机可读存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010005853A1 (en) * 1999-11-09 2001-06-28 Parkes Michael A. B. Method and system for performing a task on a computer
US20040139434A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Dynamic thread pool tuning techniques
CN101179450A (zh) * 2007-11-27 2008-05-14 上海华为技术有限公司 网络性能监测方法和系统及其主控单板和业务单板
CN101741850A (zh) * 2009-12-25 2010-06-16 北京邮电大学 面向混合网络服务的多任务并发执行系统及方法
US20120076153A1 (en) * 2009-04-27 2012-03-29 Lsi Corporation Statistics module for network processors in virtual local area networks
US8205202B1 (en) * 2008-04-03 2012-06-19 Sprint Communications Company L.P. Management of processing threads
CN103064778A (zh) * 2011-10-20 2013-04-24 阿里巴巴集团控股有限公司 一种服务器性能测试方法、装置及系统
CN103544103A (zh) * 2013-09-02 2014-01-29 烟台中科网络技术研究所 一种软件性能测试模拟并发方法及系统
CN104331406A (zh) * 2013-12-20 2015-02-04 乐视网信息技术(北京)股份有限公司 一种数据库容量控制方法及装置
CN104536819A (zh) * 2014-12-29 2015-04-22 同程网络科技股份有限公司 基于web服务的任务调度方法
CN104794204A (zh) * 2015-04-23 2015-07-22 上海新炬网络信息技术有限公司 一种数据库敏感数据自动识别方法
CN105071976A (zh) * 2015-09-08 2015-11-18 安一恒通(北京)科技有限公司 数据传输方法和装置
CN105120119A (zh) * 2015-09-14 2015-12-02 徐宁 一种多方通话会议的界面交互控制方法与系统
CN105868025A (zh) * 2016-03-30 2016-08-17 华中科技大学 一种解决大数据处理系统中内存资源激烈竞争的系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010005853A1 (en) * 1999-11-09 2001-06-28 Parkes Michael A. B. Method and system for performing a task on a computer
US20040139434A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Dynamic thread pool tuning techniques
CN101179450A (zh) * 2007-11-27 2008-05-14 上海华为技术有限公司 网络性能监测方法和系统及其主控单板和业务单板
US8205202B1 (en) * 2008-04-03 2012-06-19 Sprint Communications Company L.P. Management of processing threads
US20120076153A1 (en) * 2009-04-27 2012-03-29 Lsi Corporation Statistics module for network processors in virtual local area networks
CN101741850A (zh) * 2009-12-25 2010-06-16 北京邮电大学 面向混合网络服务的多任务并发执行系统及方法
CN103064778A (zh) * 2011-10-20 2013-04-24 阿里巴巴集团控股有限公司 一种服务器性能测试方法、装置及系统
CN103544103A (zh) * 2013-09-02 2014-01-29 烟台中科网络技术研究所 一种软件性能测试模拟并发方法及系统
CN104331406A (zh) * 2013-12-20 2015-02-04 乐视网信息技术(北京)股份有限公司 一种数据库容量控制方法及装置
CN104536819A (zh) * 2014-12-29 2015-04-22 同程网络科技股份有限公司 基于web服务的任务调度方法
CN104794204A (zh) * 2015-04-23 2015-07-22 上海新炬网络信息技术有限公司 一种数据库敏感数据自动识别方法
CN105071976A (zh) * 2015-09-08 2015-11-18 安一恒通(北京)科技有限公司 数据传输方法和装置
CN105120119A (zh) * 2015-09-14 2015-12-02 徐宁 一种多方通话会议的界面交互控制方法与系统
CN105868025A (zh) * 2016-03-30 2016-08-17 华中科技大学 一种解决大数据处理系统中内存资源激烈竞争的系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HESHAM A. HEFNY等: "Comparative Study Load Balance Algorithms for Map", 《INTERNATIONAL JOURNAL OF APPLIED INFORMATION SYSTEMS (IJAIS)》 *
刘俊美: "网络流量统计分析系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王新春等: "基于并发执行时间配额控制的任务调度框架", 《信息技术与标准化》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416958A (zh) * 2020-12-07 2021-02-26 恩亿科(北京)数据科技有限公司 实时qps控制方法、系统、计算机及计算机可读存储介质

Also Published As

Publication number Publication date
CN108279973B (zh) 2022-05-06

Similar Documents

Publication Publication Date Title
US10841241B2 (en) Intelligent placement within a data center
CN107229619B (zh) 互联网业务链路调用情况的统计、展示方法及装置
CN103699445A (zh) 一种任务调度方法、装置及系统
CN107633347A (zh) 一种数据指标统计方法及装置
CN108574645A (zh) 一种队列调度方法及装置
CN108241534A (zh) 一种任务处理、分配、管理、计算的方法以及装置
CN110574010A (zh) 用于任务分配系统中的行为配对的技术
CN110489418B (zh) 一种数据聚合方法和系统
CN109597800A (zh) 一种日志分发方法及装置
CN109359109A (zh) 一种基于分布式流计算的数据处理方法及系统
CN109597680B (zh) 任务排队响应参数估算方法及装置
CN113079062B (zh) 一种资源调整方法、装置、计算机设备和存储介质
CN113422808B (zh) 物联网平台http信息推送方法、系统、装置及介质
CN108279973A (zh) 一种信息统计方法、装置及电子设备
CN111901405A (zh) 一种多节点监控方法、装置、电子设备及存储介质
CN111400241B (zh) 数据重构方法和装置
CN117435335A (zh) 算力调度方法、装置、计算机设备和存储介质
CN111858656A (zh) 一种基于分布式架构的静态数据的查询方法和设备
CN114860460B (zh) 一种数据库加速的方法、装置、计算机设备
CN113703945B (zh) 微服务集群的调度方法、装置、设备及存储介质
CN115766582A (zh) 流量控制方法、装置和系统、介质和计算机设备
CN112667392B (zh) 云计算资源分配方法、装置、计算机设备和存储介质
CN115499513A (zh) 数据请求的处理方法、装置、计算机设备和存储介质
CN110874268B (zh) 数据处理方法、装置和设备
CN106227601A (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