CN108415776A - 一种分布式数据处理系统中的内存预估与配置优化的方法 - Google Patents
一种分布式数据处理系统中的内存预估与配置优化的方法 Download PDFInfo
- Publication number
- CN108415776A CN108415776A CN201810184254.1A CN201810184254A CN108415776A CN 108415776 A CN108415776 A CN 108415776A CN 201810184254 A CN201810184254 A CN 201810184254A CN 108415776 A CN108415776 A CN 108415776A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- program
- optimization
- estimates
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
- G06F8/452—Loops
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44557—Code layout in executable memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种分布式数据处理系统中的内存预估与配置优化的方法,至少包括:将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征库进行匹配,并基于匹配成功的结果预估至少一个阶段的内存上限,基于所述内存上限对应用程序进行配置参数优化,基于优化后应用程序的运行过程采集程序数据的静态特征和/或动态特征并进行持久化记录。本发明与机器学习进行内存预估的黑盒模型不同,机器学习预测的结果准确性不一定高,而且难以做到每个阶段的细粒度预测。而本发明利用程序分析和已有的数据特征较精确地预测到整体的内存占用,可以根据程序分析预估出job的每个阶段内存使用情况,做出更进一步的细粒度配置优化。
Description
技术领域
本发明涉及分布式数据处理系统技术领域,尤其涉及一种分布式数据处理系统中的内存预估与配置优化的方法和系统。
背景技术
随着因特网和移动互联网的发展,海量数据促使着分布式数据处理系统在大数据处理上的应用越来越广泛,发展也非常迅速。具有代表性的分布式处理系统Hadoop采用MapReduce算法,可以支持单台机器所不能完成的海量数据分析和处理。但Hadoop因为要频繁的读写磁盘所以引来IO性能上的瓶颈。鉴于这些欠缺,新一代基于内存计算的分布式数据处理系统例如Spark,Flink开始出现并快速发展。Spark以RDD为基本数据单位,将SQL,Streaming,MapReduce等模型划归到一个平台下成为一个完整的系统架构。Spark等分布式系统将大量重要的中间数据缓存在内存来加速迭代计算应用。因此处理数据时需要大量的内存空间。
现有的云平台上可能有多个分布式任务在进行处理,而内存资源是共有的,所以内存的合理分配显得尤为重要。这里以Spark为例,当给一个Spark应用任务分配过少的内存会导致Shuffle或者cache中的数据spill到磁盘,导致大量的IO操作,失去了内存计算的优势,最终导致任务性能的整体下降,甚至会内存溢出。若分配过多的内存,则会导致内存资源的冗余和浪费。
目前内存预估是采用黑盒模型,采用机器学习的方式。首先总数据集随机划分成多个小数据集,然后由分布式应用进行处理,对运行时的特征和内存使用进行统计。然后对训练集进行建模,最后通过正式数据集的特征来预测内存的使用。同时这种黑盒模型也可以通过应用和数据的特征来对任务的运行时间进行预测。
然而,上述方法存在一定的缺陷和局限性:一方面是机器学习只能针对某种特定类型的应用,某个应用训练出来的模型对其他应用起效甚微,所以针对不同应用经常要建立多个模型,具有一定的局限性。另一方面,由于是机器学习的黑盒模型,所以预测的结果具有一定不确定性,与真实的运行内存可能具有一定差异。而且分布式应用大多包含多个阶段,比如各阶段的内存变化很难动态预估到。
中国专利(CN 106598644 A)公开了一种终端设备的内存优化方法,其特征在于,其包括:当终端设备接收到安装应用的请求时,获取所述应用的包名及版本号;根据所述应用的包名及版本号从预先配置的服务端获取所述应用需占用的第一内存数据,并将第一内存数据与系统为所述应用设置的内存x值进行比较;当所述第一内存数据大于内存阈值时,提示用户所述应用占用内存过大,并根据用户的操作指令确定是否继续安装所述应用。该专利通过对待安装应用的内存数据进行判断,当安装应用占用内存过大的应用时,会给予用户提示,让用户决定是否继续安装该应用。但是,该专利不能够利用程序分析来预估应用需要的最佳内存,也无法动态预估应用各阶段的内存变化。
发明内容
针对现有技术之不足,本发明提供一种分布式数据处理系统中的内存预估与配置优化的方法,其特征在于,所述方法至少包括:将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征库进行匹配,基于匹配成功的结果预估至少一个阶段的内存上限并对应用程序进行配置参数优化,基于优化后应用程序的运行过程采集程序数据的静态特征和/或动态特征并进行持久化记录。
根据一个优选实施方式,所述方法还包括:基于所述程序数据的静态特征和/或动态特征的反馈结果再次预估至少一个阶段的内存上限并对应用程序进行配置参数优化。
本发明能够解决现有的内存预估针对特定应用局限性的缺陷问题:由于本发明采用了数据特征采集策略,基于Spark算子的数量较少,数据在内存中经过各个算子的处理操作形成数据变化流,每一次变化都可以看成数据的动态特征。这些动态特征可以被下一次新提交的应用程序共享,即可以在新应用中数据的变化变得可以预测。而且,同一份数据上提交的历史应用越多,数据的动态特征就会被获取得越多,越能适应新的分布式应用程序。所以通用性较强且会越来越强。
根据一个优选实施方式,所述程序代码的条件分支和/或循环体进行分析及处理的方法包括:
在判断程序代码是否存在条件分支的基础上进行循环体分析,
基于所述循环体的内存稳定性确定是否预估至少一个阶段的内存上限。
根据一个优选实施方式,所述程序数据流与所述数据特征库的匹配方法至少包括:判断所述程序数据流与所述数据特征库的动态特征和/或静态特征是否完全匹配,在完全匹配失败的情况下放弃内存预估并将所述应用jar包提交运行,在完全匹配成功的情况下,预估至少一个阶段的内存上限,并且进行配置优化,将优化后的应用jar包提交运行。
本发明与机器学习进行内存预估的黑盒模型不同,机器学习预测的结果准确性不一定高,而且难以做到每个阶段的细粒度预测。而本发明通过对条件分支和循环体的分析和已有的数据特征较精确地预测到整体的内存占用,且可以根据程序分析预估出job的每个阶段内存使用情况,可以做出更进一步的细粒度配置优化。
根据一个优选实施方式,所述程序数据的静态特征和/或动态特征的采集方式包括:以改写运行中的应用job的Task的流程的方式采集所述程序数据的静态特征和/或动态特征,统计汇总所述数据的静态特征和/或动态特征并持久化至所述数据特征库中以更新所述数据特征库。本发明利用捕捉数据静态和动态特征,结合程序分析来在一定范围内精确预测出分布式应用各阶段的内存上限,能够做出更进一步的细粒度配置参数优化,获得比现有技术更好的技术效果。
根据一个优选实施方式,所述方法还包括:基于所述循环体的代码分析和数据特征库内的数据特征判断所述循环体的内存变化,在内存稳定不变或下降的情况下,将去除循环条件的循环体代码与非循环体代码对接,在内存上升的情况下,放弃内存预估并将所述应用jar包提交运行。
根据一个优选实施方式,所述方法还包括:在程序代码中的所述条件分支不存在的情况下,对所述应用jar包的程序代码进行循环体分析及处理,和/或在程序代码中的所述条件分支和/或循环体均不存在的情况下,将所述应用jar包的程序数据流与数据特征库中的数据特征进行匹配。
根据一个优选实施方式,所述方法还包括:在程序代码中的所述条件分支存在的情况下,自动填充所述条件分支的条件并枚举出所有的条件分支,对所述条件分支进行循环体代码分析。
根据一个优选实施方式,所述静态特征包括数据的列数、行数、数据类型和/或数据所占用的内存大小,所述动态特征是由用户自定义方法(UDF)的算子处理的具有数据特征变化的数据和/或数据流。
根据一个优选实施方式,所述方法还包括:在持久化的所述静态特征和/或动态特征已存在所述数据特征库且应用程序未运行结束的情况下,循环采集并持久化程序数据的动态特征,直至应用程序运行结束。
本发明相比于以往的方式更加自动化,所有的处理流程全部集合到Spark框架本身,包括内存预估和数据特征采集模块。不需要像以往机器学习的方式需要人为去训练数据和预测数据,针对不同分布式应用需要重复的处理和预估。
本发明还提供一种分布式数据处理系统中的内存预估与配置优化系统,其特征在于,所述系统至少包括数据特征采集模块、内存预估模块和配置优化模块,所述内存预估模块将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征记录模块存储的数据特征库进行匹配,并且基于匹配成功的结果预估至少一个阶段的内存上限,所述配置优化模块对应用程序进行配置参数优化,所述数据特征采集模块基于优化后应用程序的运行过程采集程序数据的静态特征和/或动态特征并进行持久化记录。
根据一个优选实施方式,所述内存预估模块基于所述数据特征采集模块对程序数据的静态特征和/或动态特征的反馈结果再次预估至少一个阶段的内存上限。
本发明的系统利用程序分析来进行预估大数据应用所需要的最佳内存,程序分析是静态的,对时间的开销更加微小,不会对整体运行性能造成影响。而且,本发明的硬件优先选用专用集成芯片,能够组合成功能强大且系统体积较小的装置,缩小系统的占用空间。
根据一个优选实施方式,所述内存预估模块在判断程序代码是否存在条件分支的基础上进行循环体分析,基于所述循环体的内存稳定性确定是否预估至少一个阶段的内存上限。
根据一个优选实施方式,所述内存预估模块的内存预估方法包括:判断所述程序数据流与所述数据特征库的动态特征和/或静态特征是否完全匹配,在完全匹配失败的情况下放弃内存预估并将所述应用jar包提交运行,在完全匹配成功的情况下,预估至少一个阶段的内存上限,并且进行配置优化,将优化后的应用jar包提交运行。
根据一个优选实施方式,所述数据特征采集模块以改写运行中的应用job的Task的流程的方式采集所述程序数据的静态特征和/或动态特征,统计汇总所述数据的静态特征和/或动态特征并持久化至所述数据特征记录模块的数据特征库中以更新所述数据特征库。
本发明的系统采用数据特征采集策略,将采集的数据特征进行永久化记录并供新的应用程序分享。本发明的数据特征记录模块持续更新,从而使得数据特征不断丰富。数据特征获取得越多,本发明的系统越能适应新的分布式应用程序,通用性较强会越来越强。
根据一个优选实施方式,所述内存预估模块对循环体的内存进行分析的方法包括:基于所述循环体的代码分析和数据特征库内的数据特征判断所述循环体的内存变化,在内存稳定不变或下降的情况下,将去除循环条件的循环体代码与非循环体代码对接,在内存上升的情况下,放弃内存预估并将所述应用jar包提交运行。
根据一个优选实施方式,在程序代码中的所述条件分支不存在的情况下,所述内存预估模块对所述应用jar包的程序代码进行循环体分析及处理,和/或在程序代码中的所述条件分支和/或循环体均不存在的情况下,所述内存预估模块将所述应用jar包的程序数据流与数据特征库中的数据特征直接进行匹配。
根据一个优选实施方式,在程序代码中的所述条件分支存在的情况下,所述内存预估模块自动填充所述条件分支的条件并枚举出所有的条件分支,对所述条件分支进行循环体代码分析。
根据一个优选实施方式,所述静态特征包括数据的列数、行数、数据类型和/或数据所占用的内存大小,所述动态特征是由用户自定义方法(UDF)的算子处理的具有数据特征变化的数据和/或数据流。
根据一个优选实施方式,在持久化的所述静态特征和/或动态特征已存在所述数据特征记录模块的数据特征库且应用程序未运行结束的情况下,所述数据特征采集模块循环采集并持久化程序数据的动态特征,直至应用程序运行结束。
本发明的数据特征采集模块通过持续采集动态特征来更新和丰富数据特征库,从而使得内存预估模块能够持续更新每个阶段的内存使用情况,精确地对应用程序进行配置参数优化的更新。因此,本发明运行越久,越能对应用程序的配置参数优化准确,优化精度越高。
附图说明
图1是本发明的方法的流程示意图;和
图2是本发明的系统的逻辑结构示意图。
具体实施方式
下面结合附图进行详细说明。
为了便于理解,在可能的情况下,使用相同附图标记来表示各附图中共同的相似元件。
如在整篇本申请中所使用的那样,词语“可以”系容许含义(即,意味着有可能的)而不是强制性含义(即,意味着必须的)。类似地,词语“包括”意味着包括但不限于。
短语“至少一个”、“一个或多个”以及“和/或”系开放式表达,它们涵盖操作中的关联与分离两者。例如,表述“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或更多个”、“A、B或C”和“A、B和/或C”中的每个分别指单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起。
术语“一种”或“一个”实体指的是该实体中的一个或多个。这样,术语“一”(或“一”)、“一个或多个”以及“至少一个”在本文中可以交换地使用。还应该注意,术语“包括”、“包含”和“具有”可以交换地使用。
如本文中所使用的那样,术语“自动的”及其变型是指当执行过程或操作时在没有实质性人工输入的情况下完成的任何过程或操作。然而,如果在执行该过程或操作之前接收到该输入,则该过程或操作可以是自动的,即使该过程或操作的执行使用了实质性或非实质性的人工输入。如果这样的输入影响该过程或操作的执行方式,则该人工输入被认为是实质性的。准予执行该过程或操作的人工输入不被视为“实质性的”。
实施例1
本实施例提供一种分布式数据处理系统中的内存预估与配置优化的方法。一种分布式数据处理系统中的内存预估与配置优化的方法至少包括:
S1:将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征库进行匹配并基于匹配成功的结果预估至少一个阶段的内存上限,
S2:对应用程序进行配置参数优化,
S3:采集优化后应用程序的运行过程中程序数据的静态特征和/或动态特征并进行持久化记录。
根据一个优选实施方式,所述方法还包括:
S4:基于所述程序数据的静态特征和/或动态特征的反馈结果再次预估至少一个阶段的内存上限并对应用程序进行配置参数优化。
本发明能够解决现有的内存预估针对特定应用局限性的缺陷问题:由于本发明采用了数据特征采集策略,基于Spark算子的数量较少,数据在内存中经过各个算子的处理操作形成数据变化流,每一次变化都可以看成数据的动态特征。这些动态特征可以被下一次新提交的应用程序共享,即可以在新应用中数据的变化变得可以预测。而且,同一份数据上提交的历史应用越多,数据的动态特征就会被获取得越多,越能适应新的分布式应用程序。所以通用性较强且会越来越强。
优选的,所述程序代码的条件分支和/或循环体进行分析及处理的方法包括:在判断程序代码是否存在条件分支的基础上进行循环体分析。基于所述循环体的内存稳定性确定是否预估至少一个阶段的内存上限。
本发明中的数据特征包括数据本身的列数、行数、数据类型和占用内存大小,还包括转化流数据。根据数据的性质不同,分为静态特征和动态特征。静态特征包括数据的列数、行数、数据类型和/或数据所占用的内存大小。动态特征是由用户自定义方法(UDF)的算子处理的具有数据特征变化的数据和/或数据流。
以图1为例对步骤S1进行详细说明。
S11:截获提交到系统中的应用jar包,对程序代码进行预处理代码分析。优选的,本发明主要分析应用程序中的大致结构和控制流程。
S12:判断程序代码中是否有条件分支。
S13:在程序代码中的条件分支存在的情况下,自动填充所述条件分支的条件并枚举出所有的条件分支,对所述条件分支进行后续的循环体代码分析。
S14:在程序代码中的条件分支不存在的情况下,对应用jar包的程序代码进行循环体分析及处理。
优选的,S141:需要分析循环体代码是否存在,然后分别进行处理。
S15:在循环体代码存在的情况下,基于所述循环体的代码分析和数据特征库内的数据特征判断循环体的内存变化。优选的,S151:判断内存是否稳定不变。
S16:在内存上升的情况下,放弃内存预估并将所述应用jar包提交运行。由于迭代计算的任务中一次迭代代表一个job,运行时job动态生成,静态分析只能预估出第一个job使用的内存,因此在无法计算出循环次数的情况下,内存呈现膨胀趋势,无法预估后续job的内存使用,需要放弃内存预估。直接提交应用jar包运行。
S17:在内存稳定不变或下降的情况下,将去除循环条件的循环体代码与非循环体代码对接。具体地,将循环体中的代码提取出来,去除循环条件,与循环外的程序流程对接,形成新的程序数据流。
S18:将经过程序分析的程序数据流与数据特征库中的数据特征进行匹配。优选的,判断程序数据流与数据特征库的动态特征和/或静态特征是否完全匹配。
优选的,在程序分析过程中,若程序代码中的条件分支和/或循环体均不存在,则将应用jar包的程序数据流与数据特征库中的数据特征直接进行匹配。在程序数据流与数据特征库中的数据特征完全匹配失败的情况下,放弃内存预估并将所述应用jar包提交运行。
S19:在程序数据流与数据特征库中的数据特征完全匹配成功的情况下,预估至少一个阶段的内存上限。具体地,根据匹配的结果获得至少一个阶段数据在内存中的基本特征。优选的,根据匹配的结果获得每个阶段数据在内存中的基本特征。基于应用程序中的封装情况,按照JVM标准来计算出原始数据在每个阶段的内存使用量。在Spark中,内存使用量指每个阶段的使用内存上限。至此,本发明通过程序分析对应用程序的至少一个阶段的内存进行了精确预估。
本发明与机器学习进行内存预估的黑盒模型不同,机器学习预测的结果准确性不一定高,而且难以做到每个阶段的细粒度预测。而本发明通过对条件分支和循环体的分析和已有的数据特征较精确地预测到整体的内存占用,且可以根据程序分析预估出job的每个阶段内存使用情况,可以做出更进一步的细粒度配置优化。
本发明对步骤S2进行详细说明。
优选的,在对应用程序的至少一个阶段的内存进行了精确预估后,对应用程序进行配置参数优化。将优化后的应用jar包提交运行。具体地,根据每个阶段的内存使用情况,在job运行之前配置worker节点的总executor memory,为每个stage的内存使用情况配置合适的Partition数量。在配置参数优化后,将优化后的应用程序正式提交运行。
以图1为例对步骤S3进行详细说明。
S31:以改写运行中的应用job的Task的流程的方式采集所述程序数据的静态特征和/或动态特征。本发明不限定静态特征和动态特征的采集顺序。即可以先采集静态特征,也可以先采集动态特征。或者,静态特征和动态特征同时采集。
S311:在分布式应用job提交运行时,改写Task的流程。在应用job运行过程中获取数据的静态特征,例如数据的列数,行数和key的个数等。
S312:通过改写Task的流程,统计数据的动态特征。动态特征指的是数据经过带有用户自定义方法(UDF)的算子处理的前后特征变化,可以视为数据流。
S32:统计汇总所述数据的静态特征和/或动态特征并持久化至所述数据特征库中以更新数据特征库。
S321:将获取的数据的静态特征和动态特征返回至master统计汇总,然后持久化到数据特征库。优选的,数据特征库用于存储和记录数据特征。
S322:在数据特征持久化的过程中,判断静态特征和/或动态特征是否已存在数据特征库中。
S323:在持久化的所述静态特征和/或动态特征已存在所述数据特征库且应用程序未运行结束的情况下,忽略已有的数据特征,循环采集并持久化程序数据的动态特征,直至应用程序运行结束。
S324:在持久化的所述静态特征和/或动态特征不存在所述数据特征库的情况下,将新动态特征增加至数据特征库中,从而更新数据特征库。
S325:同时,判断应用程序是否运行结束。在应用程序未运行结束的情况下,循环采集并持久化程序数据的动态特征,直至应用程序运行结束。本发明中,新动态特征指不存在数据特征库的动态特征。
S326:在应用程序运行结束的情况下,数据特征采集模块采集结束。
本发明利用捕捉数据静态和动态特征,结合程序分析来在一定范围内精确预测出分布式应用各阶段的内存上限,能够做出更进一步的细粒度配置参数优化,获得比现有技术更好的技术效果。
例如,在Spark系统平台上,大数据应用程序对数据的处理包括操作算子和用户的UDF。UDF为用户自定义方法。UDF可以抽象成表达式以方便存储。操作算子数量很少,且方便理解它的语义,UDF情况较多。但是大数据应用程序的代码构成分为dataPath和controlPath。其中dataPath是纯粹对数据的处理操作,较为简单,而这部分数据会成为内存中的常驻对象。controlPath中的临时对象很快就会被回收掉,只会占据少量的内存。本专利用于预估这部分常驻对象的内存。因为常驻对象的内存基本等于应用程序在大数据处理平台上的最佳内存。在应用作业A提交到Spark上时,会分析其dataPath(静态特征)。然后将dataPath跟与应用作业A共享同样数据的历史应用B的dataPath的特征来进行匹配。若特征可以匹配上,则常驻对象的内存就可以预估出来。新提交的应用作业A也会在平台上用最少的内存获取最佳的性能。
例如Spark的benchmark应用和PageRank求最小子通图的应用,两个应用共享同一份数据的情况下,通过运行其中一个应用,另一个应用的最佳内存通过本发明就可以预估出来。因为两者dataPath很相似,常驻对象的所占用的内存大小都相似,包括Shuffle缓存和cache缓存。
实施例2
本实施例是对实施例1的进一步改进,重复的内容不再赘述。
本发明还提供一种分布式数据处理系统中的内存预估与配置优化系统,如图2所示。
本发明的内存预估与配置优化系统至少包括内存预估模块10、配置优化模块20和数据特征采集模块30。
所述内存预估模块10将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征记录模块存储的数据特征库进行匹配,并且基于匹配成功的结果预估至少一个阶段的内存上限。优选的,内存预估模块10包括用于对程序中的条件分支及其循环体代码进行分析的专用集成芯片、CPU、微处理器、服务器和云服务器中的一种或几种。优选的,内存预估模块10为专用集成芯片,有利于内存预估与配置优化系统缩小体积并且提高对程序代码的分析效率。内存预估模块10将预估的内存信息发送至配置优化模块20。
所述配置优化模块20对应用程序进行配置参数优化。具体地,配置优化模块20根据内存预估模块10发送的内存预估信息对应用程序的配置参数进行修改,使应用程序能够更好地高效率运行。配置优化模块20至少包括用于配置参数优化的专用集成芯片、CPU、微处理器、单片机、服务器和云服务器中的一种或几种。优选的,配置优化模块20为专用集成芯片或微处理器,对应用程序的配置参数优化,使得应用程序的运行效果更好。
内存预估模块10和配置优化模块20对应养成的应用jar包进行应用预处理后,将优化后的应用程序提交运行。
数据特征采集模块30基于优化后应用程序的运行过程采集程序数据的静态特征和/或动态特征并进行持久化记录。优选的,数据特征采集模块30至少包括用于采集数据特征的专用集成芯片、CPU、微处理器、单片机、服务器和云服务器中的一种或几种。优选的,数据特征采集模块30为微处理器或专用集成芯片,有利于数据的快速分析和数据特征采集。而且,微处理器或专用集成芯片有利于减少系统的占用空间和体积,便于使用者移动。
根据一个优选实施方式,所述内存预估模块基于所述数据特征采集模块对程序数据的静态特征和/或动态特征的反馈结果再次预估至少一个阶段的内存上限。即数据特征采集模块30在采集数据特征后,将数据特征反馈至内存预估模块10。内存预估模块10基于数据特征再次进行内存预估,从而继续优化应用程序的配置参数,直至应用程序运行结束。优选的,数据特征采集模块30将采集的数据特征,尤其是动态特征持久化至数据特征记录模块40,将新的动态特征保存在数据特征记录模块40的数据特征库中。内存预估模块10也可以从数据特征记录模块40读取数据特征,基于相同的数据特征来进行应用程序每个阶段的内存预估。
优选的,数据特征记录模块40包括存储器、服务器、云服务器中的一种或几种。存储器包括永久记忆性存储器和非永久记忆性存储器。
本发明的系统利用程序分析来进行预估大数据应用所需要的最佳内存,程序分析是静态的,对时间的开销更加微小,不会对整体运行性能造成影响。而且,本发明的硬件优先选用专用集成芯片,能够组合成功能强大且系统体积较小的装置,缩小系统的占用空间。
优选的,所述内存预估模块10在判断程序代码是否存在条件分支的基础上进行循环体分析,基于所述循环体的内存稳定性确定是否预估至少一个阶段的内存上限。
优选的,所述内存预估模块的内存预估方法包括:判断所述程序数据流与所述数据特征库的动态特征和/或静态特征是否完全匹配。在完全匹配失败的情况下放弃内存预估并将所述应用jar包提交运行。在完全匹配成功的情况下,预估至少一个阶段的内存上限至配置优化模块20。配置优化模块20对应用程序的配置参数进行配置优化,将优化后的应用jar包提交运行。
数据特征采集模块30以改写运行中的应用job的Task的流程的方式采集所述程序数据的静态特征和/或动态特征,统计汇总所述数据的静态特征和/或动态特征并持久化至所述数据特征记录模块的数据特征库中以更新所述数据特征库。
优选的,所述数据特征采集模块30至少包括静态特征采集模块31和动态特征采集模块32。静态特征采集模块31用于采集数据的静态特征。动态特征采集模块31用于采集数据的动态特征。
静态特征采集模块31在应用job提交运行时,改写Task的流程,在其运行过程中获取数据的静态特征,比如数据的列数,行数和key的个数等。
动态特征采集模块32改写Task的流程,在应用程序运行过程中统计数据的动态特征。动态特征指的是数据经过带有用户自定义方法(UDF)的算子处理的前后特征变化。动态特征可以看作一个数据流。静态特征采集模块31和动态特征采集模块32可以是并联设置,也可以是串联设置。静态特征采集模块31和动态特征采集模块32分别将静态特征和动态特征发送至数据特征记录模块40进行永久化存储。
优选的,数据特征采集模块30还包括汇总模块33。汇总模块33可以用于对静态特征采集模块31和动态特征采集模块32发送的静态特征和动态特征汇总整理后发送至数据特征记录模块40。
优选的,静态特征采集模块31和动态特征采集模块32可以是用于采集数据特征的专用集成芯片、CPU、微处理器、单片机、服务器和云服务器中的一种或几种。汇总模块33可以是用于数据特征整理,去除相同数据特征的专用集成芯片、CPU、微处理器、单片机、服务器和云服务器中的一种或几种。
本发明的系统采用数据特征采集策略,将采集的数据特征进行永久化记录并供新的应用程序分享。本发明的数据特征记录模块持续更新,从而使得数据特征不断丰富。数据特征获取得越多,本发明的系统越能适应新的分布式应用程序,通用性较强会越来越强。
优选的,所述内存预估模块10对循环体的内存进行分析的方法还包括:基于所述循环体的代码分析和数据特征库内的数据特征判断所述循环体的内存变化,在内存稳定不变或下降的情况下,将去除循环条件的循环体代码与非循环体代码对接,在内存上升的情况下,放弃内存预估并将所述应用jar包提交运行。本发明的系统根据内存的稳定性来确定是否进行内存的评估,最大程度地提高了评估的效率,减少了无效的内存预估工作。
优选的,在程序代码中的所述条件分支不存在的情况下,所述内存预估模块10对所述应用jar包的程序代码进行循环体分析及处理,和/或在程序代码中的所述条件分支和/或循环体均不存在的情况下,所述内存预估模块10将所述应用jar包的程序数据流与数据特征库中的数据特征直接进行匹配。
优选的,在程序代码中的所述条件分支存在的情况下,所述内存预估模块10自动填充所述条件分支的条件并枚举出所有的条件分支,对所述条件分支进行循环体代码分析。在对循环体进行代码分析之前进行条件分支的填充,有利于避免循环体代码的遗漏,保证后续循环体的精确分析。
优选的,所述静态特征包括数据的列数、行数、数据类型和/或数据所占用的内存大小,所述动态特征是由用户自定义方法(UDF)的算子处理的具有数据特征变化的数据和/或数据流。
优选的,在持久化的所述静态特征和/或动态特征已存在所述数据特征记录模块的数据特征库且应用程序未运行结束的情况下,所述数据特征采集模块30循环采集并持久化程序数据的动态特征,直至应用程序运行结束。
本发明的数据特征采集模块通过持续采集动态特征来更新和丰富数据特征库,从而使得内存预估模块能够持续更新每个阶段的内存使用情况,精确地对应用程序进行配置参数优化的更新。因此,本发明运行越久,越能对应用程序的配置参数优化准确,优化精度越高。
虽然已经详细描述了本发明,但是在本发明的精神和范围内的修改对于本领域技术人员将是显而易见的。这样的修改也被认为是本公开的一部分。鉴于前面的讨论、本领域的相关知识以及上面结合背景讨论的参考或信息(均通过引用并入本文),进一步的描述被认为是不必要的。此外,应该理解,本发明的各个方面和各个实施例的各部分均可以整体或部分地组合或互换。而且,本领域的普通技术人员将会理解,前面的描述仅仅是作为示例,并不意图限制本发明。
已经出于示例和描述的目的给出了本公开的前述讨论。这并不意图将本公开限制于本文公开的形式。在前述的具体实施方式中,例如,为了简化本公开的目的,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。实施例、配置或方面的特征可以以除上面讨论的那些之外的替代实施例、配置或方面组合。本公开的该方法不应被解释为反映本公开需要比每个权利要求中明确记载的更多特征的意图。相反,如以下权利要求所反映的,创造性方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,以下权利要求由此被并入本具体实施方式中,其中每个权利要求其自身作为本公开的单独实施例。
而且,虽然本公开的描述已经包括对一个或多个实施例、配置或方面以及某些变型和修改的描述,但是其他变型、组合和修改也在本公开的范围内,例如在本领域技术人员的技能和知识范围内,在理解了本公开之后。旨在获得在允许的程度上包括替代实施例、配置或方面的权利,所述权利包括那些要求保护的替代的、可互换的和/或等效的结构、功能、范围或步骤的权利,无论这种替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中公开,并且无意公开奉献任何可专利的主题。
Claims (10)
1.一种分布式数据处理系统中的内存预估与配置优化的方法,其特征在于,所述方法至少包括:
将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征库进行匹配,并且基于匹配成功的结果预估至少一个阶段的内存上限,
基于所述内存上限对应用程序进行配置参数优化,
基于优化后应用程序的运行过程采集程序数据的静态特征和/或动态特征并进行持久化记录。
2.如权利要求1所述的内存预估与配置优化的方法,其特征在于,所述方法还包括:
基于所述程序数据的静态特征和/或动态特征的反馈结果再次预估至少一个阶段的内存上限并对应用程序进行配置参数优化。
3.如权利要求1或2所述的内存预估与配置优化的方法,其特征在于,所述程序代码的条件分支和/或循环体进行分析及处理的方法包括:
在判断程序代码是否存在条件分支的基础上进行循环体分析,
基于所述循环体的内存稳定性确定是否预估至少一个阶段的内存上限。
4.如权利要求3所述的内存预估与配置优化的方法,其特征在于,所述程序数据流与所述数据特征库的匹配方法至少包括:
判断所述程序数据流与所述数据特征库的动态特征和/或静态特征是否完全匹配,
在完全匹配失败的情况下放弃内存预估并将所述应用jar包提交运行,
在完全匹配成功的情况下,预估至少一个阶段的内存上限,并且进行配置优化,将优化后的应用jar包提交运行。
5.如权利要求3所述的内存预估与配置优化的方法,其特征在于,所述程序数据的静态特征和/或动态特征的采集方式包括:
以改写运行中的应用job的Task的流程的方式采集所述程序数据的静态特征和/或动态特征,
统计汇总所述数据的静态特征和/或动态特征并持久化至所述数据特征库中以更新所述数据特征库。
6.如前述权利要求之一所述的内存预估与配置优化的方法,其特征在于,所述方法还包括:
基于所述循环体的代码分析和数据特征库内的数据特征判断所述循环体的内存变化,
在内存稳定不变或下降的情况下,将去除循环条件的循环体代码与非循环体代码对接,
在内存上升的情况下,放弃内存预估并将所述应用jar包提交运行。
7.如前述权利要求之一所述的内存预估与配置优化的方法,其特征在于,所述方法还包括:
在程序代码中的所述条件分支不存在的情况下,对所述应用jar包的程序代码进行循环体分析及处理,和/或
在程序代码中的所述条件分支和/或循环体均不存在的情况下,将所述应用jar包的程序数据流与数据特征库中的数据特征直接进行匹配。
8.如权利要求7所述的内存预估与配置优化的方法,其特征在于,所述方法还包括:
在程序代码中的所述条件分支存在的情况下,自动填充所述条件分支的条件并枚举出所有的条件分支,对所述条件分支进行循环体代码分析。
9.一种分布式数据处理系统中的内存预估与配置优化系统,其特征在于,所述系统至少包括数据特征采集模块、内存预估模块和配置优化模块,
所述内存预估模块将经过针对应用jar包中程序代码的条件分支和/或循环体分析及处理的数据程序流与数据特征记录模块存储的数据特征库进行匹配,并且基于匹配成功的结果预估至少一个阶段的内存上限,
所述配置优化模块对应用程序进行配置参数优化,
所述数据特征采集模块基于优化后应用程序的运行过程采集程序数据的静态特征和/或动态特征并进行持久化记录。
10.如权利要求9所述的内存预估与配置优化的方法,其特征在于,
所述内存预估模块基于所述数据特征采集模块对程序数据的静态特征和/或动态特征的反馈结果再次预估至少一个阶段的内存上限。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184254.1A CN108415776B (zh) | 2018-03-06 | 2018-03-06 | 一种分布式数据处理系统中的内存预估与配置优化的方法 |
US16/216,155 US10725754B2 (en) | 2018-03-06 | 2018-12-11 | Method of memory estimation and configuration optimization for distributed data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184254.1A CN108415776B (zh) | 2018-03-06 | 2018-03-06 | 一种分布式数据处理系统中的内存预估与配置优化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108415776A true CN108415776A (zh) | 2018-08-17 |
CN108415776B CN108415776B (zh) | 2020-10-09 |
Family
ID=63130002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810184254.1A Active CN108415776B (zh) | 2018-03-06 | 2018-03-06 | 一种分布式数据处理系统中的内存预估与配置优化的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10725754B2 (zh) |
CN (1) | CN108415776B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032449A (zh) * | 2019-04-16 | 2019-07-19 | 苏州浪潮智能科技有限公司 | 一种优化gpu服务器的性能的方法及装置 |
CN110363303A (zh) * | 2019-06-14 | 2019-10-22 | 平安科技(深圳)有限公司 | 智能分配模型训练内存方法、装置及计算机可读存储介质 |
CN110928666A (zh) * | 2019-12-09 | 2020-03-27 | 湖南大学 | 一种Spark环境中基于内存优化任务并行度的方法和系统 |
CN111045936A (zh) * | 2019-11-29 | 2020-04-21 | 北京浪潮数据技术有限公司 | 软件测试数据组织方法、系统、装置及可读存储介质 |
CN111414370A (zh) * | 2019-01-07 | 2020-07-14 | 北京智融网络科技有限公司 | 一种特征库更新方法和系统 |
CN112328355A (zh) * | 2020-10-09 | 2021-02-05 | 中山大学 | 一种针对长寿命容器的自适应最优内存预留估计方法 |
CN112395162A (zh) * | 2020-11-26 | 2021-02-23 | 上海创远仪器技术股份有限公司 | 针对软件系统实现内存泄漏趋势快速判定的方法、装置、处理器及其存储介质 |
CN113112139A (zh) * | 2021-04-07 | 2021-07-13 | 上海联蔚盘云科技有限公司 | 云平台账单的处理方法和设备 |
CN113407180A (zh) * | 2021-05-28 | 2021-09-17 | 济南浪潮数据技术有限公司 | 一种配置页面生成方法、系统、设备以及介质 |
WO2021253359A1 (zh) * | 2020-06-18 | 2021-12-23 | 华为技术有限公司 | 一种图指令处理方法及装置 |
CN117076184A (zh) * | 2023-10-12 | 2023-11-17 | 湖南长银五八消费金融股份有限公司 | 一种交易系统检测方法、装置及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126873A (zh) * | 2019-12-30 | 2020-05-08 | 盾构及掘进技术国家重点实验室 | 一种基于Hadoop集群架构的盾构TBM大数据平台系统及建设方法 |
CN116800549B (zh) * | 2023-08-28 | 2023-11-03 | 深圳市兴意腾科技电子有限公司 | 一种基于计算机软件开发的数据处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
CN101937388A (zh) * | 2009-12-17 | 2011-01-05 | 北京测腾信息技术有限公司 | 一种高可扩展性和可维护性的源代码缺陷检测方法及装置 |
CN104951372A (zh) * | 2015-06-16 | 2015-09-30 | 北京工业大学 | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050039196A1 (en) * | 2003-08-13 | 2005-02-17 | Sasidharan Prasanth Nalini | Method and system for using a library |
US7891003B2 (en) * | 2006-06-14 | 2011-02-15 | Microsoft Corporation | Enterprise threat modeling |
US9442857B2 (en) * | 2014-10-03 | 2016-09-13 | Adobe Systems Incorporated | Dynamic memory estimations for memory bounded applications |
US10645000B1 (en) * | 2018-06-03 | 2020-05-05 | Juniper Networks, Inc | Apparatus, system, and method for improving convergence across virtual control and forwarding planes within network devices |
-
2018
- 2018-03-06 CN CN201810184254.1A patent/CN108415776B/zh active Active
- 2018-12-11 US US16/216,155 patent/US10725754B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
CN101937388A (zh) * | 2009-12-17 | 2011-01-05 | 北京测腾信息技术有限公司 | 一种高可扩展性和可维护性的源代码缺陷检测方法及装置 |
CN104951372A (zh) * | 2015-06-16 | 2015-09-30 | 北京工业大学 | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法 |
Non-Patent Citations (1)
Title |
---|
张雄; 陆路; 石宣化: "分布式数据处理系统内存对象管理问题分析", 《中兴通讯技术》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414370A (zh) * | 2019-01-07 | 2020-07-14 | 北京智融网络科技有限公司 | 一种特征库更新方法和系统 |
CN110032449A (zh) * | 2019-04-16 | 2019-07-19 | 苏州浪潮智能科技有限公司 | 一种优化gpu服务器的性能的方法及装置 |
CN110363303B (zh) * | 2019-06-14 | 2023-07-07 | 平安科技(深圳)有限公司 | 智能分配模型训练内存方法、装置及计算机可读存储介质 |
CN110363303A (zh) * | 2019-06-14 | 2019-10-22 | 平安科技(深圳)有限公司 | 智能分配模型训练内存方法、装置及计算机可读存储介质 |
CN111045936A (zh) * | 2019-11-29 | 2020-04-21 | 北京浪潮数据技术有限公司 | 软件测试数据组织方法、系统、装置及可读存储介质 |
CN111045936B (zh) * | 2019-11-29 | 2022-03-22 | 北京浪潮数据技术有限公司 | 软件测试数据组织方法、系统、装置及可读存储介质 |
CN110928666A (zh) * | 2019-12-09 | 2020-03-27 | 湖南大学 | 一种Spark环境中基于内存优化任务并行度的方法和系统 |
CN110928666B (zh) * | 2019-12-09 | 2022-03-22 | 湖南大学 | 一种Spark环境中基于内存优化任务并行度的方法和系统 |
WO2021253359A1 (zh) * | 2020-06-18 | 2021-12-23 | 华为技术有限公司 | 一种图指令处理方法及装置 |
CN112328355A (zh) * | 2020-10-09 | 2021-02-05 | 中山大学 | 一种针对长寿命容器的自适应最优内存预留估计方法 |
CN112328355B (zh) * | 2020-10-09 | 2024-04-23 | 中山大学 | 一种针对长寿命容器的自适应最优内存预留估计方法 |
CN112395162A (zh) * | 2020-11-26 | 2021-02-23 | 上海创远仪器技术股份有限公司 | 针对软件系统实现内存泄漏趋势快速判定的方法、装置、处理器及其存储介质 |
CN113112139A (zh) * | 2021-04-07 | 2021-07-13 | 上海联蔚盘云科技有限公司 | 云平台账单的处理方法和设备 |
CN113407180A (zh) * | 2021-05-28 | 2021-09-17 | 济南浪潮数据技术有限公司 | 一种配置页面生成方法、系统、设备以及介质 |
CN117076184A (zh) * | 2023-10-12 | 2023-11-17 | 湖南长银五八消费金融股份有限公司 | 一种交易系统检测方法、装置及存储介质 |
CN117076184B (zh) * | 2023-10-12 | 2023-12-22 | 湖南长银五八消费金融股份有限公司 | 一种交易系统检测方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190278573A1 (en) | 2019-09-12 |
CN108415776B (zh) | 2020-10-09 |
US10725754B2 (en) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415776A (zh) | 一种分布式数据处理系统中的内存预估与配置优化的方法 | |
WO2019237811A1 (zh) | 一种神经网络的内存分配方法及装置 | |
Ousterhout et al. | Monotasks: Architecting for performance clarity in data analytics frameworks | |
CN104520814B (zh) | 用于配置云计算系统的系统和方法 | |
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
US7689538B2 (en) | Autonomic recommendation and placement of materialized query tables for load distribution | |
CN105593818B (zh) | 用于调度分布式工作流程任务的装置和方法 | |
Mahgoub et al. | {OPTIMUSCLOUD}: Heterogeneous configuration optimization for distributed databases in the cloud | |
Zhang et al. | A comparison of distributed machine learning platforms | |
JP2021531557A (ja) | データ・セットにとっておよびデータ・セットの移行にとって最適なストレージ環境の判定 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN106354729A (zh) | 一种图数据处理方法、装置和系统 | |
Petrov et al. | Adaptive performance model for dynamic scaling Apache Spark Streaming | |
CN110322931A (zh) | 一种碱基识别方法、装置、设备及存储介质 | |
CN109510852A (zh) | 灰度发布的方法及装置 | |
Wang et al. | Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform | |
WO2023050809A1 (zh) | 分布式神经网络训练方法 | |
Gregg | Thinking methodically about performance | |
Krevat et al. | Applying performance models to understand data-intensive computing efficiency | |
Shi et al. | Performance models of data parallel DAG workflows for large scale data analytics | |
WO2021056854A1 (zh) | 互联网新型虚拟数据中心系统及其构造方法 | |
WO2014071580A1 (zh) | 一种迁移计算节点的方法及装置 | |
JP2006133820A (ja) | 処理時間算出プログラムおよびワークロードモデル作成プログラム | |
Fritchey | SQL Server 2017 Query Performance Tuning: Troubleshoot and Optimize Query Performance | |
KR20230123761A (ko) | 낸드 플래시 메모리를 이용하여 딥 뉴럴 네트워크 모델을 학습시키는 가속기 시스템 및 그 동작 방법 |
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 |