一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

JVM内存配置量化方法、系统、电子设备及存储介质与流程

2022-06-01 02:09:01 来源:中国专利 TAG:

jvm内存配置量化方法、系统、电子设备及存储介质
技术领域
1.本公开涉及虚拟化技术领域,尤其涉及一种jvm内存配置量化方法、系统、电子设备及存储介质。


背景技术:

2.随着b/s模式系统大量应用以及云时代的到来,服务器的性能要求以及承压要求越来越高,从而导致系统消耗的硬件资源成本也逐步上升。
3.目前,主要通过人工压测到系统上限,然后人工估算得出结论,确定系统内存配置,从而达到在保证系统稳定的情况下,使用最小成本资源的效果。但在发明人实施本公开实施例的过程中发现,压测过程通常受各种环境因素(压测过程中人为设置的参数之外的因素,例如网络波动)影响,往往无法拿到准确的压测结果,加之人工估算通常比较保守,导致内存配置评估不准,进而造成资源有大量的浪费。


技术实现要素:

4.有鉴于此,本公开实施例提供了一种jvm内存配置量化方法、系统、电子设备及存储介质,至少部分的解决现有技术中存在的内存配置评估的不准的问题。
5.第一方面,本公开实施例提供了一种jvm内存配置量化方法,该jvm内存配置量化方法包括:
6.以多个系统并发数作为并发数样本值x,对jvm进行多次压测;
7.获取每个所述并发数样本值x压测过程中的线程数样本值z;
8.根据线程数样本值z,计算内存配置样本值y;
9.基于内存配置样本值y和并发数样本值x,建立内存配置数yt和系统并发数xt之间的相关模型;
10.根据所述相关模型,计算实际场景下的内存配置。
11.可选地,针对每个所述并发数样本值x进行多次压测时,所述获取每个所述并发数样本值x压测过程中的线程数样本值z包括:
12.获取所述并发数样本值x在多次压测过程中的jvm堆栈信息;
13.从各所述jvm堆栈信息中获取线程数;
14.对获取的所有线程数进行统计分析,确定所述并发数样本值x对应的线程数样本值z。
15.可选地,所述根据线程数样本值z,计算内存配置样本值y包括:
16.根据线程数样本值z通过以下公式计算内存配置样本值y:
17.y=z*线程内存配置 最大内存配置。
18.可选地,所述jvm内存配置量化方法还包括:在以多个系统并发数作为并发数样本值x,对jvm进行多次压测之前的以下步骤:
19.获取jvm的基础配置信息;
20.判断所述基础配置信息中是否包括最大内存配置;
21.若包括,则从所述基础配置信息中提取最大内存配置;
22.判断所述基础配置信息中是否包括线程内存配置;
23.若包括,则从所述基础配置信息中提取线程内存配置。
24.可选地,若所述基础配置信息未包括最大内存配置,则选择对应的默认值作为最大内存配置;若所述基础配置信息未包括线性内存配置,则选择对应的默认值作为线性内存配置。
25.可选地,所述相关模型为线性模型yt=α βxt;其中,α和β为回归系数。
26.可选地,对所述线性模型利用最小二乘线性方程进行回归,计算得到α和β的值。
27.第二方面,本公开实施例提供了一种jvm内存配置量化系统,该jvm内存配置量化系统包括:
28.压测模块,用于以多个系统并发数作为并发数样本值x,对jvm进行多次压测;
29.第一获取模块,用于获取每个所述并发数样本值x压测过程中的线程数样本值z;
30.第一计算模块,用于根据线程数样本值z,计算内存配置样本值y;
31.模型建立模块,用于基于内存配置样本值y和并发数样本值x,建立内存配置数yt和系统并发数xt之间的相关模型;
32.第二计算模块,用于根据所述相关模型,计算实际场景下的内存配置。
33.第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
34.至少一个处理器;以及,
35.与所述至少一个处理器通信连接的存储器;其中,
36.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上任一所述的jvm内存配置量化方法。
37.第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行以上任一所述的jvm内存配置量化方法。
38.本公开实施例提供的jvm内存配置量化方法、系统、电子设备及存储介质,在该jvm内存配置量化方法的应用过程中,先使用多个系统并发数作为并发数样本值x,对jvm进行多次压测,然后获取每个并发数样本值x压测过程中的线程数样本值z,再根据线程数样本值z,计算内存配置样本值y,最后基于内存配置样本值y和并发数样本值x,建立内存配置数yt和系统并发数xt之间的相关模型,最后根据相关模型,计算实际场景下的内存配置。在以上过程中,线程数样本值z是实际采集的客观数据,基于其计算得到的内存配置样本值y也是客观的,构建的相关模型也是客观的,以上三者都不会受各种环境因素影响,因此,使用其计算得到的实际场景下的内存配置也是客观的,避免了现有技术中的主观判断,至少部分的解决现有技术中存在的内存配置评估的不准的问题,能够有效避免资源的大量浪费,进而为企业节约运维成本。
39.上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
40.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
41.图1为本公开实施例提供的jvm内存配置量化方法的流程图一;
42.图2为本公开实施例提供的步骤s2的具体流程图;
43.图3为本公开实施例提供的jvm内存配置量化方法的流程图二;
44.图4为本公开实施例提供的一种jvm内存配置量化系统的原理框图;
45.图5为本公开实施例提供的电子设备的原理框图。
具体实施方式
46.下面结合附图对本公开实施例进行详细描述。
47.应当明确,以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
48.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
49.还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
50.另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
51.本公开实施例提供了一种jvm(java virtual machine,java虚拟机)内存配置量化方法,该方法的执行主体是可以笔记本电脑、平板电脑、台式电脑、掌上电脑等任意可以安装宿主系统的宿主机,其中,宿主系统可以理解为物理宿主机上直接安装操作系统并使用的系统。可选地,该宿主系统的系统类型可以包括但不限于:unix操作系统、linux操作系统、windows操作系统、vms操作系统等,在此不作限定。
52.具体地,如图1所示,图1为本公开实施例提供的jvm内存配置量化方法的流程图一,该jvm内存配置量化方法包括:
53.步骤s1、以多个系统并发数作为并发数样本值x,对jvm进行多次压测。
54.上述多个系统并发数可以根据实际需要进行选择,例如,以系统并发数1~1000作为并发数样本值x,即并发数样本值x可取遍1~1000中的每个数值。
55.以多个系统并发数作为并发数样本值x,对jvm进行多次压测的具体方式可以有多种,本领域技术人员可以基于实际需要对具体方式进行合理选择。例如,针对并发数样本值x的每个取值,均对jvm进行一次压测,或者,针对并发数样本值x的每个取值,分别进行多次压测,不同取值对应的压测次数可以相同也可以不同。
56.示例性地,本公开实施例中选择针对并发数样本值x的每个取值,分别进行多次压测,从而可进一步降低各类无关的环境因素导致的压测结果误差,使得后续得到的相关模型的准确度更高。
57.步骤s2、获取每个并发数样本值x压测过程中的线程数样本值z。
58.可选地,针对并发数样本值x的每个取值,均对jvm进行一次压测时,则该次压测过程中的线程数直接作为线程数样本值z即可。该线程数可以从jvm堆栈信息中获取。
59.可选地,针对每个并发数样本值x进行多次压测时,如图2所示,图2为本公开实施例提供的步骤s2的具体流程图,获取每个并发数样本值x压测过程中的线程数样本值z包括:
60.子步骤s21、获取并发数样本值x在多次压测过程中的jvm堆栈信息。
61.必然可以理解的是,此处“多次压测过程”指的是针对同一个并发数样本值x进行多次压测的过程。示例性地,压测过程中利用命令“jstack-l pid》文件名”将jvm堆栈信息导出。
62.子步骤s22、从各jvm堆栈信息中获取线程数。
63.示例性地,在jvm堆栈信息中搜索关键字“thread.state”,得出的“thread.state”的数量就是线程数。
64.在子步骤s21和子步骤s22中,获取jvm堆栈信息和获取线程数的工作量较大,可以通过shell脚本等自动化方法来实现。
65.子步骤s23、对获取的所有线程数进行统计分析,确定并发数样本值x对应的线程数样本值z。
66.示例性地,对获取的所有线程数进行统计分析获得统计数据,如平均数、众数、最大值等,以该统计数据作为并发数样本值x对应的线程数样本值z。
67.可选地,取获取的所有线程数中的众数作为并发数样本值x对应的线程数样本值z。例如,压测次数为5时,获取5次压测过程中的jvm堆栈信息,从各jvm堆栈信息中共获取5个线程数,取5个线程数中的众数作为线程数样本值z。需要说明的是,以上压测次数仅为举例,在实际应用过程中,若在预设压测次数中未得到众数,则可增加压测次数,直到得到众数为止。
68.步骤s3、根据线程数样本值z,计算内存配置样本值y。
69.可选地,根据线程数样本值z通过以下公式计算内存配置样本值y:
70.y=z*线程内存配置 最大内存配置。
71.其中,z*线程内存配置得到的是z个线程并发时栈占据的内存,最大内存配置是堆占据的内存,二者之和为占据的总内存,即内存配置样本值y。线程内存配置和最大内存配
置可以通过多种方式获得,本领域技术人员可以根据实际需要进行选择。示例性地,如图3所示,图3为本公开实施例提供的jvm内存配置量化方法的流程图二,该jvm内存配置量化方法还包括:在以多个系统并发数作为并发数样本值x,对jvm进行多次压测之前的以下步骤:
72.步骤s01、获取jvm的基础配置信息。
73.示例性地,使用jvm命令“jinfo-flags pid”,获取jvm的基础配置信息。
74.步骤s02、判断基础配置信息中是否包括最大内存配置(maxheapsize)。
75.若包括,则执行步骤s03。最大内存配置指的是jvm可申请的最大heap(堆)值,默认值为物理内存的1/4但小于1g。
76.步骤s03、从基础配置信息中提取最大内存配置。
77.步骤s04、判断基础配置信息中是否包括线程内存配置(-xss)。
78.若包括,则执行步骤s05。线程内存配置指的是java每个线程的stack(栈)大小。
79.步骤s05、从基础配置信息中提取线程内存配置。
80.由于在上述过程中,最大内存配置和线程内存配置均是从直接采集的基础配置信息中提取的,因此,可以适用于各类场景,通用性强。
81.可选地,若基础配置信息未包括最大内存配置,则选择对应的默认值作为最大内存配置。类似地,若基础配置信息未包括线性内存配置,则选择对应的默认值作为线性内存配置。
82.其中,步骤s02和步骤s03,与步骤s04和步骤s05的先后顺序不进行限定,即对提取最大内存配置和线程内存配置的先后顺序不进行限定。
83.步骤s4、基于内存配置样本值y和并发数样本值x,建立内存配置数yt和系统并发数xt之间的相关模型。
84.其中相关模型的具体形式可以有多种,线性模型或者非线性模型等均可,具体可以根据内存配置样本值y和并发数样本值x的数据情况进行选择,以尽可能选择更加精确的相关模型。可选地,本公开实施例中选择相关模型为线性模型yt=α βxt;其中,α和β为回归系数。本公开实施例中可以通过对线性模型利用最小二乘线性(ols)方程进行回归,计算得到α和β的值。将计算得到的α和β的值代入以上线性模型,即可得到基于系统并发数xt,计算内存配置数yt的标准公式。
85.步骤s5、根据相关模型,计算实际场景下的内存配置。
86.在上述该jvm内存配置量化方法的应用过程中,先使用多个系统并发数作为并发数样本值x,对jvm进行多次压测,然后获取每个并发数样本值x压测过程中的线程数样本值z,再根据线程数样本值z,计算内存配置样本值y,最后基于内存配置样本值y和并发数样本值x,建立内存配置数yt和系统并发数xt之间的相关模型,最后根据相关模型,计算实际场景下的内存配置。在以上过程中,线程数样本值z是实际采集的客观数据,基于其计算得到的内存配置样本值y也是客观的,构建的相关模型也是客观的,以上三者都不会受各种环境因素影响,因此,使用其计算得到的实际场景下的内存配置也是客观的,避免了现有技术中的主观判断,至少部分的解决现有技术中存在的内存配置评估的不准的问题,能够有效避免资源的大量浪费,进而为企业节约运维成本。
87.此外,本公开实施例还提供了一种jvm内存配置量化系统,如图4所示,图4为本公开实施例提供的jvm内存配置量化系统的原理框图,该jvm内存配置量化系统包括:
88.压测模块10,用于以多个系统并发数作为并发数样本值x,对jvm进行多次压测;
89.第一获取模块20,用于获取每个并发数样本值x压测过程中的线程数样本值z;
90.第一计算模块30,用于根据线程数样本值z,计算内存配置样本值y;
91.模型建立模块40,用于基于内存配置样本值y和并发数样本值x,建立内存配置数yt和系统并发数xt之间的相关模型;
92.第二计算模块50,用于根据相关模型,计算实际场景下的内存配置。
93.可选地,本公开实施例中的jvm内存配置量化系统还包括:第二获取模块、判断模块和提取模块。其中,第二获取模块用于在以多个系统并发数作为并发数样本值x,对jvm进行多次压测之前,获取jvm的基础配置信息;判断模块用于判断基础配置信息中是否包括最大内存配置,以及,判断基础配置信息中是否包括线程内存配置;提取模块用于在基础配置信息中包括最大内存配置时,从基础配置信息中提取最大内存配置,以及,在基础配置信息中包括线程内存配置时,从基础配置信息中提取线程内存配置。
94.可选地,本公开实施例中的jvm内存配置量化系统还包括选择模块,用于在基础配置信息未包括最大内存配置时,选择对应的默认值作为最大内存配置,以及,在基础配置信息未包括线性内存配置时,选择对应的默认值作为线性内存配置。
95.需要说明的是,本公开实施例中,jvm内存配置量化方法的相关细节均适用于jvm内存配置量化系统的相应模块,此处不再进行赘述。
96.此外,本公开实施例还提供了一种电子设备,该电子设备包括:
97.至少一个处理器;以及,
98.与至少一个处理器通信连接的存储器;其中,
99.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行以上任一的jvm内存配置量化方法。
100.该存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。
101.该处理器可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器用于运行该存储器中存储的该计算机可读指令,使得该电子设备执行前述的本公开各实施例的jvm内存配置量化方法的全部或部分步骤。
102.本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。
103.如图5为本公开实施例提供的电子设备的结构示意图。其示出了适于用来实现本公开实施例中的电子设备的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
104.如图5所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(rom)中的程序或者从存储装置加载到随机访问存储器(ram)中
的程序而执行各种适当的动作和处理。在ram中,还存储有电子设备操作所需的各种程序和数据。处理装置、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。
105.通常,以下装置可以连接至i/o接口:包括例如传感器或者视觉信息采集设备等的输入装置;包括例如显示屏等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备(比如边缘计算设备)进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
106.此外,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行以上任一的jvm内存配置量化方法。
107.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本公开实施例的jvm内存配置量化方法的全部或部分步骤。
108.有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
109.根据本公开实施例的计算机可读存储介质,其上存储有非暂时性计算机可读指令。当该非暂时性计算机可读指令由处理器运行时,执行前述的本公开各实施例的jvm内存配置量化方法的全部或部分步骤。
110.上述计算机可读存储介质包括但不限于:光存储介质(例如:cd-rom和dvd)、磁光存储介质(例如:mo)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置rom的媒体(例如:rom盒)。
111.有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
112.以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
113.在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
114.另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“a、b或c的至少一个”的列举意味着a或b或c,或ab或ac或bc,或abc(即a和b和c)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
115.还需要指出的是,在本公开的系统和方法中,各部件或各步骤是可以分解和/或重
新组合的。这些分解和/或重新组合应视为本公开的等效方案。
116.可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
117.提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
118.为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献