CN118113498A - 数据处理的方法、装置以及计算设备 - Google Patents
数据处理的方法、装置以及计算设备 Download PDFInfo
- Publication number
- CN118113498A CN118113498A CN202211482136.1A CN202211482136A CN118113498A CN 118113498 A CN118113498 A CN 118113498A CN 202211482136 A CN202211482136 A CN 202211482136A CN 118113498 A CN118113498 A CN 118113498A
- Authority
- CN
- China
- Prior art keywords
- application program
- data
- resource index
- dotting
- probe
- 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 description 4
- 239000000523 sample Substances 0.000 claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000004458 analytical method Methods 0.000 claims abstract description 35
- 230000015654 memory Effects 0.000 claims description 165
- 230000006870 function Effects 0.000 claims description 90
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 abstract description 9
- 238000007726 management method Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 25
- 238000005070 sampling Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 10
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 8
- 230000005856 abnormality Effects 0.000 description 8
- 238000005129 volume perturbation calorimetry Methods 0.000 description 8
- 230000008520 organization Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004445 quantitative analysis Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 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
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种数据处理的方法、装置以及计算设备,该方法应用于云管理平台,该方法包括:云管理平台获取第一应用程序的资源指标数据,根据所述第一应用程序的资源指标数据对所述第一应用程序进行异常分析,其中,第一应用程序中包括多个业务功能模块,每个业务功能模块中包括打点探针,每个打点探针用于获取与打点探针所在的业务功能模块的数据指标,第一应用程序的资源指标数据是根据第一应用程序中的多个业务功能模块对应的数据指标确定的。该方法能够快速识别应用程序的异常点,提升用户的体验。
Description
技术领域
本申请涉及云计算领域,并且更具体地,涉及一种数据处理的方法、装置以及计算设备。
背景技术
云数据库在存储与计算分离架构下,存储节点与计算节点通过网络进行数据交互。存储节点拥有中央处理器(central processing units,CPU)、存储器(Memory)、固态硬盘(solid state drive,SSD)以及网络等完整的物理设施。当数据库实例在存储层运行出现问题时,比如时延升高、性能抖动、读写访问异常,运维人员需要识别存储层的异常点,并进行根因的定位分析。以便实施快速恢复应急预案、优化存储层参数配置和软件栈,从而保障存储层的稳定运行,提升用户的体验。
相关的技术方案中采用Perf采样打点数据,之后再基于采样打点数据做问题定位分析。由于Perf是Linux***中提供的一种性能分析工具,其作用对象是整个应用程序的进程,长时间采样打点数据资源消耗大,影响应用程序性能,无法按照业务模块维度做精细化定量分析,使得无法快速定位根因,用户的体验感较差。
因此,如何快速识别应用程序的异常点,提升用户的体验成为亟需要解决的技术问题。
发明内容
本申请提供一种数据处理的方法、装置以及计算设备,该方法能够使得采样的数据具有业务语义,能够观测到应用程序内部的异常和性能,从而快速识别应用程序的异常点,提升用户的体验。
第一方面,提供了一种数据处理的方法,该方法应用于云管理平台,该方法包括:该云管理平台获取第一应用程序的资源指标数据,并根据该第一应用程序的资源指标数据对该第一应用程序进行异常分析,其中,第一应用程序中包括多个业务功能模块,每个业务功能模块中包括打点探针,每个打点探针用于获取与打点探针所在的业务功能模块的数据指标,第一应用程序的资源指标数据是根据第一应用程序中的多个业务功能模块对应的数据指标确定的。
上述技术方案中,通过在应用程序内的各个业务功能模块植入打点探针,可以具体到应用程序的业务功能模块的内部,这样可以使得采样的数据具有具体的业务语义,能够观测到应用程序内部的异常和性能,从而可以按照业务模块维度做精细化定量分析,从而快速识别应用程序的异常点,提升用户的体验。同时,由于打点探针作用的对象是应用程序的某个业务功能模块,因此,可以减小对应用程序的影响,实现较小的资源消耗。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:云管理平台以用户界面UI的方式展示该第一应用程序的资源指标数据。
结合第一方面,在第一方面的某些实现方式中,该第一应用程序中还包括第一服务端,云管理平台通过第一客户端从该第一服务端获取该第一应用程序的资源指标数据。
上述以客户端/服务端(client/server,C/S)交互式的通信方式,能够支持本地和跨网络采集数据,可以动态的对服务端计数打点进行控制、过滤等,具有良好的用户操作性以及高效率的部署维护。
结合第一方面,在第一方面的某些实现方式中,该第一客户端部署在第一节点上,该第一服务端部署在第二节点上,云管理平台基于该第一节点上的第一客户端,通过网络从该第二节点上的第一服务端获取该第一应用程序的资源指标数据。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:云管理平台通过第二客户端从该第二服务端获取该第二应用程序的资源指标数据,该第二应用程序中包括该第二服务端和多个业务功能模块,每个该业务功能模块中包括打点探针,每个该打点探针用于获取与该打点探针所在的业务功能模块的数据指标,该第二应用程序的资源指标数据是根据该第二应用程序中的多个业务功能模块对应的数据指标确定的;云管理平台根据该第二应用程序的资源指标数据对该第二应用程序进行异常分析。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:云管理平台以UI的方式展示该第二应用程序的资源指标数据。
结合第一方面,在第一方面的某些实现方式中,云管理平台通过远程过程调用RPC的方式获取该第一应用程序的资源指标数据。
第二方面,提供了一种数据处理的装置,该装置应用于云管理平台,包括:第一获取模块,用于获取第一应用程序的资源指标数据,该第一应用程序中包括多个业务功能模块,每个该业务功能模块中包括打点探针,每个该打点探针用于获取与该打点探针所在的业务功能模块的数据指标,该第一应用程序的资源指标数据是根据该第一应用程序中的多个业务功能模块对应的数据指标确定的;分析模块,用于根据该第一应用程序的资源指标数据对该第一应用程序进行异常分析。
结合第二方面,在第二方面的某些实现方式中,该装置还包括:展示模块,用于以用户界面UI的方式展示该第一应用程序的资源指标数据。
结合第二方面,在第二方面的某些实现方式中,该第一应用程序中还包括第一服务端,该第一获取模块具体用于:第一客户端从该第一服务端获取该第一应用程序的资源指标数据。
结合第二方面,在第二方面的某些实现方式中,该第一客户端部署在第一节点上,该第一服务端部署在第二节点上,该第一获取模块具体用于:该第一节点上的第一客户端通过网络从该第二节点上的第一服务端获取该第一应用程序的资源指标数据。
结合第二方面,在第二方面的某些实现方式中,该装置还包括:第二获取模块,用于第二客户端从该第二服务端获取该第二应用程序的资源指标数据,该第二应用程序中包括该第二服务端和多个业务功能模块,每个该业务功能模块中包括打点探针,每个该打点探针用于获取与该打点探针所在的业务功能模块的数据指标,该第二应用程序的资源指标数据是根据该第二应用程序中的多个业务功能模块对应的数据指标确定的;该分析模块,还用于根据该第二应用程序的资源指标数据对该第二应用程序进行异常分析。
结合第二方面,在第二方面的某些实现方式中,该展示模块还用于:以UI的方式展示该第二应用程序的资源指标数据。
结合第二方面,在第二方面的某些实现方式中,该第一获取模块具体用于:通过远程过程调用RPC的方式获取该第一应用程序的资源指标数据。
第三方面,提供了一种计算设备,包括处理器和存储器,可选地,还包括输入输出接口。其中该处理器用于控制该输入输出接口收发信息,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该执行第一方面或第一方面任意一种可能的实现方式中该的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第四方面,提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;该至少一个计算设备的处理器用于执行该至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行第一方面或第一方面任意一种可能的实现方式中该的方法。
第五方面,提供了一种芯片,该芯片获取指令并执行该指令来实现上述第一方面以及第一方面的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第六方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备运行时,使得该计算设备执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
第七方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备集群运行时,使得该计算设备集群执行执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
第八方面,提供了一种计算机可读存储介质,其特征在于,包括计算机程序指令,当该计算机程序指令由计算设备执行时,该计算设备执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
第九方面,提供了一种计算机可读存储介质,其特征在于,包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
附图说明
图1是适用于本申请实施例的***架构的示意性框图。
图2是本申请实施例提供的一种数据处理的方法的示意性流程图。
图3是本申请实施例提供的一种云服务的***架构示意图。
图4是本申请实施例提供的一种计数器之间的树型结构组织的示意性框图。
图5是本申请实施例提供的一种数据处理的装置400的示意性框图。
图6是本申请实施例提供的一种计算设备500的架构示意图。
图7是本申请实施例提供的一种计算设备集群的架构示意图。
图8是本申请实施例提供的计算设备500A和500B之间通过网络进行连接的示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的***来呈现各个方面、实施例或特征。应当理解和明白的是,各个***可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
云数据库在存储与计算分离架构下,存储节点与计算节点通过网络进行数据交互。存储节点拥有中央处理器(central processing units,CPU)、存储器(Memory)、固态硬盘(solid state drive,SSD)以及网络等完整的物理设施。当数据库实例在存储层运行出现问题时,比如时延升高、性能抖动、读写访问异常,运维人员需要识别存储层的异常点,并进行根因的定位分析。以便实施快速恢复应急预案、优化存储层参数配置和软件栈,从而保障存储层的稳定运行,提升用户的体验。
Perf是Linux***中提供的一种性能分析工具,其可以在程序部署的服务器节点上先进行Perf采样打点数据,之后再基于采样打点数据做问题定位分析。应理解,Perf是基于性能计数器(performance counters)的内核子***实现,同时支持硬件层面(例如,CPU、性能监测单元(performance monitoring unit,PMU))和软件(例如,软件计数器、tracepoint)层面的性能分析。
上述Perf虽然无需应用程序进行适配开发,但是却存在以下问题:
1、由于Perf依赖Linux内核,因此其部署不灵活,只能在应用程序所在服务器节点上执行采样命令,且采样的打点数据质量依赖采样模型选取,影响数据分析结果的可信度;
2、对于云环境下,Perf做不到数据实时计数打点、数据归档和分析处理效率低、成本高,导致问题定位分析周期长、云数据库存储层无法实现大规模数据可视化监控;
3、Perf打点采样数据独立、无业务语义、无法做关联分析,过度依赖有经验运维人员分析汇总打点数据;
4、Perf作用对象是整个应用程序的进程,长时间采样打点数据资源消耗大,影响应用程序性能,无法按照业务模块维度做精细化定量分析。
有鉴于此,本申请实施例提供了一种数据处理的方法,一方面可以使得采样的数据具有业务语义,能够观测到应用程序内部的异常和性能,从而可以按照业务模块维度做精细化定量分析,另一方面还可以减小对应用程序的影响,实现较小的资源消耗。
下面结合图1,对适用于本申请实施例的***架构进行详细描述。
图1是适用于本申请实施例的***架构的示意性框图。如图1所示,该***架构中可以包括呈现层(presentation layer)110、采样层(sampling layer)120以及应用层(application layer)130,下面分别进行详细描述。
应用层130,部署有多个节点(node),每个node中可以包括应用程序进程(application process),该应用程序进程中嵌入有服务端(srever)和多个打点探针。其中,可以根据应用程序的需求,将多个打点探针分别植入到应用程序进程中的各个业务功能模块中,并随应用程序编译打包。业务进行一次读写操作,会触发对应业务功能模块中的打点探针进行计数打点以获得数据指标。服务端(srever)嵌入到应用程序进程中,与应用程序进程共生命周期,负责根据打点探针获得的数据指标进行数据的组织、记录以及数学运算等操作,以获得资源类的指标信息(也可以称为资源指标数据)。
应理解,本申请实施例对植入到应用程序进程的各个业务功能模块中的打点探针的类型不做具体限定。一种可能的实现方式中,该打点探针是计数类探针(也可以称为计数器),主要用于计数,上述打点探针获得的数据指标可以是统计次数。另一种可能的实现方式中,该打点探针是时延类的探针,主要用于统计时延,上述打点探针获得的数据指标可以是时延信息。
采样层120,部署有至少一个客户端(client),该至少一个客户端(client)负责将每个节点上服务端(srever)获取的打点信息进行采集、汇聚、指标化以及存储。例如,客户端可以通过命令行的方式与服务端(srever)进行交互,以获取服务端(srever)确定的资源类的指标信息。
应理解,客户端(client)的部署方式有多种,本申请实施例对此不做具体限定。例如,可以将客户端(client)和应用层130中的应用程序进程部署在一个节点(node)上。又如,还可以将客户端(client)和应用程序进程分开部署,例如,可以将客户端(client)部署在采样节点(sampling node)上。
本申请实施例中通过将多个采样节点(sampling node)同时部署多个客户端(client),从而保证采样节点(sampling node)的高可用性。
呈现层110,负责将采样层120分析和汇总的数据推送到用户界面(userinterface,UI)进行展示。具体的,可以对应用程序读写链路上的打点信息,以UI一张图的方式展示业务调用接口耗时、数据状态推进变化、模块资源消耗等,从而加快识别业务异常位置。
应理解,上述呈现层(presentation layer)110、采样层(sampling layer)120以及应用层(application layer)130之间独立部署,各个层之间可以跨网络进行数据交互。
下面结合图2,对本申请实施例提供的一种数据处理的方法进行详细描述。应理解,图2所示的还可以应用到任意需要观测应用程序内部的性能或异常的场景中。
图2是本申请实施例提供的一种数据处理的方法的示意性流程图。如图2所示,该方法应用于云管理平台,该方法可以包括步骤210-230,下面分别对步骤210-230继续详细描述。
步骤210:云管理平台通过第一服务端获取第一应用程序中多个打点探针在一段时间内统计的数据指标。
应理解,云管理平台位于云数据中心,其可以提供访问接口(如界面或应用程序界面(application program interface,API))。租户可操作客户端远程接入访问接口在云管理平台注册云账号和密码,并登录云管理平台。云管理平台对云账号和密码鉴权成功后,租户可进一步在云管理平台付费选择并购买特定规格(处理器、内存、磁盘)的虚拟机。付费购买成功后,云管理平台提供所购买的虚拟机的远程登录账号密码,客户端可远程登录该虚拟机,在该虚拟机中安装并运行租户的应用。因此,租户可通过云管理平台在云数据中心中创建、管理、登录和操作虚拟机。其中,虚拟机也可称为云服务器(elastic computeservice,ECS)、弹性实例(不同的云服务提供商有不同的叫法)。下会结合图3,对云管理平台进行详细描述,此处暂不详述。
本申请实施例中,可以根据第一应用程序的需求,将多个打点探针分别植入到第一应用程序进程中的各个业务功能模块中,并随应用程序编译打包。当业务对该第一应用程序进行一次读写操作时,会触发对应业务功能模块中的打点探针进行计数打点,获得数据指标。
作为示例,以打点探针是计数类探针(也可以称为计数器)为例,上述数据指标可以是统计次数(cnt)。以打点探针是时延类的探针为例,上述数据指标可以是时延信息。
应理解,上述业务功能模块可以是第一应用程序中的对象(object),或者还可以是第一应用程序中的函数(function),或者还可以是第一应用程序中的模块(module),或者还可以是第一应用程序中的数据分片单元(slice),本申请实施例对此不做具体限定,以获得资源类的指标信息。
上述在应用程序的业务功能模块中***打点探针,使得打点探针对应用程序的侵入性较小,可移植性较强。
步骤220:第一服务端根据上述数据指标进行数据的组织、记录以及数学运算等操作。
上述第一服务端是嵌入到第一应用程序中的,与第一应用程序进程共生命周期。第一服务端可以对第一应用程序中植入的多个打点探针获得的数据指标进行管理,例如,第一服务端在获得第一应用程序进程中植入的多个打点探针在一段时间内统计的数据指标后,可以根据数据指标进行数据的组织、记录以及数学运算等操作,以获得资源类的指标信息。
应理解,上述资源类的指标可以包括但不限于:业务功能模块的资源消耗情况、数据状态推进变化信息、业务调用接口耗时信息等。
还应理解,上述数学运算可以包括但不限于:累计和(sum)、最小值(min)、最大值(max)、均值(avg)等。
步骤230:云管理平台通过第一服务端将第一应用程序的资源类的指标信息反馈给第一客户端。
本申请实施例中,第一客户端可以通过命令行的方式与第一服务端进行交互,第一服务端可以根据该命令行,将第一应用程序的资源类的指标信息反馈给第一客户端。
上述以客户端/服务端(client/server,C/S)交互式的通信方式,能够支持本地和跨网络采集数据,可以动态的对服务端计数打点进行控制、过滤等,具有良好的用户操作性以及高效率的部署维护。
上述技术方案中,通过在应用程序内的各个业务功能模块植入打点探针,可以具体到应用程序的业务功能模块的内部,这样可以使得采样的数据具有具体的业务语义,能够观测到应用程序内部的异常和性能,从而可以按照业务模块维度做精细化定量分析。同时,由于打点探针作用的对象是应用程序的某个业务功能模块,因此,可以减小对应用程序的影响,实现较小的资源消耗。
下面结合图3,对云服务的***架构进行详细描述。
图3是本申请实施例提供的一种云服务的***架构示意图。如图3所示,该***中可以包括:云管理平台310、互联网320以及客户端330。
如图3所示,云管理平台310用于管理提供多个云服务的基础设施,基础设施包括多个云数据中心,每个云数据中心中包括多个服务器,每个服务器中分别包括云服务资源,为租户提供相应的云服务。
云管理平台310提供访问接口(如界面或应用程序界面(application programinterface,API)),租户可操作客户端远程接入访问接口在云管理平台310注册云账号和密码,并登录云管理平台310。云管理平台310对云账号和密码鉴权成功后,租户可进一步在云管理平台310付费选择并购买特定规格(处理器、内存、磁盘)的虚拟机。付费购买成功后,云管理平台310提供所购买的虚拟机的远程登录账号密码,客户端可远程登录该虚拟机,在该虚拟机中安装并运行租户的应用。
应理解,云服务的租户可以是个人、企业、学校、医院、行政机关等。
云管理平台310的功能包括但不限于用户控制台、计算管理服务、网络管理服务、存储管理服务、鉴权服务、镜像管理服务。用户控制台提供界面或API与租户交互,计算管理服务用于管理运行虚拟机和容器的服务器以及裸金属服务器,网络管理服务用于管理网络服务(如网关、防火墙等),存储管理服务用于管理存储服务(如数据桶服务),鉴权服务用于管理租户的账号密码,镜像管理服务用于管理虚拟机镜像。租户使用客户端330,通过互联网320可以登录云管理平台310,对租用的云服务进行管理。
需要说明的是,本申请实施例对获取植入到第一应用程序的探针的打点数据的方式不做具体限定,图2中以客户端/服务端(client/server,C/S)的通信方式获取打点数据只是其中一种实现方式。本申请实施例中还可以通过其他的通信方式获取打点数据,例如,使用远程过程调用(remote procedure call,RPC)的通信方式获取打点数据。
本申请实施例中,第一客户端还可以通过命令行的方式对第一服务端的打点探针进行重置(reset)、启动(start)、停止(pause)、导出(dump)或过滤(filter)等操作。也即每个植入到第一应用程序的打点探针支持动态启停计数操作,实现了按需计数打点。
下面会结合表1,对第一客户端向第一服务端发送的命令行进行举例说明。应理解,表1的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于表1所示例的具体数值或具体场景。本领域技术人员根据表1所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
表1第一客户端的命令行操作参数
参见表1,第一客户端可以通过如表1所示命令行方式与第一服务端交互,可对第一服务端的打点探针进行重置(reset)、启动(start)、停止(pause)、导出(dump)或过滤(filter)等操作。
可选地,上述第一客户端还可以通过上述命令行获取到第一服务端侧的资源类的指标数据后,将该资源类的指标数据推送到用户界面(user interface,UI)进行展示。以便于用户(例如,运维人员)可以根据该第一应用程序的资源类的指标信息加快识别业务异常的位置,从而识别出存储层的异常点,并进行根因定位分析。
下面以上述第一服务端侧的资源类的指标信息为内存使用率(memory usage)为例,结合表2,描述第一客户端向用户界面(user interface,UI)展示的第一服务端侧的资源类的指标数据,以便于用户(例如,运维人员)可以根据该资源类的指标数据加快识别业务异常的位置,从而识别出存储层的异常点,并进行根因定位分析。
应理解,表2的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于表2所示例的具体数值或具体场景。本领域技术人员根据表2所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
表2第一客户端向UI展示的内存使用率(memory usage)
参见图2,作为示例,本申请实施例中可以分别以第一应用程序中的“模块(module)”、“函数(function)”、以及“对象(object)”作为上述业务功能模块,并分别在第一应用程序的“模块(module)”、“函数(function)”、以及“对象(object)”处植入打点探针。例如,在第一应用程序的ModuleA处植入标识(identification,ID)为152的探针,在第一应用程序的ModuleB处植入ID为153的探针,在第一应用程序的ModuleC处植入ID为154的探针。又如,在第一应用程序的function A处植入ID为155的探针,在第一应用程序的function B处植入ID为156的探针。又如,在第一应用程序的object A处植入ID为157的探针。
以ModuleA为例,“ModuleAMemoryid=152:avg/min/max/last=31359/0/20716674/49200cnt=909659715”中的“ModuleAMemoryid=152”表示在ModuleA处植入ID为152的探针;“cnt=909659715”表示ID为152的探针在ModuleA处统计的打点数据,该探针可以是一个计数器,其统计的数据指标为次数,例如,统计了909659715次;“avg=31359”为第一服务端根据ModuleA处的探针统计的次数(cnt=909659715),以及每次运行ModuleA所需要的内存大小,确定在将ModuleA运行了909659715次中ModuleA所需要的内存大小的平均值(例如,该内存大小的平均值为31359);“min=0”为第一服务端根据ModuleA处的探针统计的次数(cnt=909659715),以及每次运行ModuleA所需要的内存大小,确定在将ModuleA运行了909659715次中ModuleA所需要的内存大小的最小值(例如,该内存大小的最小值为0);“max=20716674”为第一服务端根据ModuleA处的探针统计的次数(cnt=909659715),以及每次运行ModuleA所需要的内存大小,确定在将ModuleA运行了909659715次中ModuleA所需要的内存大小的最大值(例如,该内存大小的最大值为20716674);“last=49200”为第一服务端确定的当前运行ModuleA所需要的内存大小(例如,该内存大小为49200)。
以ModuleB为例,“ModuleBMemoryid=153:
avg/min/max/last=19674831954/0/21805758926/21596965058cnt=1542402”中的“ModuleBMemoryid=153”表示在ModuleB处植入ID为153的探针;“cnt=1542402”表示ID为153的探针在ModuleB处统计的打点数据,该探针可以是一个计数器,其统计的数据指标为次数,例如,统计了1542402次;“avg=19674831954”为第一服务端根据ModuleB处的探针统计的次数(cnt=1542402),以及每次运行ModuleB所需要的内存大小,确定在将ModuleB运行了1542402次中ModuleB所需要的内存大小的平均值(例如,该内存大小的平均值为19674831954);“min=0”为第一服务端根据ModuleB处的探针统计的次数(cnt=1542402),以及每次运行ModuleB所需要的内存大小,确定在将ModuleB运行了1542402次中ModuleB所需要的内存大小的最小值(例如,该内存大小的最小值为0);“max=21805758926”为第一服务端根据ModuleB处的探针统计的次数(cnt=1542402),以及每次运行ModuleB所需要的内存大小,确定在将ModuleB运行了1542402次中ModuleB所需要的内存大小的最大值(例如,该内存大小的最大值为21805758926);
“last=21596965058”为第一服务端确定的当前运行ModuleB所需要的内存大小(例如,该内存大小为21596965058)。
以ModuleC为例,“ModuleCMemory id=154:
avg/min/max/last=754310/0/19852089/1176647cnt=3848442463”中的“ModuleCMemory id=154”表示在ModuleC处植入ID为154的探针;“cnt=3848442463”表示ID为154的探针在ModuleC处统计的打点数据,该探针可以是一个计数器,其统计的数据指标为次数,例如,统计了3848442463次;“avg=754310”为第一服务端根据ModuleC处的探针统计的次数(cnt=3848442463),以及每次运行ModuleC所需要的内存大小,确定在将ModuleC运行了3848442463次中ModuleC所需要的内存大小的平均值(例如,该内存大小的平均值为754310);“min=0”为第一服务端根据ModuleC处的探针统计的次数(cnt=3848442463),以及每次运行ModuleC所需要的内存大小,确定在将ModuleC运行了3848442463次中ModuleC所需要的内存大小的最小值(例如,该内存大小的最小值为0);“max=19852089”为第一服务端根据ModuleC处的探针统计的次数(cnt=3848442463),以及每次运行ModuleC所需要的内存大小,确定在将ModuleC运行了3848442463次中ModuleC所需要的内存大小的最大值(例如,该内存大小的最大值为19852089);“last=1176647”为第一服务端确定的当前运行ModuleC所需要的内存大小(例如,该内存大小为1176647)。
以FunctionA为例,“FunctionAMemory id=155:
avg/min/max/last=3635780/0/6604161848/1586519cnt=753933141”中的“FunctionAMemory id=155”表示在FunctionA处植入ID为155的探针;“cnt=753933141”表示ID为155的探针在FunctionA处统计的打点数据,该探针可以是一个计数器,其统计的数据指标为次数,例如,统计了753933141次;“avg=3635780”为第一服务端根据FunctionA处的探针统计的次数(cnt=753933141),以及每次运行FunctionA所需要的内存大小,确定在将FunctionA运行了753933141次中FunctionA所需要的内存大小的平均值(例如,该内存大小的平均值为3635780);“min=0”为第一服务端根据FunctionA处的探针统计的次数(cnt=753933141),以及每次运行FunctionA所需要的内存大小,确定在将FunctionA运行了753933141次中FunctionA所需要的内存大小的最小值(例如,该内存大小的最小值为0);“max=6604161848”为第一服务端根据FunctionA处的探针统计的次数(cnt=753933141),以及每次运行FunctionA所需要的内存大小,确定在将FunctionA运行了753933141次中FunctionA所需要的内存大小的最大值(例如,该内存大小的最大值为6604161848);“last=1586519”为第一服务端确定的当前运行FunctionA所需要的内存大小(例如,该内存大小为1586519)。
以FunctionB为例,“FunctionBMemory id=156:
avg/min/max/last=5303606955/0/17179869184/17179869184cnt=3814582”中的“FunctionBMemory id=156”表示在FunctionB处植入ID为156的探针;“cnt=3814582”表示ID为156的探针在FunctionB处统计的打点数据,该探针可以是一个计数器,其统计的数据指标为次数,例如,统计了3814582次;“avg=5303606955”为第一服务端根据FunctionB处的探针统计的次数(cnt=3814582),以及每次运行FunctionB所需要的内存大小,确定在将FunctionB运行了3814582次中FunctionB所需要的内存大小的平均值(例如,该内存大小的平均值为5303606955);“min=0”为第一服务端根据FunctionB处的探针统计的次数(cnt=3814582),以及每次运行FunctionB所需要的内存大小,确定在将FunctionB运行了3814582次中FunctionB所需要的内存大小的最小值(例如,该内存大小的最小值为0);“max=17179869184”为第一服务端根据FunctionB处的探针统计的次数(cnt=3814582),以及每次运行FunctionB所需要的内存大小,确定在将FunctionB运行了3814582次中FunctionB所需要的内存大小的最大值(例如,该内存大小的最大值为17179869184);“last=17179869184”为第一服务端确定的当前运行FunctionB所需要的内存大小(例如,该内存大小为17179869184)。
以ObjectA为例,“ObjectAMemory id=157:avg/min/max/last=247/0/1717/798cnt=4585”中的“ObjectAMemory id=157”表示在ObjectA处植入ID为157的探针;“cnt=4585”表示ID为157的探针在ObjectA处统计的打点数据,该探针可以是一个计数器,其统计的数据指标为次数,例如,统计了4585次;“avg=247”为第一服务端根据ObjectA处的探针统计的次数(cnt=4585),以及每次运行ObjectA所需要的内存大小,确定在将ObjectA运行了4585次中ObjectA所需要的内存大小的平均值(例如,该内存大小的平均值为247);“min=0”为第一服务端根据FunctionB处的探针统计的次数(cnt=4585),以及每次运行ObjectA所需要的内存大小,确定在将ObjectA运行了4585次中ObjectA所需要的内存大小的最小值(例如,该内存大小的最小值为0);“max=1717”为第一服务端根据ObjectA处的探针统计的次数(cnt=4585),以及每次运行ObjectA所需要的内存大小,确定在将ObjectA运行了4585次中ObjectA所需要的内存大小的最大值(例如,该内存大小的最大值为1717);“last=798”为第一服务端确定的当前运行ObjectA所需要的内存大小(例如,该内存大小为798)。
“TotalMemory id=151:avg/min/max/last=1647880654/0/41783613764/39264784201cnt=8028181729”表示各个业务功能模块(例如,ModuleA-ModuleC、FunctionA-FunctionB以及ObjectA)总的内存使用情况,例如,“avg=1647880654”表示第一服务端根据上述各个业务功能模块处的探针统计的次数(cnt=8028181729),以及每次运行上述各个业务功能模块所需要的内存大小,确定在将述各个业务功能模块运行了8028181729次中上述各个业务功能模块所需要的内存大小的平均值(例如,该内存大小的平均值为1647880654);“min=0”表示第一服务端根据上述各个业务功能模块处的探针统计的次数(cnt=8028181729),以及每次运行述各个业务功能模块所需要的内存大小,确定在将述各个业务功能模块运行了8028181729次中述各个业务功能模块所需要的内存大小的最小值(例如,该内存大小的最小为0);“max=41783613764”表示第一服务端根据上述各个业务功能模块处的探针统计的次数(cnt=8028181729),以及每次运行上述各个业务功能模块所需要的内存大小,确定在将述各个业务功能模块运行了8028181729次中上述各个业务功能模块所需要的内存大小的最大值(例如,该内存大小的最大为4178361376);“last=39264784201”为第一服务端确定的当前运行上述各个业务功能模块所需要的内存大小(例如,该内存大小为39264784201)。
上述技术方案中,第一客户端将上述内存使用率(memory usage)通过UI展示给用户(例如,运维人员),该用户(例如,运维人员)可以根据该内存使用率(memory usage)的指标数据,确定各个业务功能模块的资源消耗情况。当数据库实例在存储层运行出现问题时,比如时延升高、性能抖动、读写访问异常,用户(例如,运维人员)可以基于界面展示的各个业务功能模块的资源消耗情况识别出异常点是在第一应用程序的哪个业务功能模块,以便于便实施快速恢复应急预案、优化存储层参数配置和软件栈,从而保障存储层的稳定运行,提升用户的体验。
应理解,表2中的“Memory Usage”表示第一应用程序的资源类的指标信息为内存使用率(memory usage)。
可选地,在一些实施例中,第一服务端还可以采用树型数据结构组织植入第一应用程序的各个打点探针,每个打点探针是一个独立的变量,大数据量、频繁打点场景,运行在特定核上,避免计数打点变量失效问题(cache ping-pong)。
上述技术方案中,采用无锁的树形数据结构组织植入第一应用程序的各个打点探针,可以充分发挥多核能力,计数打点精度高、运算快。
举例说明,如图4所示,以打点探针为计数器(counter),第一应用程序中植入counterA-counterF为例,第一服务端采用树型数据结构组织counterA-counterF(计数器A-计数器F)。每棵树有归属本层次的计数器(叶子节点)和下一层的计数器分类(子树),例如,counterA-counterC为归属于本层次的计数器,counterD-counterF为归属于下一层的计数器。
本申请实施例中,上述各个counter(例如,counterA-counterF)支持动态启停计数操作,实现了按需计数打点。且每个counter下数据类型是原子变量,避免使用锁引起的开销。counter支持的算子有累计和(sum)、最小(min)、最大(max)、均值(avg)、当前值(last)、已统计次(count),并且支持丰富的数据类型,该数据类型包括但不限于:整形型(例如,8、16、32、64位)、浮点型、字符型等等。
上述技术方案中,可以提供丰富的计数器(counter)类型,资源消耗小,对业务性能影响几乎忽略不计,可以动态支持计数器(counter)启停。
本申请实施例中,应用程序编译时,将探针(例如,counter)植入到对应功能模块里。当业务进行一次读写操作,会触发模块内的探针(例如,counter)计数,同时每个模块之间也会存在直接或间接调用。服务端会自动运算对应counter的算子,统计计数打点结果,最终客户端将数据汇聚导出。这样,对于整个输入输出(input output,IO)请求的链路计数打点,比如时延,可以具体到应用程序的模块内部,绑定到模块使用的具体数据结构上,从而可以很直观识别应用程序的运行状态。
上文结合图1至图4,详细描述了本申请实施例提供的方法,下面将结合图5-图8,详细描述本申请装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图5是本申请实施例提供的一种数据处理的装置400的示意性框图。该装置400可以通过软件、硬件或者两者的结合实现。本申请实施例提供的数据处理的装置400可以实现本申请实施例图2所示的方法流程,该装置400包括:第一获取模块410,分析模块420。
第一获取模块410,用于获取第一应用程序的资源指标数据,该第一应用程序中包括多个业务功能模块,每个该业务功能模块中包括打点探针,每个该打点探针用于获取与该打点探针所在的业务功能模块的数据指标,该第一应用程序的资源指标数据是根据该第一应用程序中的多个业务功能模块对应的数据指标确定的;分析模块420,用于根据该第一应用程序的资源指标数据对该第一应用程序进行异常分析。
可选地,该装置400还包括:展示模块,用于以用户界面UI的方式展示该第一应用程序的资源指标数据。
可选地,该第一应用程序中还包括第一服务端,该第一获取模块410具体用于:第一客户端从该第一服务端获取该第一应用程序的资源指标数据。
可选地,该第一客户端部署在第一节点上,该第一服务端部署在第二节点上,该第一获取模块410具体用于:该第一节点上的第一客户端通过网络从该第二节点上的第一服务端获取该第一应用程序的资源指标数据。
可选地,该装置400还包括:第二获取模块,用于第二客户端从该第二服务端获取该第二应用程序的资源指标数据,该第二应用程序中包括该第二服务端和多个业务功能模块,每个该业务功能模块中包括打点探针,每个该打点探针用于获取与该打点探针所在的业务功能模块的数据指标,该第二应用程序的资源指标数据是根据该第二应用程序中的多个业务功能模块对应的数据指标确定的;该分析模块420,还用于根据该第二应用程序的资源指标数据对该第二应用程序进行异常分析。
可选地,该展示模块还用于:以UI的方式展示该第二应用程序的资源指标数据。
可选地,该第一获取模块410具体用于:通过远程过程调用RPC的方式获取该第一应用程序的资源指标数据。
这里的装置400可以以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。
例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。示例性的,接下来以第一获取模块410为例,介绍第一获取模块410的实现方式。类似的,其他模块,例如分析模块420的实现方式可以参考第一获取模块410的实现方式。
第一获取模块410作为软件功能单元的一种举例,第一获取模块410可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,第一获取模块410可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
第一获取模块410作为硬件功能单元的一种举例,第一获取模块410可以包括至少一个计算设备,如服务器等。或者,第一获取模块410也可以是利用专用集成电路(application-specific integrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
第一获取模块410包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。第一获取模块410包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,第一获取模块410包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
因此,在本申请的实施例中描述的各示例的模块,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是:上述实施例提供的装置在执行上述方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。例如,第一获取模块410可以用于执行上述方法中的任意步骤,分析模块420可以用于执行上述方法中的任意步骤,分析模块420可以用于执行上述方法中的任意步骤。第一获取模块410、分析模块420负责实现的步骤可根据需要指定,通过第一获取模块410、分析模块420分别实现上述方法中不同的步骤来实现上述装置的全部功能。
另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见上文中的方法实施例,这里不再赘述。
本申请实施例提供的方法可以由计算设备执行,该计算设备也可以被称为计算机***。包括硬件层、运行在硬件层之上的操作***层,以及运行在操作***层上的应用层。该硬件层包括处理单元、内存和内存控制单元等硬件,随后对该硬件的功能和结构进行详细说明。该操作***是任意一种或多种通过进程(process)实现业务处理的计算机操作***,例如,Linux操作***、Unix操作***、Android操作***、iOS操作***或windows操作***等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用程序。并且,可选地,该计算机***是智能手机等手持设备,或个人计算机等终端设备,本申请并未特别限定,只要能够通过本申请实施例提供的方法即可。本申请实施例提供的方法的执行主体可以是计算设备,或者,是计算设备中能够调用程序并执行程序的功能模块。
下面结合图6,对本申请实施例提供的一种计算设备进行详细描述。
图6是本申请实施例提供的一种计算设备500的架构示意图。该计算设备500可以是服务器或者计算机或者其他具有计算能力的设备。图6所示的计算设备500包括:至少一个处理器510和存储器520。
应理解,本申请不限定计算设备500中的处理器、存储器的个数。
处理器510执行存储器520中的指令,使得计算设备500实现本申请提供的方法。或者,处理器510执行存储器520中的指令,使得计算设备500实现本申请提供的各功能模块,从而实现本申请提供的方法。
可选地,计算设备500还包括通信接口530。通信接口530使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备500与其他设备或通信网络之间的通信。
可选地,计算设备500还包括***总线540,其中,处理器510、存储器520和通信接口530分别与***总线540连接。处理器510能够通过***总线540访问存储器520,例如,处理器510能够通过***总线540在存储器520中进行数据读写或代码执行。该***总线540是快捷外设部件互连标准(peripheral component interconnect express,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述***总线540分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
一种可能的实现方式,处理器510的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在存储器520或者缓存516中。
可选地,处理器510可能是集成电路芯片,具有信号的处理能力。作为示例而非限定,处理器510是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器是微处理器等。例如,该处理器510是中央处理单元(central processing unit,CPU)。
可选地,每个处理器510包括至少一个处理单元512和内存控制单元514。
可选地,处理单元512也称为核心(core)或内核,是处理器最重要的组成部分。处理单元512是由单晶硅以一定的生产工艺制造出来的,处理器所有的计算、接受命令、存储命令、处理数据都由核心执行。处理单元分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。各种处理单元都具有固定的逻辑结构,例如,处理单元包括例如,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元。
一种实现举例,内存控制单元514用于控制存储器520与处理单元512之间的数据交互。具体地说,内存控制单元514从处理单元512接收内存访问请求,并基于该内存访问请求控制针对内存的访问。作为示例而非限定,内存控制单元是内存管理单元(memorymanagement unit,MMU)等器件。
一种实现举例,各内存控制单元514通过***总线进行针对存储器520的寻址。并且在***总线中配置仲裁器(图6中未示出),该仲裁器负责处理和协调多个处理单元512的竞争访问。
一种实现举例,处理单元512和内存控制单元514通过芯片内部的连接线,例如地址线,通信连接,从而实现处理单元512和内存控制单元514之间的通信。
可选地,每个处理器510还包括缓存516,其中,缓存是数据交换的缓冲区(称作cache)。当处理单元512要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从存储器中找。由于缓存的运行速度比存储器快得多,故缓存的作用就是帮助处理单元512更快地运行。
存储器520能够为计算设备500中的进程提供运行空间,例如,存储器520中保存用于生成进程的计算机程序(具体地说,是程序的代码)。计算机程序被处理器运行而生成进程后,处理器在存储器520中为该进程分配对应的存储空间。进一步的,上述存储空间进一步包括文本段、初始化数据段、位初始化数据段、栈段、堆段等等。存储器520在上述进程对应的存储空间中保存进程运行期间产生的数据,例如,中间数据,或过程数据等等。
可选地,存储器也称为内存,其作用是用于暂时存放处理器510中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器510就会把需要运算的数据调到内存中进行运算,当运算完成后处理单512再将结果传送出来。
作为示例而非限定,存储器520是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。应注意,本文描述的***和方法的存储器520旨在包括但不限于这些和任意其它适合类型的存储器。
以上列举的计算设备500的结构仅为示例性说明,本申请并未限定于此,本申请实施例的计算设备500包括现有技术中计算机***中的各种硬件,例如,计算设备500还包括除存储器520以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备500还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备500还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备500也可仅仅包括实现本申请实施例所必须的器件,而不必包括图6中所示的全部器件。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图7所示,所述计算设备集群包括至少一个计算设备500。计算设备集群中的一个或多个计算设备500中的存储器520中可以存有相同的用于执行上述方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备500中的存储器520也可以分别存有用于执行上述方法的部分指令。换言之,一个或多个计算设备500的组合可以共同执行上述方法的指令。
需要说明的是,计算设备集群中的不同的计算设备500中的存储器520可以存储不同的指令,分别用于执行上述装置的部分功能。也即,不同的计算设备500中的存储器520存储的指令可以实现将上述装置中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图8示出了一种可能的实现方式。如图8所示,两个计算设备500A和500B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。
应理解,图8中示出的计算设备500A的功能也可以由多个计算设备500完成。同样,计算设备500B的功能也可以由多个计算设备500完成。
本实施例中,还提供了一种包含指令的计算机程序产品,所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当其在计算设备上运行时,使得计算设备执行上述所提供的方法,或者使得该计算设备实现上述提供的装置的功能。
本实施例中,还提供了一种包含指令的计算机程序产品,所述计算机程序产品可以是包含指令的,能够运行在计算设备集群上或被储存在任何可用介质中的软件或程序产品。当其由计算设备集群运行时,使得计算设备集群执行上述所提供的方法,或者使得该计算设备集群实现上述提供的装置的功能。
本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,当计算机可读存储介质中的指令在计算设备上被执行时,使得计算设备执行上述所提供的方法。
本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,当计算机可读存储介质中的指令由计算设备集群执行时,使得计算设备集群执行上述所提供的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (22)
1.一种数据处理的方法,其特征在于,所述方法应用于云管理平台,所述方法包括:
所述云管理平台获取第一应用程序的资源指标数据,所述第一应用程序中包括多个业务功能模块,每个所述业务功能模块中包括打点探针,每个所述打点探针用于获取与所述打点探针所在的业务功能模块的数据指标,所述第一应用程序的资源指标数据是根据所述第一应用程序中的多个业务功能模块对应的数据指标确定的;
所述云管理平台根据所述第一应用程序的资源指标数据对所述第一应用程序进行异常分析。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述云管理平台以用户界面UI的方式展示所述第一应用程序的资源指标数据。
3.根据权利要求1或2所述的方法,其特征在于,所述第一应用程序中还包括第一服务端,所述获取第一应用程序的资源指标数据,包括:
所述云管理平台通过第一客户端从所述第一服务端获取所述第一应用程序的资源指标数据。
4.根据权利要求3所述的方法,其特征在于,所述第一客户端部署在第一节点上,所述第一服务端部署在第二节点上,
所述云管理平台通过第一客户端从所述第一服务端获取所述第一应用程序的资源指标数据,包括:
所述云管理平台基于所述第一节点上的第一客户端,通过网络从所述第二节点上的第一服务端获取所述第一应用程序的资源指标数据。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
所述云管理平台通过第二客户端从所述第二服务端获取所述第二应用程序的资源指标数据,所述第二应用程序中包括所述第二服务端和多个业务功能模块,每个所述业务功能模块中包括打点探针,每个所述打点探针用于获取与所述打点探针所在的业务功能模块的数据指标,所述第二应用程序的资源指标数据是根据所述第二应用程序中的多个业务功能模块对应的数据指标确定的;
所述云管理平台根据所述第二应用程序的资源指标数据对所述第二应用程序进行异常分析。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述云管理平台以UI的方式展示所述第二应用程序的资源指标数据。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述云管理平台获取第一应用程序的资源指标数据,包括:
所述云管理平台通过远程过程调用RPC的方式获取所述第一应用程序的资源指标数据。
8.根据权利要求3至7中任一项所述的方法,其特征在于,所述第一服务端以树型的数据结构组织多个所述打点探针。
9.一种数据处理的装置,其特征在于,所述装置应用于云管理平台,所述装置包括:
第一获取模块,用于获取第一应用程序的资源指标数据,所述第一应用程序中包括多个业务功能模块,每个所述业务功能模块中包括打点探针,每个所述打点探针用于获取与所述打点探针所在的业务功能模块的数据指标,所述第一应用程序的资源指标数据是根据所述第一应用程序中的多个业务功能模块对应的数据指标确定的;
分析模块,用于根据所述第一应用程序的资源指标数据对所述第一应用程序进行异常分析。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
展示模块,用于以用户界面UI的方式展示所述第一应用程序的资源指标数据。
11.根据权利要求9或10所述的装置,其特征在于,所述第一应用程序中还包括第一服务端,所述第一获取模块具体用于:
第一客户端从所述第一服务端获取所述第一应用程序的资源指标数据。
12.根据权利要求11所述的装置,其特征在于,所述第一客户端部署在第一节点上,所述第一服务端部署在第二节点上,所述第一获取模块具体用于:
所述第一节点上的第一客户端通过网络从所述第二节点上的第一服务端获取所述第一应用程序的资源指标数据。
13.根据权利要求9至12中任一项所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于第二客户端从所述第二服务端获取所述第二应用程序的资源指标数据,所述第二应用程序中包括所述第二服务端和多个业务功能模块,每个所述业务功能模块中包括打点探针,每个所述打点探针用于获取与所述打点探针所在的业务功能模块的数据指标,所述第二应用程序的资源指标数据是根据所述第二应用程序中的多个业务功能模块对应的数据指标确定的;
所述分析模块,还用于根据所述第二应用程序的资源指标数据对所述第二应用程序进行异常分析。
14.根据权利要求13所述的装置,其特征在于,所述展示模块还用于:
以UI的方式展示所述第二应用程序的资源指标数据。
15.根据权利要求9至14中任一项所述的装置,其特征在于,所述第一获取模块具体用于:
通过远程过程调用RPC的方式获取所述第一应用程序的资源指标数据。
16.根据权利要求11至15中任一项所述的装置,其特征在于,所述第一服务端以树型的数据结构组织多个所述打点探针。
17.一种计算设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备执行如权利要求1至8中任一项所述的方法。
18.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至8中任一项所述的方法。
19.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备运行时,使得所述计算设备执行如权利要求的1至8中任一项所述的方法。
20.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至8中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,所述计算设备执行如权利要求1至8中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211482136.1A CN118113498A (zh) | 2022-11-24 | 2022-11-24 | 数据处理的方法、装置以及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211482136.1A CN118113498A (zh) | 2022-11-24 | 2022-11-24 | 数据处理的方法、装置以及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113498A true CN118113498A (zh) | 2024-05-31 |
Family
ID=91207335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211482136.1A Pending CN118113498A (zh) | 2022-11-24 | 2022-11-24 | 数据处理的方法、装置以及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113498A (zh) |
-
2022
- 2022-11-24 CN CN202211482136.1A patent/CN118113498A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9949681B2 (en) | Burnout symptoms detection and prediction | |
US9811443B2 (en) | Dynamic trace level control | |
US9781020B2 (en) | Deploying applications in a networked computing environment | |
CN112956157B (zh) | 追踪客户端设备事件的***和方法 | |
CN110955578A (zh) | 基于宿主机的日志收集方法、装置、计算机设备及存储介质 | |
US20170010774A1 (en) | Usability analysis for user interface based systems | |
US9438551B1 (en) | Preventing a user from missing unread documents | |
US11379290B2 (en) | Prioritizing and parallelizing the capture of data for debugging computer programs | |
US10929491B2 (en) | Social sharing path user interface insights | |
US10176017B2 (en) | Configuration management for a shared pool of configurable computing resources | |
WO2019035809A1 (en) | INTERACTIVE MONITORING OF MODEL PERFORMANCE | |
US11210156B1 (en) | Intelligent distributed tracing | |
US11012462B2 (en) | Security management for data systems | |
US20220164703A1 (en) | Model acceptance determination support system and model acceptance determination support method | |
US20170344454A1 (en) | Determining dynamic statistics based on key value patterns | |
US9912545B2 (en) | High performance topology resolution for non-instrumented nodes | |
CN118113498A (zh) | 数据处理的方法、装置以及计算设备 | |
US11200138B1 (en) | Policy-based request tracing using a computer | |
US11307940B2 (en) | Cognitive data backup | |
US10277521B2 (en) | Authorizing an action request in a networked computing environment | |
US10303579B2 (en) | Debug session analysis for related work item discovery | |
CN115237873A (zh) | 一种日志存储方法、装置、设备及存储介质 | |
CN105630645B (zh) | 虚拟机性能确定方法及装置 | |
CN114841279A (zh) | 下沉式立井掘进机控制过程中的数据采集方法及*** | |
EP2942907A1 (en) | Service level management in a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |