CN117908902B - 性能优化方法、装置、计算机设备及存储介质 - Google Patents
性能优化方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117908902B CN117908902B CN202410276731.2A CN202410276731A CN117908902B CN 117908902 B CN117908902 B CN 117908902B CN 202410276731 A CN202410276731 A CN 202410276731A CN 117908902 B CN117908902 B CN 117908902B
- Authority
- CN
- China
- Prior art keywords
- performance
- optimized
- equipment
- optimization
- parameters
- 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.)
- Active
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 287
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 68
- 230000006870 function Effects 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 30
- 238000012544 monitoring process Methods 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 15
- 238000011056 performance test Methods 0.000 claims description 8
- 238000004088 simulation Methods 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000036632 reaction speed Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及性能优化技术领域,公开了性能优化方法、装置、计算机设备及存储介质,该方法包括:获取待优化设备在当前运行状态下的当前性能信息;当前性能信息包括待优化设备的当前性能参数;确定与待优化设备的性能参数相对应的基准阈值,并判断当前性能参数是否超出相应的基准阈值;在当前性能参数超出基准阈值的情况下,确定优化当前性能信息所需的目标设备参数;生成将待优化设备的设备参数优化至目标设备参数的优化源代码;执行优化源代码,以对待优化设备进行性能优化。本发明可以自动诊断设备状况,并在需要进行性能优化时实现自动调优,极大提高了对性能异常情况的处理调优效率,增加了调优响应力度。
Description
技术领域
本发明涉及性能优化技术领域,具体涉及性能优化方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的不断发展,对BIOS(Base Input/Output System,基本输入输出系统)适配设备的需求也日益增长。其中,在使用服务器等设备的过程中,一般需要结合实际需求以及设备的实际情况,对服务器进行性能优化。
在进行优化设备的性能时,目前往往人工通过一些性能测试工具进行检测,并进行人工调优。但采用该方式进行调优,难以确定需要进行调优的时机,且调优过程依赖大量的工程师人力,调优效率低,且也容易出现调整不够精确等问题。
发明内容
有鉴于此,本发明提供了一种性能优化方法、装置、计算机设备及存储介质,以解决现有优化方案效率较低的问题。
第一方面,本发明提供了一种性能优化方法,应用于计算机设备,包括:
获取待优化设备在当前运行状态下的当前性能信息;所述当前性能信息包括所述待优化设备的当前性能参数;
确定与所述待优化设备的性能参数相对应的基准阈值,并判断所述当前性能参数是否超出相应的基准阈值;
在所述当前性能参数超出基准阈值的情况下,确定优化所述当前性能信息所需的目标设备参数;
生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码;
执行所述优化源代码,以对所述待优化设备进行性能优化。
本发明通过监控待优化设备的当前性能信息,可以基于当前性能参数是否超出相应的基准阈值来确定是否需要进行性能优化,并在需要进行性能优化时确定所需的目标设备参数,基于该目标设备参数生成相应的优化源代码,通过执行该优化源代码即可实现自动性能优化。该方法可以自动诊断设备状况,并在需要性能优化时实现自动调优,极大提高了对性能异常情况的处理调优效率,增加了调优响应力度,也可以增加调优效率。并且,执行端操作简便,利于推广,复用率高,可以高效解决现场性能问题。
在一些可选的实施方式中,所述确定与所述待优化设备的性能参数相对应的基准阈值,包括:
显示与所述待优化设备的性能参数的基准阈值相对应的被控控件;所述被控控件的尺寸与所述性能参数的基准阈值的大小相一致;
响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸;
将所述被控控件调整后的尺寸所对应的基准阈值,作为所述性能参数的基准阈值。
在一些可选的实施方式中,所述响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸,包括:
监听拖动所述被控控件的拖动事件;
响应于拖动所述被控控件的拖动操作,捕获相应的拖动事件;
根据捕获的拖动事件,实时更新所述被控控件的尺寸;所述被控控件的尺寸的变化方向,与捕获的拖动事件的移动方向相一致。
在一些可选的实施方式中,所述响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸,包括:
获取远端设备发送的用于调整所述被控控件尺寸的调整指令;所述调整指令为所述远端设备通过响应调整所述被控控件尺寸的调整操作所生成的指令;
根据所述调整指令调整尺寸;
向所述远端设备反馈所述被控控件调整后的尺寸。
在一些可选的实施方式中,所述确定优化所述当前性能信息所需的目标设备参数,包括:
将所述当前性能信息输入至训练好的策略模型,根据所述策略模型的输出结果得到能够优化所述当前性能信息的第一优化策略,所述第一优化策略包括目标设备参数。
在一些可选的实施方式中,所述策略模型基于预先确定的样本集训练得到;所述样本集包括:历史性能信息以及相应的历史优化策略;
所述样本集基于以下过程得到:
收集历史性能信息;
对所述历史性能信息进行分析,识别出存在的性能问题;
根据识别出的性能问题,确定相应的历史优化策略。
在一些可选的实施方式中,所述根据识别出的性能问题,确定相应的历史优化策略,包括:
根据识别出的性能问题,确定多种待定优化策略;
按照所述待定优化策略对设备进行性能优化,并对优化后的设备进行性能测试,确定性能指标;
比较不同所述待定优化策略的性能指标,选出最优的待定优化策略作为历史优化策略。
本发明通过对历史性能信息进行分析,确定能够优化相应性能问题的历史优化策略,基于该历史性能信息以及相对应的历史优化策略,可以形成策略集以及样本集,且基于该样本集可以训练得到所需的策略模型,便于在进行性能优化时,使用策略集或策略模型快速确定相应的优化策略。
在一些可选的实施方式中,所述当前性能信息还包括当前性能模式,所述第一优化策略还包括目标性能模式;
所述方法还包括:
在所述当前性能模式与所述目标性能模式不同的情况下,将所述待优化设备的性能模式调整为所述目标性能模式。
在一些可选的实施方式中,在所述目标性能模式为搭配模式的情况下,所述执行所述优化源代码,包括:
在所述待优化设备的业务量超过预设阈值的情况下,释放所述待优化设备的冗余空间,并对所述待优化设备的处理器进行加压;
和/或,在所述待优化设备空闲的情况下,隔离所述待优化设备的部分空间,基于所述部分空间对所述策略模型进行仿真训练。
在一些可选的实施方式中,所述释放所述待优化设备的冗余空间,包括:
确定所述待优化设备中线程的优先级,以及存储非热点数据的存储空间;
将优先级小于预设优先级阈值的线程调整为休眠状态,并释放至少部分所述存储空间。
在一些可选的实施方式中,所述确定优化所述当前性能信息所需的目标设备参数,还包括:
确定预先建立的策略集;所述策略集包括多种性能信息与优化策略之间的关联关系;
在所述当前性能信息存在于所述策略集的情况下,根据所述策略集确定与所述当前性能信息具有关联关系的第二优化策略,所述第二优化策略包括目标设备参数;
在所述当前性能信息不存在于所述策略集的情况下,执行将所述当前性能信息输入至训练好的策略模型的步骤。
本发明在需要确定目标设备参数时,先判断策略集中是否存在当前性能参数,若存在,则可直接基于该策略集确定相应的优化策略,进而确定目标设备参数;若策略集中不存在当前性能参数,再基于策略模型确定目标设备参数。通过判断策略集中是否存在当前性能参数,可以优先基于策略集确定目标设备参数,提高执行效率;基于策略模型也可以简化设备分析时间。
在一些可选的实施方式中,所述生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码,包括:根据训练好的代码模型,确定对所述待优化设备进行性能优化所需的源代码;根据所述目标设备参数对所述所需的源代码进行补全,生成优化源代码。
在一些可选的实施方式中,所述代码模型基于预先确定的编辑序列数据集得到;
所述编辑序列数据集包括:不同优化策略所对应的样本源代码。
在一些可选的实施方式中,所述确定与所述待优化设备的性能参数相对应的基准阈值,包括:执行所述编辑序列数据集中的样本源代码,确定相应的性能参数;对多个所述样本源代码的性能参数进行统计,并对所述性能参数的统计结果进行外扩,生成所述性能参数的基准阈值。
在一些可选的实施方式中,所述执行所述优化源代码,包括:
控制所述待优化设备的处理器运行于可切换的供电状态;所述供电状态包括活跃状态和至少一种睡眠状态;所述活跃状态对应的设备参数高于所述睡眠状态对应的设备参数;
在所述待优化设备的处理器运行于所述睡眠状态的情况下,当所述处理器触发中断时,从所述睡眠状态切换至所述活跃状态;
在所述待优化设备的处理器运行于所述活跃状态的情况下,通过调整所述处理器的电压和/或频率,控制所述处理器运行于相应的性能状态;并且,在触发睡眠命令时,从所述活跃状态切换至相应的睡眠状态。
在一些可选的实施方式中,所述获取待优化设备在当前运行状态下的当前性能信息,包括:
判断所述待优化设备是否开启预取功能;
在开启预取功能的情况下,通过对非连续地址的数据执行读写操作,进行性能测试,确定所述待优化设备的当前性能参数。
在一些可选的实施方式中,所述判断所述待优化设备是否开启预取功能,包括:
对第一数据执行复制操作,并确定执行所述复制操作的第一时延;所述复制操作为从第一存储单元中读取所述第一数据,并将所述第一数据复制写入其他存储单元;
对第一数据执行乘法操作,并确定执行所述乘法操作的第二时延;所述乘法操作为从第一存储单元中读取所述第一数据,将所述第一数据与常数相乘,并将相乘结果写入其他存储单元;
对第一数据和第二数据执行加法操作,并确定执行所述加法操作的第三时延;所述加法操作为从第一存储单元中读取所述第一数据,并从第二存储单元中读取所述第二数据,将所述第一数据与所述第二数据相加,并将相加结果写入其他存储单元;
对第一数据和第二数据执行组合操作,并确定执行所述组合操作的第四时延;所述组合操作为从第一存储单元中读取所述第一数据,并从第二存储单元中读取所述第二数据,将所述第一数据与常数相乘,并将相乘结果与所述第二数据相加,之后将最终的相加结果写入其他存储单元;
确定第一比值和第二比值;所述第一比值为第一差值与所述第一时延或所述第二时延之间的比值,所述第二比值为第二差值与所述第三时延或所述第四时延之间的比值;所述第一差值为所述第二时延与所述第一时延之差,所述第二差值为所述第四时延与所述第三时延之差;
在所述第一比值和所述第二比值均大于第一阈值,或者所述第一比值与所述第二比值之差大于第二阈值的情况下,确定所述待优化设备开启预取功能。
本发明利用复制操作、乘法操作、加法操作、组合操作等不同的读写操作对数据进行读写,基于时延之间的差异,可以比较简单快速地确定待优化设备是否开启预取功能。并且,这些读写操作的时延也可用于确定待优化设备的性能参数,即在确定待优化设备性能参数的同时,可以判断待优化设备是否开启预取功能。
在一些可选的实施方式中,该方法还包括:
确定在执行所述优化源代码之后,所述待优化设备的性能指标;
在所述待优化设备的性能指标符合要求的情况下,进行多轮性能优化;
在所述优化设备的性能指标不符合要求的情况下,重新进行性能优化,并在性能优化的次数超过预设最大优化次数的情况下,生成报警消息。
第二方面,本发明提供了一种性能优化装置,应用于计算机设备,包括:
获取模块,用于获取待优化设备在当前运行状态下的当前性能信息;所述当前性能信息包括所述待优化设备的当前性能参数;
处理模块,用于确定与所述待优化设备的性能参数相对应的基准阈值,并判断所述当前性能参数是否超出相应的基准阈值;
参数确定模块,用于在所述当前性能参数超出基准阈值的情况下,确定优化所述当前性能信息所需的目标设备参数;
代码生成模块,用于生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码;
优化模块,用于执行所述优化源代码,以对所述待优化设备进行性能优化。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的性能优化方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的性能优化方法。
附图说明
为了更清楚地说明本发明具体实施方式或相关技术中的技术方案,下面将对具体实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的性能优化方法的流程示意图;
图2是根据本发明实施例的另一性能优化方法的流程示意图;
图3是根据本发明实施例的再一性能优化方法的流程示意图;
图4是根据本发明实施例的处理器状态的切换示意图;
图5是根据本发明实施例的性能优化装置的结构框图;
图6是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在对服务器等设备进行性能优化时,一般通过人工分析所收集的性能日志以及结合需求情况,进行人工检测以及进行优化。采用人工调优的方式依赖工程师的人力和经验,且容易出现设备识别错误,调整不够精确等问题,导致因为工程师水平差异,进而不能高效、准确、有效地进行实时调整。此外,性能优化时,往往需要结合不同客户的实际需求以及设备的实际情况,而随着客户需求的日益增长,容易反复出现同样的问题,这也会导致大大增加人力成本与时间消耗。
本发明实施例提供一种性能优化方法,可以自动判断是否需要进行调优,并根据设备的性能信息对设备参数进行优化,并自动生成能够实现优化策略的源代码,不仅可以降低工程师的人为经验影响,还可实现自动优化,从而可以提高优化效率。
根据本发明实施例,提供了一种性能优化方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种性能优化方法,可用于计算机设备;该计算机设备可以是需要进行性能优化的设备,或者也可以是能够对其他设备进行性能优化的设备,例如服务器等。图1是根据本发明实施例的性能优化方法的流程图,如图1所示,该流程包括以下步骤。
步骤S101,获取待优化设备在当前运行状态下的当前性能信息;该当前性能信息包括待优化设备的当前性能参数。
本实施例中,设备在运行过程中,随着所在环境(例如网络环境)或负载发生变化,会影响设备的性能,此时需要对设备进行性能优化,以使得设备能够运行于比较良好的状态;为方便描述,将可能需要进行优化的设备称为待优化设备。可以理解,该待优化设备可以执行本实施例提供的方法,即待优化设备通过执行该方法实现性能优化;或者,也可由其他设备对该待优化设备进行性能优化,本实施例对此不作限定。
待优化设备在运行过程中,其性能参数会发生变化;本实施例中,可以实时监控该待优化设备的性能参数,以能够确定当前时刻的性能参数,即当前性能参数。其中,该性能参数用于表示待优化设备的性能情况,其具体可以包括CPU(处理器)使用率、内存使用率、中断时间百分比、CPU空闲时间百分比、网络延迟、响应延时等。
例如,可以基于性能监测工具(例如,sar工具、vmstat工具、dstat工具等)对该待优化设备进行监测,以收集待优化设备的性能参数;或者,也可以获取待优化设备的运行日志,基于日志分析工具确定待优化设备的性能参数。
并且,基于该当前性能参数可以确定能够表示待优化设备当前性能的相关信息,即当前性能信息。例如,可以直接将当前性能参数作为该当前性能信息;或者,也可在当前性能参数的基础上增加其他信息,形成该当前性能信息,具体可基于实际情况而定。
例如,该当前性能信息除了包括当前性能参数之外,还包括该待优化设备的设备标识,该设备标识例如可以是SID(Subsystem-Identification,子系统设备识别码)、SVID(Sub-system Vendor Identification,子系统供应商标识)等;基于该设备标识,可以将相应设备的带宽和速率作为资源分配的判断指标,进行设备情况的收集,并分配预留资源,优化资源分配机制。这样可以大大减少因设备读取识别失败等原因导致的资源预留不够情况,可以有效保障设备的稳定性,综合得出准确的性能阈值范围。
步骤S102,确定与待优化设备的性能参数相对应的基准阈值,并判断当前性能参数是否超出相应的基准阈值。
本实施例中,可以先判断待优化设备当前是否需要被优化,若待优化设备当前性能良好,并不需要被优化,则不需要执行后续步骤;在待优化设备当前需要被优化时,再执行后续的性能优化过程。
具体地,可以预先设置每一种性能参数的基准阈值,将该基准阈值作为性能参数的标准。若待优化设备的当前性能参数超出预设的基准阈值,则说明该待优化设备当前的性能较差,其当前需要被优化。相反地,若该待优化设备的当前性能参数未超出预设的基准阈值,则可认为该待优化设备当前性能良好,不需要进行优化。
例如,该基准阈值具体可以包括硬件配置、组网、CPU、内存、网络吞吐、响应延时等运行数据对应的标准。对待优化设备进行性能优化的一个优化目标即是让其性能参数能够符合该基准阈值对应的标准。
步骤S103,在当前性能参数超出基准阈值的情况下,确定优化当前性能信息所需的目标设备参数。
本实施例中,若当前性能参数超出基准阈值,则说明可以通过调整待优化设备的设备参数,以调整该当前性能参数,实现对待优化设备的性能优化;其中,该设备参数为设备本身具有的物理参数,其具体可以包括设备的开关状态,处理器的电压、频率等参数。其中,该开关状态可以表示设备的上电情况,例如可以基于开关状态控制设备加压上电、重启等操作。
在确定待优化设备的当前性能信息后,可以基于该当前性能信息的具体情况,确定是否需要对待优化设备进行性能优化,以及在需要进行性能优化时,如何调整该待优化设备的设备参数。具体地,在该待优化设备需要进行性能优化时,可以确定为能够待优化设备的当前性能参数,所需的设备参数,即目标设备参数。可以理解,该目标设备参数的数值,是需要将待优化设备的目标参数调整至的数值。
例如,性能信息对应设备的一种运行状态,故可以预先建立设备的运行状态(即设备信息)与所需的设备参数之间的对应关系,在确定待优化设备的当前运行状态之后,即可基于该对应关系确定相应所需的设备参数,即目标设备参数。
可选地,在当前性能参数超出基准阈值的情况下,也可以触发警报或生成报警消息,以提醒用户当前需要进行性能优化,可以及时发现性能问题并采取相应的措施。
步骤S104,生成将待优化设备的设备参数优化至目标设备参数的优化源代码。
本实施例中,为能够实现对设备进行性能优化,需要编写相应的源代码;例如,可以基于人工编写源代码,也可自动生成相应的源代码。为方便描述,将优化设备参数的源代码称为优化源代码。
步骤S105,执行优化源代码,以对进行性能优化。
本实施例中,该优化源代码为能够对待优化设备进行性能优化的源代码,通过执行该优化源代码,可以将该待优化设备的设备参数调整为目标设备参数,并按照源代码所对应的逻辑优化待优化设备的运行状态,从而可以优化该待优化设备的性能。
本实施例提供的性能优化方法,通过监控待优化设备的当前性能信息,可以基于当前性能参数是否超出相应的基准阈值来确定是否需要进行性能优化,并在需要进行性能优化时确定所需的目标设备参数,基于该目标设备参数生成相应的优化源代码,通过执行该优化源代码即可实现自动性能优化。该方法可以自动诊断设备状况,并在需要性能优化时实现自动调优,极大提高了对性能异常情况的处理调优效率,增加了调优响应力度,也可以增加调优效率。并且,执行端操作简便,利于推广,复用率高,可以高效解决现场性能问题。
在本实施例中提供了一种性能优化方法,可用于计算机设备;该计算机设备可以是需要进行性能优化的设备,或者也可以是能够对其他设备进行性能优化的设备,例如服务器等。图2是根据本发明实施例的性能优化方法的流程图,如图2所示,该流程包括以下步骤。
步骤S201,获取待优化设备在当前运行状态下的当前性能信息;该当前性能信息包括待优化设备的当前性能参数。
详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S202,确定与待优化设备的性能参数相对应的基准阈值,并判断当前性能参数是否超出相应的基准阈值。
详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S203,在当前性能参数超出基准阈值的情况下,确定优化当前性能信息所需的目标设备参数。
本实施例中,可以预先训练策略模型,基于该策略模型确定合适的目标设备参数。或者,可以预先建立包括多种性能信息与优化策略之间关联关系的策略集,结合该策略集和策略模型确定合适的目标设备参数。具体地,上述步骤S203“确定优化当前性能信息所需的目标设备参数”包括以下步骤S2031至步骤S2033。
步骤S2031,确定预先建立的策略集。该策略集包括多种性能信息与优化策略之间的关联关系。
本实施例中,可以预先收集多种性能信息,并确定每种性能信息对应的优化策略,从而可以建立该性能信息与相应优化策略之间的关联关系,这些关联关系的集合称为策略集。其中,该优化策略具体可以包括相应的设备参数。例如,若对于性能信息1,需要基于优化策略a实现性能优化,则可建立该性能信息1与优化策略a之间的关联关系。
此外,还可以预先训练得到策略模型。其中,该策略模型基于预先确定的样本集训练得到;基于该样本集进行模型训练,可以得到所需的策略模型。
本实施例中,与上述的策略集相类似,该样本集也包括性能信息以及相应的优化策略,为方便描述,将样本集中的性能信息、优化策略分别称为历史性能信息、历史优化策略。可以理解,该历史性能信息与历史优化策略也是相关联的,故策略集中的性能信息和优化策略,也可作为该样本集中的历史性能信息和历史优化策略,即可以基于该策略集进行训练。
本实施例中,无论是策略集还是样本集,均需要预先收集得到其中的性能信息和优化策略。以生成样本集为例,得到样本集的过程可包括以下步骤A1至步骤A3。
步骤A1,收集历史性能信息。
本实施例中,可以在设备运行时,提前收集其运行过程中的性能信息,该设备可以是上述的待优化设备,也可以是其他设备,此处不做限定。该预先收集的性能信息,即为历史性能信息。
例如,与上述获取当前性能信息的过程相似,可以基于性能监测工具对该设备进行监测,以确定该设备的CPU使用率、内存使用率、网络延迟等,从而确定相应的历史性能参数,进而生成相应的历史性能信息;或者,也可以获取该设备的运行日志,基于日志分析工具确定该设备的历史性能信息。
步骤A2,对历史性能信息进行分析,识别出存在的性能问题。
本实施例中,对这些收集到的历史性能信息进行分析,可以根据分析结果,找出设备可能存在的性能问题,例如高延迟、低吞吐量等性能问题。
例如,可以使用性能分析工具实现对历史性能信息的分析,该性能分析工具例如可以是性能测试工具、调试工具、日志分析工具等。
步骤A3,根据识别出的性能问题,确定相应的历史优化策略。
本实施例中,基于该历史性能信息对应的性能问题,可以确定相应的优化措施,从而生成相应的优化策略,即历史优化策略。例如,若某历史性能信息对应的性能问题是吞吐量较低,则其对应的历史优化策略可以是增加缓存,提高缓存命中率,以能够增加吞吐量。
其中,该历史优化策略可以包括相应的设备参数,该设备参数是可以优化历史性能信息的参数;此外,该历史优化策略还可以包括相应的系统配置、所需的优化逻辑(具体可基于源代码实现该优化逻辑),甚至还可以调整设备的硬件资源等,以实现性能优化。
可选地,上述步骤A3“根据识别出的性能问题,确定相应的历史优化策略”具体可以包括以下步骤A31至步骤A33。
步骤A31,根据识别出的性能问题,确定多种待定优化策略。
本实施例中,对于某一特定的性能问题,可能存在多种优化措施,且对于同一种设备参数,也可能可以设为多种不同的数值,因此可能存在多种优化策略。其中,将基于性能问题初步确定的优化策略称为待定优化策略。
例如,对于处理器性能较低的问题,可以增大处理器的电压,也可以增大处理器的频率,也可以同时增大处理器的电压和频率,即存在多种待定优化策略;此外,对于处理器电压这一设备参数,也可将该电压设为不同的数值,从而也可以生成多种待定优化策略。
步骤A32,按照待定优化策略对设备进行性能优化,并对优化后的设备进行性能测试,确定性能指标。
本实施例中,对于每一种待定优化策略,均可按照该待定优化策略对设备进行性能优化,在优化后,继续对该设备进行性能测试,从而可以确定该待定优化策略对应的性能指标。例如,该性能指标具体可以包括响应时间、吞吐量、带宽、延迟、丢包率等。
例如,可以使用性能监测工具实时监测该设备的性能指标,从而可以确定执行每种待定优化策略后该设备的性能指标。
步骤A33,比较不同待定优化策略的性能指标,选出最优的待定优化策略作为历史优化策略。
本实施例中,不同的待定优化策略,其所导致的性能指标一般也是不同的,为能够确定历史性能信息所对应的比较好的优化策略,将其中性能指标最优的待定优化策略作为历史优化策略。
其中,在确定所有待定优化策略的性能指标,可以与优化前的性能指标进行比较,排除比优化前性能指标更差的待定优化策略,从剩余的待定优化策略中选取出最优的历史优化策略。
本实施例中,通过对历史性能信息进行分析,确定能够优化相应性能问题的历史优化策略,基于该历史性能信息以及相对应的历史优化策略,可以形成策略集以及样本集,且基于该样本集可以训练得到所需的策略模型,便于在进行性能优化时,使用策略集或策略模型快速确定相应的优化策略。
步骤S2032,在当前性能信息不存在于策略集的情况下,将当前性能信息输入至训练好的策略模型,根据策略模型的输出结果得到能够优化当前性能信息的第一优化策略。该第一优化策略包括目标设备参数。
本实施例中,若当前性能信息不存在于策略集,即策略集中不存在与该当前性能信息具有关联关系的优化策略,故基于该策略集不能确定此时所需的优化策略,此时需要使用上述的策略模型。
具体地,如上所述,该策略模型是基于性能信息与优化策略训练得到的,故将当前性能信息输入至该策略模型,可以输出相应的优化策略,即第一优化策略,可以理解,该第一优化策略可以对待优化设备进行优化,以优化该待优化设备的当前性能信息。
其中,该第一优化策略包括相应的设备参数,该设备参数即可作为所需的目标设备参数。
例如,该策略模型是神经网络模型,例如BP(反向传播)神经网络模型等,基于该神经网络模型,可以实现从输入空间到输出空间的高度非线性映射,输入空间包括m个输入节点,输出空间包括n个输出节点,即该神经网络模型可以实现m维的策略信息与n维的优化策略之间的非线性映射,其可以建立策略信息与优化策略之间的非线性映射关系,基于该分线性映射关系,可以确定当前性能信息对应的第一优化策略。
步骤S2033,在当前性能信息存在于策略集的情况下,根据策略集确定与当前性能信息具有关联关系的第二优化策略。该第二优化策略包括目标设备参数。
本实施例中,若当前性能信息存在于策略集,即该当前性能信息与策略集中的某个历史策略信息相同,故此时基于策略集可以直接确定与该当前性能信息具有关联关系的优化策略,即第二优化策略;与上述第一优化策略相似,该第二优化策略也包括相应的设备参数,该设备参数即可作为所需的目标设备参数。
策略集虽然只能存储部分性能信息与优化策略之间的关联关系,但由于基于查询策略集即可确定相应的优化策略,执行效率较高;使用策略模型确定优化策略的过程,虽然会增加一定的计算量,但策略模型的适用范围更广,在多种情况下均可确定合适的目标设备参数。
步骤S204,生成将待优化设备的设备参数优化至目标设备参数的优化源代码。
本实施例中,上述步骤S204“生成将待优化设备的设备参数优化至目标设备参数的优化源代码”可以包括以下步骤S2041至步骤S2042。
步骤S2041,根据训练好的代码模型,确定对待优化设备进行性能优化所需的源代码。
由于人工编写源代码效率较低,难以满足需要频繁进行性能优化的场景,且当需要优化的设备较多时,也难以针对不同设备快速编写合适的源代码。本实施例中,基于代码模型可以自动生成合适的源代码。
具体地,预先训练有代码模型,该代码模型用于确定可以实现性能优化的源代码。其中,可以预先收集多种能够实现性能优化的源代码,基于该源代码对模型进行训练,得到能够确定所需源代码的代码模型。
本实施例中,利用该代码模型,可以基于人工智能(AI,ArtificialIntelligence)的形式生成代码,并进行性能优化,可以由AI代码代替人工编辑的代码,有效减少人力投入,降低时间成本。
步骤S2042,根据目标设备参数对所需的源代码进行补全,生成优化源代码。
本实施例中,该源代码用于表示实现性能优化的逻辑;为能够适应不同的设备参数,该源代码中涉及的设备参数是可调整的,或者,可以对源代码中的设备参数进行适应性赋值。具体地,对于优化该待优化设备的性能所需的源代码,将其中的设备参数调整为上述确定的目标设备参数,从而实现对该源代码的补全,将补全后的源代码称为优化源代码。
例如,源代码中用于设置设备参数的位置处的内容是可调整的,将该内容调整为相应的目标设备参数,即可实现对源代码的补全。或者,也可在源代码中为设备参数设置全局变量,将该全局变量赋值为该目标设备参数,也可以实现对源代码的补全。
在一些可选的实施方式中,该代码模型可以基于预先确定的编辑序列数据集得到的;其中,该编辑序列数据集包括:不同优化策略所对应的样本源代码。
本实施例中,可以预先收集实现多种优化策略所分别对应的源代码,将收集到的源代码作为训练代码模型所需的样本源代码。例如,可以在上述步骤A1至步骤A3的过程中,为能够优化识别出的性能问题,可以确定相应的源代码。收集这些源代码,可以构建大型的编辑序列数据集。
在生成该编辑序列数据集后,即可基于编辑序列数据集即可对代码模型进行训练,从而得到基于能够确定可以实现相应优化策略的源代码。具体地,基于当前性能信息可以确定所需的优化策略,该优化策略包括目标设备参数;之后基于该代码模型,即可确定与该所需的优化策略所对应的源代码。
其中,该策略模型与代码模型可以是两个独立的模型,二者也可以是一个综合模型,即基于一个综合模型确定相应的目标设备参数和源代码。例如,可以将预先采集到的历史性能信息作为模型的输入,将与该历史性能信息相对应的设备参数以及源代码作为模型的输出,对模型进行训练,从而可以训练得到该综合模型。
可选地,上述基准阈值可以基于编辑序列数据集确定。具体地,该编辑序列数据集还用于确定基准阈值,即上述步骤S202“确定与待优化设备的性能参数相对应的基准阈值”可以包括:执行编辑序列数据集中的样本源代码,确定相应的性能参数;对多个样本源代码的性能参数进行统计,并对性能参数的统计结果进行外扩,生成性能参数的基准阈值。该基准阈值用于判断设备是否需要被优化。
本实施例中,如上所述,编辑序列数据集中包括多个样本源代码,每个样本源代码均是为了实现性能优化而设定的代码,故执行该样本源代码,也可以确定相应的性能参数,可以理解,此时确定的性能参数,一般是能够满足设备性能需求的参数,故对这些性能参数进行统计,可以确定每一种性能参数对应的标准范围,该标准范围即可作为该性能参数的基准阈值。在获取到待优化设备的当前性能参数后,即可将该当前性能参数与基准阈值进行比对,从而可以确定该待优化设备是否需要被优化。
其中,可以对性能参数的统计结果进行外扩,即将比该统计结果更大的数值,作为性能参数的基准阈值。例如,可以外扩一定比例(比如10%、20%等),从而为正常性能预留一定的空间。
步骤S205,执行优化源代码,以对待优化设备进行性能优化。
详细请参见图1所示实施例的步骤S105,在此不再赘述。
本实施例提供的性能优化方法,在需要确定目标设备参数时,先判断策略集中是否存在当前性能参数,若存在,则可直接基于该策略集确定相应的优化策略,进而确定目标设备参数;若策略集中不存在当前性能参数,再基于策略模型确定目标设备参数。通过判断策略集中是否存在当前性能参数,可以优先基于策略集确定目标设备参数,提高执行效率;基于策略模型也可以简化设备分析时间。通过对历史性能信息进行分析,确定能够优化相应性能问题的历史优化策略,基于该历史性能信息以及相对应的历史优化策略,可以形成策略集以及样本集,且基于该样本集可以训练得到所需的策略模型,便于在进行性能优化时,使用策略集或策略模型快速确定相应的优化策略。由AI代码代替人工编辑源代码,可以降低人力成本和降低调优成本,也可以增加调优效率。
在一些可选的实施方式中,该当前性能信息除了包括当前设备参数之外,还可以包括待优化设备当前所处的性能模式,即当前性能模式;相应的,基于该当前性能信息所确定优化策略也包括待优化设备需要的性能模式,将该性能模式称为目标性能模式;例如,基于策略模型所确定的第一优化策略还包括目标性能模式。
在这种情况下,该方法还包括:在当前性能模式与目标性能模式不同的情况下,将待优化设备的性能模式调整为目标性能模式。
本实施例中,可以为设备设置多种性能模式,在对待优化设备进行性能优化时,可以保持待优化设备的性能模式不变,也可能需要改变待优化设备的性能模式,即该当前性能模式与目标性能模式可能相同,也可能不同。若当前性能模式与目标性能模式不同,说明当前性能模式不适用于当前的待优化设备,此时需要将待优化设备的性能模式调整为目标性能模式,即从当前性能模式调整为目标性能模式。
例如,可以通过收集到的设备性能信息库,并进行仿真训练,总结出各类场景下性能的最优方案,从而确定相应的性能模式;在遇到性能异常的情况时,即可快速确定所需的目标性能模式,以确定是否需要调整设备的性能模式。
其中,该性能模式具体可以包括:标准性能模式、能效模式、自定义模式、低延时稳频模式、最大性能模式、智能功耗管理节能模式、智能功耗管理平衡模式等。
(1)标准性能模式。在标准性能模式下,CPU和内存利用率高,节能自动关闭,整体能耗增加;该模式适用于高负载、多线程、低延时的高性能场景。
(2)能效模式。在能效模式下,可以在对性能影响最小的前提下开启节能,并且在负载较低的情况下让核心进入休眠状态,从而在保持良好性能的前提下获取较好的节能效果。该模式适用于大部分普通应用场景。
(3)自定义模式。该模式适用于根据具体情况自行定制的场景。
(4)低延时稳频模式。在低延时稳频模式下,设备将关闭可能引入时延的节能选项和其他管理功能,并使CPU在空闲状态下保持最高频率,以获取更快的反应速度。该模式适用于对时延抖动要求较为严格的场景,例如实时操作系统等。
(5)最大性能模式。该最大性能模式下,CPU维持在最大Turbo频率(睿频),并保持稳定。
(6)智能功耗管理节能模式。在智能功耗管理节能模式下,设备将开启节能选项,并根据当前核心的负载情况,动态调整非核心区域的负载,减少非核心区域的整体能耗。该模式适用于需要控制服务器整体能耗的场景。
(7)智能功耗管理平衡模式。在智能功耗管理平衡模式下,设备将开启节能以降低能耗,并根据当前核心的负载情况,动态调整非核心区域的负载,从而实现功耗和性能的均衡,使单位功耗下能提供的整体性能最大化。该模式适用于需要平衡功耗和节能的场景。
在一些可选的实施方式中,所设置的性能模式还包括搭配(collocation)模式,在搭配模式下,可以基于设备的业务情况对设备的运行状态进行调整。具体地,若目标性能模式为搭配模式,上述步骤S205“执行优化源代码”具体可以包括以下步骤B1和/或步骤B2。
步骤B1,在待优化设备的业务量超过预设阈值的情况下,释放待优化设备的冗余空间,并对待优化设备的处理器进行加压。
在待优化设备的业务增加时,此时需要使用待优化设备较多的处理资源,从而影响设备性能;而需要对设备进行性能优化的频率一般是比较低的,故一般会间隔一定时间再判断是否需要对待优化设备进行性能优化,若在待优化设备业务增加时,仍然等待执行性能优化的过程,则会影响待优化设备对业务的处理效果。
本实施例中,对于设备的业务量易发生变化的情况,将待优化设备的性能模式切换至搭配模式。在该搭配模式下,若待优化设备的业务量超过预设阈值,则可认为该待优化设备的业务增加过多,此时需要分配较多的处理资源。具体地,释放待优化设备的冗余空间,以增加可用空间;并且,对待优化设备的处理器进行加压,即增大处理器的电压,以提高处理器的处理能力。
可选地,若待优化设备的业务量超过预设阈值,上述步骤B1“释放待优化设备的冗余空间”具体可以包括以下步骤B11至步骤B12。
步骤B11,确定待优化设备中线程的优先级,以及存储非热点数据的存储空间。
步骤B12,将优先级小于预设优先级阈值的线程调整为休眠状态,并释放至少部分存储空间。
本实施例中,在需要释放冗余空间时,可以释放冗余的内存空间,也可以释放冗余的存储空间(例如,磁盘空间)。其中,对待优化设备中的线程设有相应的优先级,在需要释放冗余空间时,若某个或某些线程的优先级较低,这些线程的活跃度一般不高,此时可暂停执行这些低优先级的线程;具体地,将若线程的优先级小于预设优先级阈值,则可认为该线程是冗余线程,此时将该冗余线程调整为休眠状态,不仅可以释放冗余的内存空间,降低CPU的使用率,且在需要重新执行该线程时,处于休眠状态的线程也能够快速被恢复。
并且,对存储空间中存储的数据进行划分,以确定哪些数据是经常使用的热点数据,哪些数据为不经常使用的非热点数据。在需要释放冗余空间时,可以释放存储非热点数据的全部存储空间,或者有选择性地释放部分存储空间,使得有更多的存储空间能够存储与当前业务相关的数据。
步骤B2,在待优化设备空闲的情况下,隔离待优化设备的部分空间,基于部分空间对策略模型进行仿真训练。
本实施例中,由于需要使用策略模型实现性能优化,在待优化设备空闲时,可以使用该待优化设备的部分空闲空间,基于该空闲空间对策略模型进行仿真训练,以能够实时更新调整策略模型,使得该策略模型可以更好地完成性能优化任务。并且,对该空闲空间进行隔离,可以避免仿真训练过程对正常业务造成干扰。
本实施例中,搭配模式所对应的优化源代码,可以对设备的性能进行实时适应性调整,通过执行该优化源代码,可以实现处理器加压、释放待优化设备的冗余空间,或者利用空闲空间进行仿真训练。并且,将低优先级的线程调整为休眠状态,并释放存储非热点数据的至少部分存储空间,可以释放冗余的内存空间和存储空间,能够有效提高待优化设备的性能。
在本实施例中提供了一种性能优化方法,可用于计算机设备;该计算机设备可以是需要进行性能优化的设备,或者也可以是能够对其他设备进行性能优化的设备,例如服务器等。图3是根据本发明实施例的性能优化方法的流程图,如图3所示,该流程包括以下步骤。
步骤S301,获取待优化设备在当前运行状态下的当前性能信息;该当前性能信息包括待优化设备的当前性能参数。
具体地,上述步骤S301“获取待优化设备在当前运行状态下的当前性能信息”包括以下步骤S3011至步骤S3012。
步骤S3011,判断待优化设备是否开启预取功能。
预取是指在数据被请求之前主动将其加载至缓存(Cache)中,提前准备好以便使用。具体地,处理器(CPU)可以将内存中的指令和数据提前存放到缓存中,从而加快处理器执行速度。通过预取可以有效减少数据访问的延迟,提高响应速度和性能。
其中,处理器将内存中的数据读到高速缓冲区时,根据局部性原理,处理器除了读取本次要访问的数据,还将预先读取本次数据的周边数据至高速缓冲区。如果预取的数据是下次要访问的数据,那么性能会提升;但是,如果预取的数据不是下次要取的数据,那么会浪费内存带宽。因此,通过合理地选择和调整预取技术,可以实现较优的性能优化。一般情况下,对于数据比较集中的场景,预取的命中率高,适合打开处理器的预取功能,反之需要关闭预取功能。
而在监测设备的响应延时等性能参数时,设备是否开启预取功能,会一定程度上影响所监测到的性能参数。例如,在开启预取功能时,处理器的响应延时较低,但这有可能是因预取数据而导致的,并不能说明该处理器可以低延迟地从内存中读取数据。因此,在获取待优化设备的当前性能参数时,需要基于其是否开启预取功能,有针对性地进行监测。
具体地,在需要获取待优化设备的当前性能参数时,首先判断该待优化设备是否开启预取功能。例如,工程师可以主动设置该待优化设备当前是否开启了预取功能,通过读取工程师所主动设置的参数,可以确定待优化设备是否开启预取功能。
在一些可选的实施方式中,由于是否开启预取的区别,主要在于处理器读取部分数据时,是从内存中读取,还是从高速缓存(Cache)中读取;而由于从内存中读取数据的速率小于从缓存中读取数据的速率,故本实施例中基于不同读写操作之间的时延差异,判断待优化设备是否开启预取功能。具体地,上述步骤S3011“判断待优化设备是否开启预取功能”具体可以包括以下步骤C1至步骤C6。
步骤C1,对第一数据执行复制操作,并确定执行复制操作的第一时延;该复制操作为从第一存储单元中读取第一数据,并将第一数据复制写入其他存储单元。
步骤C2,对第一数据执行乘法操作,并确定执行乘法操作的第二时延;该乘法操作为从第一存储单元中读取第一数据,将第一数据与常数相乘,并将相乘结果写入其他存储单元。
步骤C3,对第一数据和第二数据执行加法操作,并确定执行加法操作的第三时延;该加法操作为从第一存储单元中读取第一数据,并从第二存储单元中读取第二数据,将第一数据与第二数据相加,并将相加结果写入其他存储单元。
步骤C4,对第一数据和第二数据执行组合操作,并确定执行组合操作的第四时延;该组合操作为从第一存储单元中读取第一数据,并从第二存储单元中读取第二数据,将第一数据与常数相乘,并将相乘结果与第二数据相加,之后将最终的相加结果写入其他存储单元。
本实施例中,设置四种读写操作:复制操作、乘法操作、加法操作、组合操作。
该复制操作指的是从存储单元中读取数据,复制后写入其他存储单元,该过程包含两次访问操作(一次读操作、一次写操作)。
该乘法操作指的是从存储单元中读取数据,将该数据乘以某个常数后,写入其他存储单元,该过程也包含两次访问操作(一次读操作、一次写操作),且比复制操作多了乘以常数的过程,该过程所需的时长更长。
该加法操作指的是从两个存储单元中分别读取数据,将两个数据相加后,写入其他存储单元,该过程包含三次访问操作(两次读操作、一次写操作)。
该组合操作是乘法操作和加法操作的组合,其指的是两个存储单元中分别读取数据,将其中一个数据乘以常数后,与另一个数据相加,将最终的结果写入其他存储单元,该过程也包含三次访问操作(两次读操作、一次写操作),且比加法操作多了乘以常数的过程,该过程所需的时长也更长。
可以理解,若当前未开启预取功能,则该存储单元为内存中的存储单元,此时处理器需要与内存之间进行数据读写操作。若当前开启预取功能,则该存储单元可以能是内存中的存储单元,也可能是处理器缓存中的存储单元;当处理器对缓存中的数据进行读写时,其读写速率较高,具有较低的时延。
本实施例中,在判断待优化设备是否开启预取功能,可以对第一存储单元A中的第一数据d1,以及第二存储单元B中的第二数据d2进行相应的读写操作。可以理解,若未开启预取功能,第一存储单元A与第二存储单元B均为内存中的存储单元;若开启了预取功能,第一存储单元A与第二存储单元B可能都是内存中的存储单元,也可能都是缓存中的存储单元,也可能一个是内存中的存储单元,另一个是缓存中的存储单元。
具体地,可以从第一存储单元A中读取第一数据d1,并将第一数据d1复制写入其他存储单元,完成复制操作,该过程的时延(即完成复制操作所需的时间)称为第一时延T1。
从第一存储单元A中读取第一数据d1,并将第一数据d1与常数k相乘,将相乘结果d1×k写入其他存储单元,完成乘法操作,该过程的时延称为第二时延T2。
从第一存储单元A中读取第一数据d1,同时从第二存储单元B中读取第二数据d2,将第一数据d1与第二数据d2相加,并将相加结果d1+d2写入其他存储单元,完成加法操作,该过程的时延称为第三时延T3。
从第一存储单元A中读取第一数据d1,同时从第二存储单元B中读取第二数据d2,将第一数据d1与常数k相乘,并将相乘结果d1×k与第二数据d2相加,之后将最终的相加结果d1×k+d2写入其他存储单元,完成组合操作,该过程的时延称为第四时延T4。
步骤C5,确定第一比值和第二比值;第一比值为第一差值与第一时延或第二时延之间的比值,第二比值为第二差值与第三时延或第四时延之间的比值;第一差值为第二时延与第一时延之差,第二差值为第四时延与第三时延之差。
由于乘法操作和组合操作多了乘以常数的过程,其时延更大,故第二时延T2大于第一时延T1,第四时延T4大于第三时延T3。本实施例中,将第二时延T2与第一时延T1之差称为第一差值e1,即e1=T2-T1;将第四时延T4与第三时延T3之差称为第二差值e2,即e2=T4-T3。
并且,将第一差值e1与第一时延T1或第二时延T2之间的比值称为第一比值R1,即R1=e1/T1,或者R1=e1/T2;将第二差值e2与第三时延T3或第四时延T4之间的比值称为第二比值R2,即R2=e2/T3,或者R2=e2/T4。
步骤C6,在第一比值和第二比值均大于第一阈值,或者第一比值与第二比值之差大于第二阈值的情况下,确定待优化设备开启预取功能。
本实施例中,上述第一差值e1是乘法操作与复制操作之间的时延差,第二差值e2是组合操作与加法操作之间的时延差,二者均表示乘以常数所需的时间;在处理器性能一定的情况下,第一差值e1与第二差值e2基本相似,且基本是某个定值。而由于对内存或缓存执行读写操作,所需的时间是不同的,故上述读写操作所对应的时延(包括第一时延T1、第二时延T2、第三时延T3、第四时延T4)在开启预取功能、或未开启预取功能时,存在较大的差异,导致第一比值和第二比值也可能存在较大的差异。
具体地,预先设置合适的第一阈值、第二阈值,若第一比值R1和第二比值R2均大于该第一阈值,在第一差值e1与第二差值e2相对固定的情况下,说明读写操作所对应的时延偏小,故此时可以认为当前处理器是对缓存执行的读写操作,即数据已经被预取至处理器的缓存中,故待优化设备开启预取功能。
或者,若第一比值R1与第二比值R2之间存在一定的差异,且第一比值R1与第二比值R2之差大于第二阈值,则说明该第一比值R1偏大,而第二比值R2偏小;在第一差值e1与第二差值e2相对固定的情况下,说明第一时延T1或第二时延T2偏小,而第三时延T3、第四时延T4偏大,这极有可能是因为第一存储单元A是缓存中的存储空间,而第二存储单元B是内存中的存储空间;这导致在执行复制操作或乘法操作时,可以快速从缓存(第一存储单元A)中读取第一数据d1,所需时延较小,而在执行加法操作或组合操作时,由于需要从内存(第二存储单元B)中读取第二数据d2,故需要较大的时延,导致第三时延T3、第四时延T4偏大。因此,在第一比值R1与第二比值R2之差大于第二阈值的情况下,说明已有数据(例如第一数据d1)被预取到处理器的缓存中,故待优化设备开启了预取功能。
本实施例中,利用复制操作、乘法操作、加法操作、组合操作等不同的读写操作对数据进行读写,基于时延之间的差异,可以比较简单快速地确定待优化设备是否开启预取功能。并且,这些读写操作的时延也可用于确定待优化设备的性能参数,即在确定待优化设备性能参数的同时,可以判断待优化设备是否开启预取功能。
步骤S3012,在开启预取功能的情况下,通过对非连续地址的数据执行读写操作,进行性能测试,确定待优化设备的当前性能参数。
本实施例中,若待优化设备未开启预取功能,则可按照正常的测试方式测试待优化设备的性能,以确定其当前性能参数。若待优化设备开启了预取功能,由于预取功能一般是预取连续地址的数据,本实施例中,通过对非连续地址的数据执行读写操作(例如上述的复制操作、乘法操作、加法操作、组合操作等),能够有效地对内存中的数据进行读写测试,从而避免预取功能的影响,可以更真实地确定内存的单次时延。
步骤S302,确定与待优化设备的性能参数相对应的基准阈值,并判断当前性能参数是否超出相应的基准阈值。
具体地,上述步骤S302“确定与待优化设备的性能参数相对应的基准阈值”可以包括以下步骤S3021至步骤S3023。
步骤S3021,显示与待优化设备的性能参数的基准阈值相对应的被控控件;该被控控件的尺寸与性能参数的基准阈值的大小相一致。
本实施例中,待优化设备包括多种性能参数,例如CPU利用率、内存使用率、网络带宽等;通过分析历史数据、业务需求、系统规格等因素,可以确定每一种性能参数的基准阈值,并基于该基准阈值判断当前是否需要进行性能优化。并且,可以根据实际运行情况和反馈信息,适时调整性能参数的基准阈值,以保证系统或应用程序的性能达到最佳状态。
其中,用户可主动调整该基准阈值,使得用户可以主动调整需要进行性能优化的时机。
具体地,对每一种性能参数,设有相应的被控控件,用户通过调整该被控控件,可以通过可视化交互的方式,调整相应性能参数的基准阈值。该被控控件具有一定的尺寸,且被控控件的尺寸与性能参数的基准阈值的大小相一致,即性能参数的基准阈值越大,该被控控件的尺寸也越大。
例如,以柱状图的形式表示多个性能参数的基准阈值,相应地,该被控控件为柱状图中的一个柱状控件;可以将柱状控件的高度与性能参数的基准阈值的相匹配,即性能参数的基准阈值越大,该柱状控件的高度也越高。
步骤S3022,响应于调整被控控件尺寸的调整操作,更新被控控件的尺寸。
步骤S3023,将被控控件调整后的尺寸所对应的基准阈值,作为性能参数的基准阈值。
本实施例中,用户可以输入调整该被控控件尺寸的调整操作,从而可以相应地更新被控控件的尺寸。例如,该调整操作可以是拖动操作,通过拖动操作的拖动距离,适应性调整被控控件的尺寸。该被控控件的尺寸与基准阈值是对应的,故通过调整被控控件的尺寸,可以实现对基准阈值的调整。
在一些可选的实施方式中,上述步骤S3022“响应于调整被控控件尺寸的调整操作,更新被控控件的尺寸”可以包括以下步骤D1至步骤D3。
步骤D1,监听拖动被控控件的拖动事件。
步骤D2,响应于拖动被控控件的拖动操作,捕获相应的拖动事件。
步骤D3,根据捕获的拖动事件,实时更新被控控件的尺寸;该被控控件的尺寸的变化方向,与捕获的拖动事件的移动方向相一致。
本实施例中,在初步确定每种性能参数的基准阈值后,可以创建相应的交互界面,该交互界面中包括每种性能参数的被控控件。为方便描述,后续以该交互界面为柱状图为例进行说明,该被控控件为柱状控件。其中,可以设置柱状图的样式、颜色、标签等属性,以展示数据的可视化效果。
为了实现用户拖动柱状图变化的功能,本实施例中,实时监听拖动被控控件的事件,即拖动事件;当用户拖动该被控控件时,可以及时的捕获到用户动作,从而捕获到相应的拖动事件,进而可以更新柱状图中柱状控件的尺寸,重新渲染柱状图,实现交互效果。其中,该被控控件的尺寸的变化方向,与捕获的拖动事件的移动方向相一致;例如,当用户向上拖动被控控件时,将被控控件的尺寸调整为更大值,当用户向下拖动被控控件时,将被控控件的尺寸调整为更小值。其中,也可以实时显示基准阈值的大小,以方便用户确定需要拖动到哪一位置,使用户操作更加直观和友好。
本实施例中,在用户拖动被控控件的过程中,通过监听相应的拖动事件,可以实时更新基准阈值,确保显示的基准阈值与用户操作保持同步,实现对用户操作的快速响应。通过显示被控控件,以及响应用户拖动被控控件的变化,可以为用户提供更加直观和交互性强的数据展示方式。
可选地,执行该方法的计算机设备,可以主动调整基准阈值,例如主动调整被控控件的尺寸,也可以通过接收远端的其他设备(例如客户端)等发送的指令,基于该指令调整基准阈值,实现用户从远端调整计算机设备的基准阈值。具体地,上述步骤S3022“响应于调整被控控件尺寸的调整操作,更新被控控件的尺寸”可以包括以下步骤E1至步骤E3。
步骤E1,获取远端设备发送的用于调整被控控件尺寸的调整指令;调整指令为远端设备通过响应调整被控控件尺寸的调整操作所生成的指令。
步骤E2,根据调整指令调整尺寸。
步骤E3,向远端设备反馈被控控件调整后的尺寸。
本实施例中,用户在需要调整计算机设备的基准阈值时,可以通过操作远端设备,改变基准阈值的大小。
具体地,用户可以通过远端设备向该计算机设备发送调整指令,该调整指令是远端设备通过响应调整被控控件尺寸的调整操作所生成的指令;例如,在远端设备侧,也可以显示相应的被控控件,用户通过操作远端设备输入相应的拖动操作,从而生成相应的调整指令,进而可以将该调整指令发送至计算机设备。
计算机设备接收到该调整指令后,可以解析调整指令中包含的操作信息,例如拖动柱状图的位置或数值等。计算机设备根据接收到的操作信息,可以对柱状图等被控控件的数据进行相应的处理,从而调整被控控件的尺寸,例如更新柱状图的位置或数值等。并且,计算机设备还可以将更新后的数据返回给远端设备;远端设备接收到计算机设备返回的更新后的数据后,即可在远端设备侧实时更新柱状图的显示,供用户查看。
本实施例中,用户通过远端设备,可以远程操作被控控件,实现对被控控件的远程控制和更新,可以远程更新基准阈值,实现更灵活和便捷地数据操作和展示方式。
步骤S303,在当前性能参数超出基准阈值的情况下,确定优化当前性能信息所需的目标设备参数。
详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S304,生成将待优化设备的设备参数优化至目标设备参数的优化源代码。
详细请参见图1所示实施例的步骤S104,在此不再赘述。
步骤S305,执行优化源代码,以对待优化设备进行性能优化。
详细请参见图1所示实施例的步骤S105,在此不再赘述。
在一些可选的实施方式中,上述步骤S305“执行优化源代码”可以包括以下步骤F1至步骤F3。
步骤F1,控制待优化设备的处理器运行于可切换的供电状态;该供电状态包括活跃状态和至少一种睡眠状态;活跃状态对应的设备参数高于睡眠状态对应的设备参数。
步骤F2,在待优化设备的处理器运行于睡眠状态的情况下,当处理器触发中断时,从睡眠状态切换至活跃状态。
步骤F3,在待优化设备的处理器运行于活跃状态的情况下,通过调整处理器的电压和/或频率,控制处理器运行于相应的性能状态;并且,在触发睡眠命令时,从活跃状态切换至相应的睡眠状态。
本实施例中,处理器可运行于多种供电状态,且多种供电状态之间是可切换的。其中,该供电状态包括活跃状态和至少一种睡眠状态,如图4所示,该供电状态包括活跃状态和三种睡眠状态,即睡眠状态1、睡眠状态2和睡眠状态3。
其中,活跃状态和睡眠状态均是一种供电状态,只是设备参数不同;具体地,当处理器运行于活跃状态时,其设备参数较高,例如处理器的电压、频率较高,以能够执行一定的处理任务;而在睡眠状态下,处理器的设备参数较低,例如处理器的电压、频率较低,以实现节能。其中,不同睡眠状态对应的节能效果不同。
当待优化设备的处理器运行于睡眠状态时,处理器可以低功耗运行;当处理器触发中断时,则会从相应的睡眠状态切换至活跃状态,以能够响应该中断。
当待优化设备的处理器运行于活跃状态时,可以通过触发相应的睡眠命令,以从活跃状态切换至相应的睡眠状态。如图4所示,触发睡眠命令1,可以切换至睡眠状态1;触发睡眠命令2,可以切换至睡眠状态2;触发睡眠命令3,可以切换至睡眠状态3。其中,不同的睡眠命令,可以是命令本身不同,或者也可以是发起命令的发起者不同,本实施例对此不作限定。
并且,在处理器运行于活跃状态时,该处理器具体可以运行于多种性能状态,如图4所示,处理器可运行于性能状态1,或者性能状态2。例如,不同的性能状态下,处理器的电压和/或频率不同,一般是频率不同。
或者,也可设置不同种类的性能状态;具体地,可以通过改变频率大小,调整处理器的性能状态;或者,改变全频工作的时间占比,以调整处理器的性能状态。例如,若处理器的频率为2.6GHz,可以将其频率设为1.3GHz,以运行于一种性能状态;或者,控制处理器在一半时间内以2.6GHz运行,另一半时间不运行,即调整处理器运行时间的占比,从而实现所需的性能状态。
可选地,该方法还可以包括:确定在执行优化源代码之后,待优化设备的性能指标;在待优化设备的性能指标符合要求的情况下,进行多轮性能优化;在优化设备的性能指标不符合要求的情况下,重新进行性能优化,并在性能优化的次数超过预设最大优化次数的情况下,生成报警消息。
本实施例中,在对待优化设备进行性能优化后,可以执行多轮性能优化,即多次执行上述步骤S301至步骤S306,根据持续监测的结果,不断进行优化和调整,以提高系统的性能和稳定性。并且,预先设置设定最大优化次数,例如最大调优断电次数,若当前的优化策略不能使得设备的性能指标符合要求,则也需要重新进行优化,且在优化次数超过该最大优化次数时,若仍然不能实现性能优化,则生成报警消息,以通知工程师人工解决。例如,设置最大调优断电次数为3次,若BIOS重启3次后,仍然未实现优化,则可确定自动调优失败,此时进行报错告警。
本实施例提供的性能优化方法,可以自动诊断设备状况,并实现自动调优,极大提高了对性能异常情况的处理调优效率,增加了调优响应力度;由AI代码代替人工编辑源代码,可以降低人力成本和降低调优成本,也可以增加调优效率。在获取待优化设备的当前性能参数时,判断是否开启预取功能,有针对性地进行监测,可以避免因开启预取功能而对监测造成影响,可以更真实地确定内存的单次时延。
在本实施例中还提供了一种性能优化装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种性能优化装置,应用于计算机设备,如图5所示,包括:
获取模块501,用于获取待优化设备在当前运行状态下的当前性能信息;所述当前性能信息包括所述待优化设备的当前性能参数;
处理模块502,用于确定与所述待优化设备的性能参数相对应的基准阈值,并判断所述当前性能参数是否超出相应的基准阈值;
参数确定模块503,用于在所述当前性能参数超出基准阈值的情况下,确定优化所述当前性能信息所需的目标设备参数;
代码生成模块504,用于生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码;
优化模块505,用于执行所述优化源代码,以对所述待优化设备进行性能优化。
在一些可选的实施方式中,所述处理模块502确定与所述待优化设备的性能参数相对应的基准阈值,包括:
显示与所述待优化设备的性能参数的基准阈值相对应的被控控件;所述被控控件的尺寸与所述性能参数的基准阈值的大小相一致;
响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸;
将所述被控控件调整后的尺寸所对应的基准阈值,作为所述性能参数的基准阈值。
在一些可选的实施方式中,所述处理模块502响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸,包括:
监听拖动所述被控控件的拖动事件;
响应于拖动所述被控控件的拖动操作,捕获相应的拖动事件;
根据捕获的拖动事件,实时更新所述被控控件的尺寸;所述被控控件的尺寸的变化方向,与捕获的拖动事件的移动方向相一致。
在一些可选的实施方式中,所述处理模块502响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸,包括:
获取远端设备发送的用于调整所述被控控件尺寸的调整指令;所述调整指令为所述远端设备通过响应调整所述被控控件尺寸的调整操作所生成的指令;
根据所述调整指令调整尺寸;
向所述远端设备反馈所述被控控件调整后的尺寸。
在一些可选的实施方式中,所述参数确定模块503确定优化所述当前性能信息所需的目标设备参数,包括:
将所述当前性能信息输入至训练好的策略模型,根据所述策略模型的输出结果得到能够优化所述当前性能信息的第一优化策略,所述第一优化策略包括目标设备参数。
在一些可选的实施方式中,所述策略模型基于预先确定的样本集训练得到;所述样本集包括:历史性能信息以及相应的历史优化策略;
所述样本集基于以下过程得到:
收集历史性能信息;
对所述历史性能信息进行分析,识别出存在的性能问题;
根据识别出的性能问题,确定相应的历史优化策略。
在一些可选的实施方式中,所述根据识别出的性能问题,确定相应的历史优化策略,包括:
根据识别出的性能问题,确定多种待定优化策略;
按照所述待定优化策略对设备进行性能优化,并对优化后的设备进行性能测试,确定性能指标;
比较不同所述待定优化策略的性能指标,选出最优的待定优化策略作为历史优化策略。
在一些可选的实施方式中,所述当前性能信息还包括当前性能模式,所述第一优化策略还包括目标性能模式;
所述优化模块505还用于:在所述当前性能模式与所述目标性能模式不同的情况下,将所述待优化设备的性能模式调整为所述目标性能模式。
在一些可选的实施方式中,在所述目标性能模式为搭配模式的情况下,所述优化模块505执行所述优化源代码,包括:
在所述待优化设备的业务量超过预设阈值的情况下,释放所述待优化设备的冗余空间,并对所述待优化设备的处理器进行加压;
和/或,在所述待优化设备空闲的情况下,隔离所述待优化设备的部分空间,基于所述部分空间对所述策略模型进行仿真训练。
在一些可选的实施方式中,所述优化模块505释放所述待优化设备的冗余空间,包括:
确定所述待优化设备中线程的优先级,以及存储非热点数据的存储空间;
将优先级小于预设优先级阈值的线程调整为休眠状态,并释放至少部分所述存储空间。
在一些可选的实施方式中,所述参数确定模块503确定优化所述当前性能信息所需的目标设备参数,还包括:
确定预先建立的策略集;所述策略集包括多种性能信息与优化策略之间的关联关系;
在所述当前性能信息存在于所述策略集的情况下,根据所述策略集确定与所述当前性能信息具有关联关系的第二优化策略,所述第二优化策略包括目标设备参数;
在所述当前性能信息不存在于所述策略集的情况下,执行将所述当前性能信息输入至训练好的策略模型的步骤。
在一些可选的实施方式中,所述代码生成模块504生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码,包括:
根据训练好的代码模型,确定对所述待优化设备进行性能优化所需的源代码;
根据所述目标设备参数对所述所需的源代码进行补全,生成优化源代码。
在一些可选的实施方式中,所述代码模型基于预先确定的编辑序列数据集得到;
所述编辑序列数据集包括:不同优化策略所对应的样本源代码。
在一些可选的实施方式中,所述处理模块502确定与所述待优化设备的性能参数相对应的基准阈值,包括:
执行所述编辑序列数据集中的样本源代码,确定相应的性能参数;
对多个所述样本源代码的性能参数进行统计,并对所述性能参数的统计结果进行外扩,生成所述性能参数的基准阈值。
在一些可选的实施方式中,所述优化模块505执行所述优化源代码,包括:
控制所述待优化设备的处理器运行于可切换的供电状态;所述供电状态包括活跃状态和至少一种睡眠状态;所述活跃状态对应的设备参数高于所述睡眠状态对应的设备参数;
在所述待优化设备的处理器运行于所述睡眠状态的情况下,当所述处理器触发中断时,从所述睡眠状态切换至所述活跃状态;
在所述待优化设备的处理器运行于所述活跃状态的情况下,通过调整所述处理器的电压和/或频率,控制所述处理器运行于相应的性能状态;并且,在触发睡眠命令时,从所述活跃状态切换至相应的睡眠状态。
在一些可选的实施方式中,所述获取模块501获取待优化设备在当前运行状态下的当前性能信息,包括:
判断所述待优化设备是否开启预取功能;
在开启预取功能的情况下,通过对非连续地址的数据执行读写操作,进行性能测试,确定所述待优化设备的当前性能参数。
在一些可选的实施方式中,所述获取模块501判断所述待优化设备是否开启预取功能,包括:
对第一数据执行复制操作,并确定执行所述复制操作的第一时延;所述复制操作为从第一存储单元中读取所述第一数据,并将所述第一数据复制写入其他存储单元;
对第一数据执行乘法操作,并确定执行所述乘法操作的第二时延;所述乘法操作为从第一存储单元中读取所述第一数据,将所述第一数据与常数相乘,并将相乘结果写入其他存储单元;
对第一数据和第二数据执行加法操作,并确定执行所述加法操作的第三时延;所述加法操作为从第一存储单元中读取所述第一数据,并从第二存储单元中读取所述第二数据,将所述第一数据与所述第二数据相加,并将相加结果写入其他存储单元;
对第一数据和第二数据执行组合操作,并确定执行所述组合操作的第四时延;所述组合操作为从第一存储单元中读取所述第一数据,并从第二存储单元中读取所述第二数据,将所述第一数据与常数相乘,并将相乘结果与所述第二数据相加,之后将最终的相加结果写入其他存储单元;
确定第一比值和第二比值;所述第一比值为第一差值与所述第一时延或所述第二时延之间的比值,所述第二比值为第二差值与所述第三时延或所述第四时延之间的比值;所述第一差值为所述第二时延与所述第一时延之差,所述第二差值为所述第四时延与所述第三时延之差;
在所述第一比值和所述第二比值均大于第一阈值,或者所述第一比值与所述第二比值之差大于第二阈值的情况下,确定所述待优化设备开启预取功能。
在一些可选的实施方式中,优化模块505还用于:
确定在执行所述优化源代码之后,所述待优化设备的性能指标;
在所述待优化设备的性能指标符合要求的情况下,进行多轮性能优化;
在所述优化设备的性能指标不符合要求的情况下,重新进行性能优化,并在性能优化的次数超过预设最大优化次数的情况下,生成报警消息。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的性能优化装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图5所示的性能优化装置。
请参阅图6,图6是本发明可选实施例提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (19)
1.一种性能优化方法,其特征在于,应用于计算机设备,所述方法包括:
获取待优化设备在当前运行状态下的当前性能信息;所述当前性能信息包括所述待优化设备的当前性能参数;
确定与所述待优化设备的性能参数相对应的基准阈值,并判断所述当前性能参数是否超出相应的基准阈值;
在所述当前性能参数超出基准阈值的情况下,确定优化所述当前性能信息所需的目标设备参数;
生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码;
执行所述优化源代码,以对所述待优化设备进行性能优化;
其中,所述确定优化所述当前性能信息所需的目标设备参数,包括:
将所述当前性能信息输入至训练好的策略模型,根据所述策略模型的输出结果得到能够优化所述当前性能信息的第一优化策略,所述第一优化策略包括目标设备参数;
所述策略模型基于预先确定的样本集训练得到;所述样本集包括:历史性能信息以及相应的历史优化策略;
所述样本集基于以下过程得到:
收集历史性能信息;
对所述历史性能信息进行分析,识别出存在的性能问题;
根据识别出的性能问题,确定相应的历史优化策略。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述待优化设备的性能参数相对应的基准阈值,包括:
显示与所述待优化设备的性能参数的基准阈值相对应的被控控件;所述被控控件的尺寸与所述性能参数的基准阈值的大小相一致;
响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸;
将所述被控控件调整后的尺寸所对应的基准阈值,作为所述性能参数的基准阈值。
3.根据权利要求2所述的方法,其特征在于,所述响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸,包括:
监听拖动所述被控控件的拖动事件;
响应于拖动所述被控控件的拖动操作,捕获相应的拖动事件;
根据捕获的拖动事件,实时更新所述被控控件的尺寸;所述被控控件的尺寸的变化方向,与捕获的拖动事件的移动方向相一致。
4.根据权利要求2所述的方法,其特征在于,所述响应于调整所述被控控件尺寸的调整操作,更新所述被控控件的尺寸,包括:
获取远端设备发送的用于调整所述被控控件尺寸的调整指令;所述调整指令为所述远端设备通过响应调整所述被控控件尺寸的调整操作所生成的指令;
根据所述调整指令调整尺寸;
向所述远端设备反馈所述被控控件调整后的尺寸。
5.根据权利要求1所述的方法,其特征在于,所述根据识别出的性能问题,确定相应的历史优化策略,包括:
根据识别出的性能问题,确定多种待定优化策略;
按照所述待定优化策略对设备进行性能优化,并对优化后的设备进行性能测试,确定性能指标;
比较不同所述待定优化策略的性能指标,选出最优的待定优化策略作为历史优化策略。
6.根据权利要求1所述的方法,其特征在于,所述当前性能信息还包括当前性能模式,所述第一优化策略还包括目标性能模式;
所述方法还包括:
在所述当前性能模式与所述目标性能模式不同的情况下,将所述待优化设备的性能模式调整为所述目标性能模式。
7.根据权利要求6所述的方法,其特征在于,在所述目标性能模式为搭配模式的情况下,所述执行所述优化源代码,包括:
在所述待优化设备的业务量超过预设阈值的情况下,释放所述待优化设备的冗余空间,并对所述待优化设备的处理器进行加压;
和/或,在所述待优化设备空闲的情况下,隔离所述待优化设备的部分空间,基于所述部分空间对所述策略模型进行仿真训练。
8.根据权利要求7所述的方法,其特征在于,所述释放所述待优化设备的冗余空间,包括:
确定所述待优化设备中线程的优先级,以及存储非热点数据的存储空间;
将优先级小于预设优先级阈值的线程调整为休眠状态,并释放至少部分所述存储空间。
9.根据权利要求1所述的方法,其特征在于,所述确定优化所述当前性能信息所需的目标设备参数,还包括:
确定预先建立的策略集;所述策略集包括多种性能信息与优化策略之间的关联关系;
在所述当前性能信息存在于所述策略集的情况下,根据所述策略集确定与所述当前性能信息具有关联关系的第二优化策略,所述第二优化策略包括目标设备参数;
在所述当前性能信息不存在于所述策略集的情况下,执行将所述当前性能信息输入至训练好的策略模型的步骤。
10.根据权利要求1所述的方法,其特征在于,所述生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码,包括:
根据训练好的代码模型,确定对所述待优化设备进行性能优化所需的源代码;
根据所述目标设备参数对所述所需的源代码进行补全,生成优化源代码。
11.根据权利要求10所述的方法,其特征在于,所述代码模型基于预先确定的编辑序列数据集得到;
所述编辑序列数据集包括:不同优化策略所对应的样本源代码。
12.根据权利要求11所述的方法,其特征在于,所述确定与所述待优化设备的性能参数相对应的基准阈值,包括:
执行所述编辑序列数据集中的样本源代码,确定相应的性能参数;
对多个所述样本源代码的性能参数进行统计,并对所述性能参数的统计结果进行外扩,生成所述性能参数的基准阈值。
13.根据权利要求1所述的方法,其特征在于,所述执行所述优化源代码,包括:
控制所述待优化设备的处理器运行于可切换的供电状态;所述供电状态包括活跃状态和至少一种睡眠状态;所述活跃状态对应的设备参数高于所述睡眠状态对应的设备参数;
在所述待优化设备的处理器运行于所述睡眠状态的情况下,当所述处理器触发中断时,从所述睡眠状态切换至所述活跃状态;
在所述待优化设备的处理器运行于所述活跃状态的情况下,通过调整所述处理器的电压和/或频率,控制所述处理器运行于相应的性能状态;并且,在触发睡眠命令时,从所述活跃状态切换至相应的睡眠状态。
14.根据权利要求1所述的方法,其特征在于,所述获取待优化设备在当前运行状态下的当前性能信息,包括:
判断所述待优化设备是否开启预取功能;
在开启预取功能的情况下,通过对非连续地址的数据执行读写操作,进行性能测试,确定所述待优化设备的当前性能参数。
15.根据权利要求14所述的方法,其特征在于,所述判断所述待优化设备是否开启预取功能,包括:
对第一数据执行复制操作,并确定执行所述复制操作的第一时延;所述复制操作为从第一存储单元中读取所述第一数据,并将所述第一数据复制写入其他存储单元;
对第一数据执行乘法操作,并确定执行所述乘法操作的第二时延;所述乘法操作为从第一存储单元中读取所述第一数据,将所述第一数据与常数相乘,并将相乘结果写入其他存储单元;
对第一数据和第二数据执行加法操作,并确定执行所述加法操作的第三时延;所述加法操作为从第一存储单元中读取所述第一数据,并从第二存储单元中读取所述第二数据,将所述第一数据与所述第二数据相加,并将相加结果写入其他存储单元;
对第一数据和第二数据执行组合操作,并确定执行所述组合操作的第四时延;所述组合操作为从第一存储单元中读取所述第一数据,并从第二存储单元中读取所述第二数据,将所述第一数据与常数相乘,并将相乘结果与所述第二数据相加,之后将最终的相加结果写入其他存储单元;
确定第一比值和第二比值;所述第一比值为第一差值与所述第一时延或所述第二时延之间的比值,所述第二比值为第二差值与所述第三时延或所述第四时延之间的比值;所述第一差值为所述第二时延与所述第一时延之差,所述第二差值为所述第四时延与所述第三时延之差;
在所述第一比值和所述第二比值均大于第一阈值,或者所述第一比值与所述第二比值之差大于第二阈值的情况下,确定所述待优化设备开启预取功能。
16.根据权利要求1所述的方法,其特征在于,还包括:
确定在执行所述优化源代码之后,所述待优化设备的性能指标;
在所述待优化设备的性能指标符合要求的情况下,进行多轮性能优化;
在所述优化设备的性能指标不符合要求的情况下,重新进行性能优化,并在性能优化的次数超过预设最大优化次数的情况下,生成报警消息。
17.一种性能优化装置,其特征在于,应用于计算机设备,所述装置包括:
获取模块,用于获取待优化设备在当前运行状态下的当前性能信息;所述当前性能信息包括所述待优化设备的当前性能参数;
处理模块,用于确定与所述待优化设备的性能参数相对应的基准阈值,并判断所述当前性能参数是否超出相应的基准阈值;
参数确定模块,用于在所述当前性能参数超出基准阈值的情况下,确定优化所述当前性能信息所需的目标设备参数;
代码生成模块,用于生成将所述待优化设备的设备参数优化至所述目标设备参数的优化源代码;
优化模块,用于执行所述优化源代码,以对所述待优化设备进行性能优化;
其中,所述参数确定模块确定优化所述当前性能信息所需的目标设备参数,包括:
将所述当前性能信息输入至训练好的策略模型,根据所述策略模型的输出结果得到能够优化所述当前性能信息的第一优化策略,所述第一优化策略包括目标设备参数;
所述策略模型基于预先确定的样本集训练得到;所述样本集包括:历史性能信息以及相应的历史优化策略;
所述样本集基于以下过程得到:
收集历史性能信息;
对所述历史性能信息进行分析,识别出存在的性能问题;
根据识别出的性能问题,确定相应的历史优化策略。
18.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至16中任一项所述的性能优化方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至16中任一项所述的性能优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410276731.2A CN117908902B (zh) | 2024-03-12 | 2024-03-12 | 性能优化方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410276731.2A CN117908902B (zh) | 2024-03-12 | 2024-03-12 | 性能优化方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117908902A CN117908902A (zh) | 2024-04-19 |
CN117908902B true CN117908902B (zh) | 2024-06-07 |
Family
ID=90684165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410276731.2A Active CN117908902B (zh) | 2024-03-12 | 2024-03-12 | 性能优化方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117908902B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005073851A2 (fr) * | 2004-01-14 | 2005-08-11 | Commissariat A L'energie Atomique | Systeme de generation automatique de codes optimises |
CN110727437A (zh) * | 2019-09-10 | 2020-01-24 | 平安普惠企业管理有限公司 | 代码优化项获取方法、装置、存储介质及电子设备 |
CN113064879A (zh) * | 2021-03-12 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 数据库参数调整方法、装置及计算机可读存储介质 |
CN113676370A (zh) * | 2021-07-22 | 2021-11-19 | 浪潮商用机器有限公司 | 一种系统网络性能监测方法、装置、系统及存储介质 |
CN114356893A (zh) * | 2022-01-11 | 2022-04-15 | 平安科技(深圳)有限公司 | 基于机器学习的元数据调优方法、装置、设备及存储介质 |
CN115878171A (zh) * | 2022-12-06 | 2023-03-31 | 中移动信息技术有限公司 | 中间件配置的优化方法、装置、设备及计算机存储介质 |
CN116684903A (zh) * | 2023-07-04 | 2023-09-01 | 中国联合网络通信集团有限公司 | 小区参数处理方法、装置、设备及存储介质 |
-
2024
- 2024-03-12 CN CN202410276731.2A patent/CN117908902B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005073851A2 (fr) * | 2004-01-14 | 2005-08-11 | Commissariat A L'energie Atomique | Systeme de generation automatique de codes optimises |
CN110727437A (zh) * | 2019-09-10 | 2020-01-24 | 平安普惠企业管理有限公司 | 代码优化项获取方法、装置、存储介质及电子设备 |
CN113064879A (zh) * | 2021-03-12 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 数据库参数调整方法、装置及计算机可读存储介质 |
CN113676370A (zh) * | 2021-07-22 | 2021-11-19 | 浪潮商用机器有限公司 | 一种系统网络性能监测方法、装置、系统及存储介质 |
CN114356893A (zh) * | 2022-01-11 | 2022-04-15 | 平安科技(深圳)有限公司 | 基于机器学习的元数据调优方法、装置、设备及存储介质 |
CN115878171A (zh) * | 2022-12-06 | 2023-03-31 | 中移动信息技术有限公司 | 中间件配置的优化方法、装置、设备及计算机存储介质 |
CN116684903A (zh) * | 2023-07-04 | 2023-09-01 | 中国联合网络通信集团有限公司 | 小区参数处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117908902A (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rzadca et al. | Autopilot: workload autoscaling at google | |
US10841181B2 (en) | Monitoring and auto-correction systems and methods for microservices | |
US11429181B2 (en) | Techniques for self-tuning of computing systems | |
US8527997B2 (en) | Energy-aware job scheduling for cluster environments | |
US7308591B2 (en) | Power management of multi-processor servers | |
US20100185883A1 (en) | Power management for large memory subsystems | |
US10331191B2 (en) | Program and data annotation for hardware customization and energy optimization | |
TW201346507A (zh) | 根據處理器的使用動態修改電力/效能權衡的技術 | |
US9268609B2 (en) | Application thread to cache assignment | |
US20210367868A1 (en) | Intelligent serverless function scaling | |
CN105302641A (zh) | 虚拟化集群中进行节点调度的方法及装置 | |
Yu et al. | System-wide trade-off modeling of performance, power, and resilience on petascale systems | |
US8938634B2 (en) | User generated data center power savings | |
US10114438B2 (en) | Dynamic power budgeting in a chassis | |
CN108574600B (zh) | 云计算服务器的功耗和资源竞争协同控制的服务质量保障方法 | |
CN117908902B (zh) | 性能优化方法、装置、计算机设备及存储介质 | |
US20220334906A1 (en) | Multimodal user experience degradation detection | |
CN115934309A (zh) | 用于核心特定度量收集的技术 | |
CN116088662A (zh) | 功耗管理方法、多处理单元系统和功耗管理模组 | |
Crk et al. | {Context-Aware} Mechanisms for Reducing Interactive Delays of Energy Management in Disks | |
US20230418688A1 (en) | Energy efficient computing workload placement | |
CN117312100B (zh) | 一种功耗调整方法、系统、装置、设备及计算机存储介质 | |
CN117743127B (zh) | 笔记本电脑的功耗数据分析方法及系统 | |
CN113625956B (zh) | Raid卡的缓存设置方法、装置、电子设备及存储介质 | |
US11900164B2 (en) | Intelligent query planning for metric gateway |
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 |