CN116700903B - 面向云计算的虚拟机的内存调节方法、系统、设备及介质 - Google Patents
面向云计算的虚拟机的内存调节方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116700903B CN116700903B CN202310986962.8A CN202310986962A CN116700903B CN 116700903 B CN116700903 B CN 116700903B CN 202310986962 A CN202310986962 A CN 202310986962A CN 116700903 B CN116700903 B CN 116700903B
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual machine
- duty ratio
- remote
- virtual
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 900
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000000694 effects Effects 0.000 claims abstract description 91
- 238000009499 grossing Methods 0.000 claims description 36
- 238000012544 monitoring process Methods 0.000 claims description 16
- 230000003446 memory effect Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003321 amplification Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000008602 contraction Effects 0.000 claims description 4
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 4
- 238000007619 statistical method Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 claims description 2
- 230000003750 conditioning effect Effects 0.000 claims 1
- 230000001276 controlling effect Effects 0.000 claims 1
- 230000001105 regulatory effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种面向云计算的虚拟机的内存调节方法、系统、设备及介质,属于计算机技术领域,所述方法步骤如下:预先配置虚拟机和内存参数,启动虚拟机;读取虚拟机内存使用情况,计算各虚拟机内存空闲占比;计算各虚拟机内存访问活跃度及平均内存访问活跃度;根据虚拟机的内存空闲占比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配。本发明基于虚拟机内存访问活跃度、内存分配空间以及内存空闲占比动态调整多虚拟机的本地和远程内存,充分利用本机本地内存资源和远程内存资源,保证系统资源利用率和虚拟机的系统性能。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种面向云计算的虚拟机的内存调节方法、系统、设备及介质。
背景技术
作为云计算基础的虚拟化技术,因在资源管理、服务器整合和提高资源利用率等方面作用比较大,已经应用到各种应用场景。作为计算机系统重要部件的内存,其大小和访问速度影响计算机系统性能,所以对内存的虚拟化处理和配置也比较关键。虚拟机的内存需求是动态变化的,但为虚拟机分配的内存空间是静态的,经常会出现内存空间分配较小,影响系统性能,也会出现内存空间分配过大,内存资源利用率低。现有在服务器整体内存不足时还会使用其他节点的远程内存,如何对内存进行高效的自动化调节,从而在现有内存资源基础上对虚拟机本地内存和远程内存进行自动分配,是急需解决的问题,对于保障系统的性能非常重要。
当前主流内存分配方案一种是传统的由管理员静态设置每个虚拟机的内存大小,此种方式不能实时动态地调整各虚拟机的内存配置,或者内存资源利用率低,或者内存不够用导致系统性能受到影响。另一种是基于内存使用情况的动态调整内存方案,通过实时监控虚拟机的运行状态获取内存使用量或内存利用率,再为虚拟机的内存使用量设定上限阈值和下限阈值以便动态调整虚拟机的内存空间。此种方式没有考虑内存的访问情况,当某些虚拟机虽然分配了一定的内存,但只有一小部分内存经常访问,一部分内存交换出去对系统性能影响很小,但对于某些虚拟机即使分配了更大的内存空间,但由于自身程序特点,经常访问的内存占比很高,同样大小的内存交换出去对虚拟机性能影响也会比较大。综上,目前还缺少综合调节本地内存和远程内存资源来满足虚拟机内存需求的有效方案。
发明内容
针对上述目前还没有综合调节本地内存和远程内存资源从而来满足虚拟机内存需求的方案的缺陷,本发明提供一种面向云计算的虚拟机的内存调节方法、系统、设备及介质,以解决上述技术问题。
第一方面,本发明提供一种面向云计算的虚拟机的内存调节方法,包括如下步骤:
S1.预先配置虚拟机和内存参数,并在服务器内存满足需求时启动虚拟机;
S2.读取虚拟机的内存使用情况,计算各虚拟机的内存空闲占比;
S3.计算各虚拟机的内存访问活跃度以及服务器节点内所有虚拟机的平均内存访问活跃度;
S4.根据虚拟机的内存空闲占比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配。
进一步地,步骤S1具体步骤如下:
S11.预先配置虚拟机内存属性参数和内存调整参数;
S12.接收到虚拟机启动请求时,服务器节点根据已启动的虚拟机内存配置和服务器物理内存判断是否满足虚拟机启动所需内存;
若是,允许虚拟机启动,进入步骤S2;
若否,拒绝虚拟机启动请求,结束。
进一步地,步骤S11具体步骤如下:
S111.预先设定作为虚拟机内存属性参数的内存配置最小值Mmin和内存配置最大值Mmax;
S112.预先设定作为内存调整参数的最小内存调整值MAmin和调整时间间隔T;
S113.将设定的虚拟机的内存配置最小值Mmin、内存配置最大值Mmax、最小内存调整值MAmin和调整时间间隔T保存到虚拟机配置文件中。
进一步地,步骤S12具体步骤如下:
S121.虚拟机监测器接收到启动虚拟机请求后,计算已启动的各虚拟机内存配置最小值Mmin之和,然后获取服务器物理内存大小;
S122.虚拟机监测器根据服务器物理内存大小与已启动的各虚拟机内存配置最小值Mmin之和的差值,得到可用内存大小;
S123.服务器节点判断可用内存大小是否大于请求启动的虚拟机的内存配置最小值Mmin;
若是,进入步骤S125;
若否,进入步骤S124;
S124.拒绝虚拟机启动请求,结束;
S125.允许虚拟机启动,进入步骤S2。
进一步地,步骤S2具体步骤如下:
S21.根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
S22.根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比。
进一步地,步骤S3具体步骤如下:
S31.根据预先设定的周期使用统计方法计算虚拟机的内存访问活跃度;
S32.对计算的虚拟机的内存访问活跃度进行平滑;
S33.使用平滑后的虚拟机的内存访问活跃度计算服务器节点内所有虚拟机的平均内存访问活跃度。
进一步地,步骤S31具体步骤如下:
S311.每达到预先设定的周期,从虚拟机的内存中随机选取Pn个内存页面,其中n为周期数;
S312.在周期开始时刻将选取的Pn个内存页面置为无效;
S313.统计周期内至捕捉到的虚拟机内存访问异常的页面数量;
S314.计算虚拟机的内存访问活跃度。
进一步地,步骤S32具体步骤如下:
S321.预先设定平滑阶数m及各阶的加权平滑参数a1,a2…am;
S322.使用加权平均算法对虚拟机内存访问活跃度进行平滑,得到平滑后虚拟机的内存访问活跃度;
当n≥m+1时,;
当n <m时,;
其中,。
进一步地,步骤S33具体步骤如下:
S331.获取平滑后的各虚拟机的内存访问活跃度;
S332.计算服务器节点内所有虚拟机的平均内存活跃度;
;
其中,k为服务器节点内的虚拟机个数。
进一步地,步骤S4具体步骤如下:
S41.获取预设的第一占比阈值和第二占比阈值,其中第一占比阈值大于第二占比阈值;
S42.将计算的虚拟机的内存空闲占比与第一占比阈值和第二占比阈值进行比较;
当虚拟机的内存空闲占比大于等于第一占比阈值时,进入步骤S43;
当虚拟机的内存空闲占比小于第一占比阈值,且大于等于第二占比阈值时,进入步骤S44;
当虚拟机的内存空闲占比小于第二占比阈值时,进入步骤S45;
S43.根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择回收的目标内存,其中目标内存包括远程内存和本地内存,返回步骤S2;
S44.虚拟机本地内存和远程内存分配保持不变,返回步骤S2;
S45.根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加的目标内存,其中目标内存包括远程内存和本地内存,返回步骤S2。
进一步地,步骤S41之前还包括如下步骤:
比较周期数n与平滑阶数m的关系;
当n>m时,进入步骤S41;
当n≤m时,不进行本地内存与远程内存调整。
进一步地,步骤S41还包括如下步骤:
预先设定虚拟机本地内存大于等于内存配置最小值Mmin,且小于等于内存配置最大值Mmax;
预先将虚拟机的远程内存空间划分为N份,设定每份远程内存空间pM= (Mmax-Mmin)/N,且设定每个虚拟机可配置远程内存空间Mrmt小于等于N份。
进一步地,步骤S43具体步骤如下:
S431.判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
当≦时,进入步骤S432;
当>时,进入步骤S435;
S432.判断虚拟机本地内存是否大于Mmin;
若是,进入步骤S433;
若否,进入步骤S434;
S433.选择本地内存作为目标内存,使用内存气球模块回收大小为最小内存调整值MAmin的本地内存,返回步骤S2;
S434.回收一份远程内存空间,返回步骤S2;
S435.虚拟机本地内存和远程内存分配保持不变,返回步骤S2。
进一步地,步骤S45具体步骤如下:
S451.判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
当≦时,进入步骤S452;
当>时,进入步骤S455;
S452.判断虚拟机本地内存与远程内存空间之和是否小于等于内存配置最大值Mmax;
若是,进入步骤S453;
若否,进入步骤S454;
S453.选择远程内存作为目标内存,增加一份虚拟机远程内存空间,返回步骤S2;
S454.不选择目标内存,虚拟机本地内存和远程内存分配保持不变,返回步骤S2;
S455.选择本地内存作为目标内存,使用内存气球模块为虚拟机增加大小为最小内存调整值MAmin的本地内存,返回步骤S2。
第二方面,本发明提供一种面向云计算的虚拟机的内存调节系统,包括:
配置模块,用于读取各虚拟机的配置文件获取虚拟机的内存最小值 Mmin和最大值Mmax,获取最小内存调整值MAmin以及周期T提供给判定模块;
内存空闲占比监测模块,用于周期读取各虚拟机内存信息情况计算内存空闲占比提供给判定模块;
内存访问活跃度监测模块,用于周期计算各虚拟机的内存访问活跃度,对内存访问活跃度进行平滑,再计算服务器内所有虚拟机的平均内存访问活跃度,提供给判定模块;
判定模块,用于根据各虚拟机的内存空闲比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机的平均内存活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配方式,向调度模块发出指令;
调度模块,用于接收到判定模块的指令后,通过内存气球控制模块控制各虚拟机本地内存的收缩与放大,或者通过远程内存控制管理模块为各虚拟机扩充或者减少远程内存空间;
内存气球控制模块,用于接收调度模块的指令,向虚拟机发出内存气球模块收缩或扩展的命令,实现增加或缩减虚拟机本地内存;
远程内存管理模块,用于接收调度模块的指令,建立远程内存空间与虚拟机本地内存的连接,或者关闭远程内存空间与虚拟机本地内存的连接。
进一步地,内存空闲占比监测模块包括:
内存使用情况采集单元,用于根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
内存空闲占比计算单元,用于根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比。
进一步地,内存访问活跃度监测模块包括:
内存页面随机抽取单元,用于在每达到预先设定的周期,从虚拟机的内存中随机选取Pn个内存页面,其中n为周期数;
内存页面无需设置单元,用于在周期开始时刻tn-1将选取的Pn个内存页面置为无效;
访问异常页面统计单元,用于统计周期内至时刻虚拟内存访问异常的页面数量;
内存访问活跃度记录单元,用于计算虚拟机的内存访问活跃度;
内存访问活跃度平滑单元,用于预先设定平滑阶数m及各阶的加权平滑参数a1,a2…am,使用加权平均算法对虚拟机内存访问活跃度进行平滑,得到平滑后虚拟机的内存访问活跃度;
当n≥m+1时,;
当n <m时,;
其中,;
平均内存访问活跃度计算单元,用于获取平滑后的各虚拟机的内存访问活跃度,计算服务器节点内所有虚拟机的平均内存活跃度;
;
其中,k为服务器节点内的虚拟机个数。
进一步地,判定模块包括:
预设占比阈值获取单元,用于获取预设的第一占比阈值和第二占比阈值,其中第一占比阈值大于第二占比阈值;
内存空闲占比与预设占比关系判断单元,用于将计算的虚拟机的内存空闲占比与第一占比阈值和第二占比阈值进行比较;
回收内存选择判定单元,用于虚拟机的内存空闲占比大于等于第一占比阈值时,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择回收的目标内存,其中目标内存包括远程内存和本地内存;
分配保持判定单元,用于虚拟机的内存空闲占比小于第一占比阈值时,且大于等于第二占比阈值时,虚拟机本地内存和远程内存分配保持不变;
增加内存选择判定单元,用于虚拟机的内存空闲占比小于第二占比阈值时,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加的目标内存,其中目标内存包括远程内存和本地内存。
进一步地,回收内存选择判定单元包括:
访问活跃度第一比较子单元,用于判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
虚拟机本地内存判断子单元,用于≦时,判断虚拟机本地内存是否大于Mmin;
本地内存回收判定子单元,用于在虚拟机内存大于Mmin时,判定选择本地内存作为目标内存,使用内存气球模块回收大小为最小内存调整值MAmin的本地内存;
远程内存回收判定子单元,用于在虚拟机内存小于等于Mmin时,判定回收一份远程内存空间;
内存分配保持第一判定子单元,用于>时,判定虚拟机本地内存和远程内存分配保持不变。
进一步地,增加内存选择判定单元包括:
访问活跃度第二比较子单元,用于判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
远程与本地内存和判断子单元,用于≦时,判断虚拟机本地内存与远程内存空间之和是否小于等于内存配置最大值Mmax;
远程内存增加判定子单元,用于虚拟机本地内存与远程内存空间之和小于等于内存配置最大值Mmax时,选择远程内存作为目标内存,增加一份虚拟机远程内存空间;
内存分配保持第二判定子单元,用于虚拟机本地内存与远程内存空间之和大于内存配置最大值Mmax时,虚拟机本地内存和远程内存分配保持不变;
本地内存增加判定子单元,用于>时,选择本地内存作为目标内存,使用内存气球模块为虚拟机增加大小为最小内存调整值MAmin的本地内存。
进一步地,远程内存管理模块包括:
指令解析单元,用于接收到调度模块的指令后进行指令解析;
远程内存关联及交换启动单元,用于当指令为建立远程内存指令时,发起通信与远程内存空间对应节点建立连接,将远程内存与虚拟机本地内存对应模拟磁盘设备进行关联,并将模拟磁盘设备作为交换设备进行启动;
远程内存关闭单元,用于当指令为关闭远程内存指令时,关闭虚拟机作为交换设备的模拟磁盘设备,取消远程内存与虚拟机本地模拟磁盘设备之间的关联,再关闭远程内存连接。
第三方面,本发明提供一种设备,包括处理器和存储器;
其中,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得设备执行上述第一方面所述的方法。
第四方面,本发明提供了一种计算机存储介质,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本发明的有益效果在于:
本发明提供的面向云计算的虚拟机的内存调节方法、系统、设备及介质,基于虚拟机内存访问活跃度、内存分配空间以及内存空闲占比动态调整多虚拟机的本地内存和远程内存,充分利用本机本地内存资源和远程内存资源,保证系统资源利用率和虚拟机的系统性能。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明面向云计算的虚拟机的内存调节方法实施例1流程示意图。
图2是本发明面向云计算的虚拟机的内存调节方法实施例2流程示意图。
图3是本发明的虚拟机、内存参数配置以及虚拟启动流程示意图。
图4是本发明内存活跃度计算的流程示意图。
图5是本发明内存回收的判定流程示意图。
图6是本发明内存增加的判定流程示意图。
图7是本发明面向云计算的虚拟机的内存调节系统示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种面向云计算的虚拟机的内存调节方法,包括如下步骤:
S1.预先配置虚拟机和内存参数,并在服务器内存满足需求时启动虚拟机;
S2.读取虚拟机的内存使用情况,计算各虚拟机的内存空闲占比;
S3.计算各虚拟机的内存访问活跃度以及服务器节点内所有虚拟机的平均内存访问活跃度;
S4.根据虚拟机的内存空闲占比与预设阈值关系、结合虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配。
本发明提供的面向云计算的虚拟机的内存调节方法,基于虚拟机内存访问活跃度、内存分配空间以及内存空闲占比动态调整多虚拟机的本地内存和远程内存,充分利用本机本地内存资源和远程内存资源,保证系统资源利用率和虚拟机的系统性能。
实施例2:
如图2所示,本发明提供一种面向云计算的虚拟机的内存调节方法,包括如下步骤:
S1.预先配置虚拟机和内存参数,并在服务器内存满足需求时启动虚拟机;步骤S1具体步骤如下:
S11.预先配置虚拟机内存属性参数和内存调整参数;
S12.接收到虚拟机启动请求时,服务器节点根据已启动的虚拟机内存配置和服务器物理内存判断是否满足虚拟机启动所需内存;
若是,允许虚拟机启动,进入步骤S2;
若否,拒绝虚拟机启动请求,结束;
S2.读取虚拟机的内存使用情况,计算各虚拟机的内存空闲占比;步骤S2具体步骤如下:
S21.根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
S22.根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比;
S3.计算各虚拟机的内存访问活跃度以及服务器节点内所有虚拟机的平均内存访问活跃度;步骤S3具体步骤如下:
S31.根据预先设定的周期使用统计方法计算虚拟机的内存访问活跃度;
S32.对计算的虚拟机的内存访问活跃度进行平滑;
S33.使用平滑后的虚拟机的内存访问活跃度计算服务器节点内所有虚拟机的平均内存访问活跃度;
S4.根据虚拟机的内存空闲占比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配;步骤S4具体步骤如下:
S41.获取预设的第一占比阈值和第二占比阈值,其中第一占比阈值大于第二占比阈值;
S42.将计算的虚拟机的内存空闲占比与第一占比阈值和第二占比阈值进行比较;
当虚拟机的内存空闲占比大于等于第一占比阈值时,进入步骤S43;
当虚拟机的内存空闲占比小于第一占比阈值,且大于等于第二占比阈值时,进入步骤S44;
当虚拟机的内存空闲占比小于第二占比阈值时,进入步骤S45;
S43.根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择回收的目标内存,其中目标内存包括远程内存和本地内存,返回步骤S2;
S44.虚拟机本地内存和远程内存分配保持不变,返回步骤S2;
S45.根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加的目标内存,其中目标内存包括远程内存和本地内存,返回步骤S2。
通过远程内存可以虚拟机本地内存中暂时不使用的页或段调出进行保存,从而腾出更多的本地内存空间存放将要装入的页或段。程序在执行过程中的一个较短时期,所执行的指令地址和指令操作数地址,分别局限于一定区域。由于程序的局部性原理,在某一个时刻,虚拟机本地内存中会存在许多暂时不使用的页,如果能将这些页先换出内存到远程内存暂存,等需要时再换入,就可以使用更大的内存空间。在传统的PC和集群节点中,一般虚拟内存一般由磁盘来充当,由于磁盘设备的开销很大,带来了性能的重大损失,而使用远程内存也可以节省本地的开销。
实施例3:
如图2所示,本发明一种面向云计算的虚拟机的内存调节方法,包括如下步骤:
S1.预先配置虚拟机和内存参数,并在服务器内存满足需求时启动虚拟机;步骤S1具体步骤如下:
S11.预先配置虚拟机内存属性参数和内存调整参数;如图3所示,步骤S11具体步骤如下:
S111.预先设定作为虚拟机内存属性参数的内存配置最小值Mmin和内存配置最大值Mmax;
S112.预先设定作为内存调整参数的最小内存调整值MAmin和调整时间间隔T;
S113.将设定的虚拟机的内存配置最小值Mmin、内存配置最大值Mmax、最小内存调整值MAmin和调整时间间隔T保存到虚拟机配置文件中;
S12.接收到虚拟机启动请求时,服务器节点根据已启动的虚拟机内存配置和服务器物理内存判断是否满足虚拟机启动所需内存;
若是,允许虚拟机启动,进入步骤S2;
若否,拒绝虚拟机启动请求,结束;
如图3所示,步骤S12具体步骤如下:
S121.虚拟机监测器接收到启动虚拟机请求后,计算已启动的各虚拟机内存配置最小值Mmin之和,然后获取服务器物理内存大小;
S122.虚拟机监测器根据服务器物理内存大小与已启动的各虚拟机内存配置最小值Mmin之和的差值,得到可用内存大小;
S123.服务器节点判断可用内存大小是否大于请求启动的虚拟机的内存配置最小值Mmin;
若是,进入步骤S125;
若否,进入步骤S124;
S124.拒绝虚拟机启动请求,结束;
S125.允许虚拟机启动,进入步骤S2;
S2.读取虚拟机的内存使用情况,计算各虚拟机的内存空闲占比;步骤S2具体步骤如下:
S21.根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
S22.根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比;
不同的程序有不同的内存访问特性,以两个程序A和B为例,两个程序都分配了1G的内存用于存储数据,假设程序A是大部分时间是访问该内存的特定100M内存空间,极少时间访问其余空间,程序B对内存的访问具有一定的随机性,则程序A的大部分内存空间交换至虚拟内存对其性能影响有限,而程序B的大部分内存交换至虚拟内存中则对其性能有明显影响。因此即使有相同内存空间需求的程序也会有不同的表现特征,引入的内存访问活跃度就是标识这种区别的指标;
S3.计算各虚拟机的内存访问活跃度以及服务器节点内所有虚拟机的平均内存访问活跃度;步骤S3具体步骤如下:
S31.根据预先设定的周期使用统计方法计算虚拟机的内存访问活跃度;于至时刻CPU访问了哪些内存统计起来不方便,因此采用统计方法近似计算内存活跃度;
如图4所示,步骤S31具体步骤如下:
S311.每达到预先设定的周期,从虚拟机的内存中随机选取Pn个内存页面,其中n为周期数;
S312.在周期开始时刻将选取的Pn个内存页面置为无效;
S313.统计周期内至捕捉到的虚拟机内存访问异常的页面数量;
S314.计算虚拟机的内存访问活跃度;
S32.对计算的虚拟机的内存访问活跃度进行平滑;如图4所示,步骤S32具体步骤如下:
S321.预先设定平滑阶数m及各阶的加权平滑参数a1,a2…am;
S322.使用加权平均算法对虚拟机内存访问活跃度进行平滑,得到平滑后虚拟机的内存访问活跃度;
当n≥m+1时,;
当n <m时,;
其中,;
例如,m取5,使用5阶平滑防护对虚拟机内存访问活跃度进行平滑;
;
其中,n≥6,;例如,可以取=0.1,=0.2,=0.2,=0.2,=0.3;
S33.使用平滑后的虚拟机的内存访问活跃度计算服务器节点内所有虚拟机的平均内存访问活跃度;如图4所示,步骤S33具体步骤如下:
S331.获取平滑后的各虚拟机的内存访问活跃度;
S332.计算服务器节点内所有虚拟机的平均内存活跃度;
;
其中,k为服务器节点内的虚拟机个数;
S4.根据虚拟机的内存空闲占比与预设阈值关系、结合虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配;步骤S4具体步骤如下:
S41.获取预设的第一占比阈值和第二占比阈值,其中第一占比阈值大于第二占比阈值;例如取第一站阈值为10%,取第二占比阈值为5%;
S42.将计算的虚拟机的内存空闲占比与第一占比阈值和第二占比阈值进行比较;
当虚拟机的内存空闲占比大于等于第一占比阈值10%时,进入步骤S43;
当虚拟机的内存空闲占比小于第一占比阈值10%,且大于等于第二占比阈值5%时,进入步骤S44;
当虚拟机的内存空闲占比小于第二占比阈值10%时,进入步骤S45;
S43.根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择回收的目标内存,其中目标内存包括远程内存和本地内存,返回步骤S2;如图5所示,步骤S43具体步骤如下:
S431.判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
当≦时,进入步骤S432;
当>时,进入步骤S435;
S432.判断虚拟机本地内存是否大于Mmin;
若是,进入步骤S433;
若否,进入步骤S434;
S433.选择本地内存作为目标内存,使用内存气球模块回收大小为最小内存调整值MAmin的本地内存,返回步骤S2;
S434.回收一份远程内存空间,返回步骤S2;
S435.虚拟机本地内存和远程内存分配保持不变,返回步骤S2;
S44.虚拟机本地内存和远程内存分配保持不变,返回步骤S2;
S45.根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加远程内存还是使用内存气球模块增加本地内存,返回步骤S2;如图6所示,步骤S45具体步骤如下:
S451.判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
当≦时,进入步骤S452;
当>时,进入步骤S455;
S452.判断虚拟机本地内存与远程内存空间之和是否小于等于内存配置最大值Mmax;
若是,进入步骤S453;
若否,进入步骤S454;
S453.选择远程内存作为目标内存,增加一份虚拟机远程内存空间,返回步骤S2;
S454.虚拟机本地内存和远程内存分配保持不变,返回步骤S2;
S455.选择本地内存作为目标内存,使用内存气球模块为虚拟机增加大小为最小内存调整值MAmin的本地内存,返回步骤S2。
在某些实施例中,S41之前还包括如下步骤:
比较周期数n与平滑阶数m的关系;
当n>m时,进入步骤S41;
当n≤m时,不进行本地内存与远程内存调整;
步骤S41还包括如下步骤:
预先设定虚拟机本地内存大于等于内存配置最小值Mmin,且小于等于内存配置最大值Mmax;
预先将虚拟机的远程内存空间划分为N份,设定每份远程内存空间pM= (Mmax-Mmin)/N,且设定每个虚拟机可配置远程内存空间Mrmt小于等于N份;例如N取5,设定的每份远程内存空间pM= (Mmax-Mmin)/5,每个虚拟机最多拥有5份远程内存空间,虚拟机本地内存大于等于内存配置最小值Mmin,同时小于等于内存配置最大值Mmax。
本发明宿主机使用类Unix系统,包括但不限于FreeBSD、OpenBSD、Solaris和Linux等。宿主机的虚拟化平台为QEMU-KVM。虚拟机内存动态管理器是基于libvirt虚拟化库提供的接口开发的,由于libvirt虚拟化库是一个管理虚拟化平台的开源API,因此本发明同时也支持QEMU、KVM、VMware等支持libvirt的一系列虚拟化平台。
现有技术中存在对内存基于内存使用情况的动态调整内存方案,通过实时监控虚拟机的运行状态获取内存使用量或内存利用率,再为虚拟机的内存使用量设定上限阈值和下限阈值以便动态调整虚拟机的内存空间,当内存使用量大于上限阈值时线上动态扩展虚拟机内存,而当内存使用量小于下限阈值则进行线上收缩虚拟机内存,此种方式存在问题,比如一个虚拟机分配了2G内存,但是只有其中的500M内存经常访问,而剩余的内存虽然被分配但很虚拟机的CPU很少访问,此时将该部分剩余内存交换到远程虚拟机内存交换空间并不会影响系统性能;而另一个虚拟机分配了4G内存空间,因自身应用程序的特点该虚拟机的3G内存空间经常被CPU访问,此时过多的内存交换到远程虚拟机内存交换空间则会影响系统性能。在物理内存资源紧张的情形下,基于内存使用情况调整的方案往往会让第二个虚拟机比第一个虚拟机释放更多的内存,但此时显然会影响第二个虚拟机的系统性能。基于此,本发明的技术方案能有效的解决此问题。
实施例4:
如图7所示,本发明提供一种面向云计算的虚拟机的内存调节系统,包括:
配置模块,用于读取各虚拟机的配置文件获取虚拟机的内存最小值 Mmin和最大值Mmax,获取最小内存调整值MAmin以及周期T提供给判定模块;
内存空闲占比监测模块,用于周期读取各虚拟机内存使用信息计算内存空闲占比提供给判定模块;
内存访问活跃度监测模块,用于周期计算各虚拟机的内存访问活跃度,对内存访问活跃度进行平滑,再计算服务器内所有虚拟机的平均内存访问活跃度,提供给判定模块;
判定模块,用于根据各虚拟机的内存空闲比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机的平均内存活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配方式,向调度模块发出指令;
调度模块,用于接收到判定模块的指令后,通过内存气球控制模块控制各虚拟机本地内存的收缩与放大,或者通过远程内存控制管理模块为各虚拟机扩充或者减少远程内存空间;
内存气球控制模块,用于接收调度模块的指令,向虚拟机发出内存气球模块收缩或扩展的命令,实现增加或缩减虚拟机本地内存;
远程内存管理模块,用于接收调度模块的指令,建立远程内存空间与虚拟机本地内存的连接,或者关闭远程内存空间与虚拟机本地内存的连接。
实施例5:
如图7所示,本发明提供一种面向云计算的虚拟机的内存调节系统,包括:
配置模块,用于读取各虚拟机的配置文件获取虚拟机的内存最小值 Mmin和最大值Mmax,获取最小内存调整值MAmin以及周期T提供给判定模块;
内存空闲占比监测模块,用于周期读取各虚拟机内存使用信息计算内存空闲占比提供给判定模块;内存空闲占比监测模块包括:
内存使用情况采集单元,用于根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
内存空闲占比计算单元,用于根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比;
内存访问活跃度监测模块,用于周期计算各虚拟机的内存访问活跃度,对内存访问活跃度进行平滑,再计算服务器内所有虚拟机的平均内存访问活跃度,提供给判定模块;内存访问活跃度监测模块包括:
内存页面随机抽取单元,用于在每达到预先设定的周期,从虚拟机的内存中随机选取Pn个内存页面,其中n为周期数;
内存页面无需设置单元,用于在周期开始时刻tn-1将选取的Pn个内存页面置为无效;
访问异常页面统计单元,用于统计周期内至时刻虚拟机内存访问异常的页面数量;
内存访问活跃度记录单元,用于计算虚拟机的内存访问活跃度;
内存访问活跃度平滑单元,用于预先设定平滑阶数m及各阶的加权平滑参数a1,a2…am,使用加权平均算法对虚拟机内存访问活跃度进行平滑,得到平滑后虚拟机的内存访问活跃度;
当n≥m+1时,;
当n <m时,;
其中,;
平均内存访问活跃度计算单元,用于获取平滑后的各虚拟机的内存访问活跃度,计算服务器节点所有虚拟机的平均内存活跃度;
;
其中,k为服务器节点内的虚拟机个数;
判定模块,用于根据各虚拟机的内存空闲比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机的平均内存活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配方式,向调度模块发出指令;判定模块包括:
预设占比阈值获取单元,用于获取预设的第一占比阈值和第二占比阈值,其中第一占比阈值大于第二占比阈值;
内存空闲占比与预设占比关系判断单元,用于将计算的虚拟机的内存空闲占比与第一占比阈值和第二占比阈值进行比较;
回收内存选择判定单元,用于虚拟机的内存空闲占比大于等于第一占比阈值时,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择回收的目标内存,其中目标内存包括远程内存和本地内存;回收内存选择判定单元包括:
访问活跃度第一比较子单元,用于判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
虚拟机本地内存判断子单元,用于≦时,判断虚拟机本地内存是否大于Mmin;
本地内存回收判定子单元,用于在虚拟机内存大于Mmin时,判定选择本地内存作为目标内存,使用内存气球模块回收大小为最小内存调整值MAmin的本地内存;
远程内存回收判定子单元,用于在虚拟机内存小于等于Mmin时,判定回收一份远程内存空间;
内存分配保持第一判定子单元,用于>时,判定虚拟机本地内存和远程内存分配保持不变;
分配保持判定单元,用于虚拟机的内存空闲占比小于第一占比阈值时,且大于等于第二占比阈值时,虚拟机本地内存和远程内存分配保持不变;
增加内存选择判定单元,用于虚拟机的内存空闲占比小于第二占比阈值时,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加远程内存还是使用内存气球模块增加本地内存;增加内存选择判定单元包括:
访问活跃度第二比较子单元,用于判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
远程与本地内存和判断子单元,用于≦时,判断虚拟机本地内存与远程内存空间之和是否小于等于内存配置最大值Mmax;
远程内存增加判定子单元,用于虚拟机本地内存与远程内存空间之和小于等于内存配置最大值Mmax时,选择远程内存作为目标内存,增加一份虚拟机远程内存空间;
内存分配保持第二判定子单元,用于虚拟机本地内存与远程内存空间之和大于内存配置最大值Mmax时,虚拟机本地内存和远程内存分配保持不变;
本地内存增加判定子单元,用于>时,选择本地内存作为目标内存,使用内存气球模块为虚拟机增加大小为最小内存调整值MAmin的本地内存;
调度模块,用于接收到判定模块的指令后,通过内存气球控制模块控制各虚拟机本地内存的收缩与放大,或者通过远程内存控制管理模块为各虚拟机扩充或者减少远程内存空间;
内存气球控制模块,用于接收调度模块的指令,向虚拟机发出内存气球模块收缩或扩展的命令,实现增加或缩减虚拟机本地内存;
远程内存管理模块,用于接收调度模块的指令,建立远程内存空间与虚拟机本地内存的连接,或者关闭远程内存空间与虚拟机本地内存的连接;远程内存管理模块包括:
指令解析单元,用于接收到调度模块的指令后进行指令解析;
远程内存关联及交换启动单元,用于当指令为建立远程内存指令时,发起通信与远程内存空间对应节点建立连接,将远程内存与虚拟机本地内存对应模拟磁盘设备进行关联,并将模拟磁盘设备作为交换设备进行启动;
远程内存关闭单元,用于当指令为关闭远程内存指令时,关闭虚拟机作为交换设备的模拟磁盘设备,取消远程内存与虚拟机本地模拟磁盘设备之间的关联,再关闭远程内存连接。
实施例6:
本发明提供一种设备,包括处理器和存储器;
其中,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得设备执行上述实施例1、实施例2或实施例3所述的方法。
实施例7:
本发明提供一种计算机存储介质,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例1、实施例2或实施例3所述的方法。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种面向云计算的虚拟机的内存调节方法,其特征在于,包括如下步骤:
预先配置虚拟机和内存参数,并在服务器内存满足需求时启动虚拟机;
读取虚拟机的内存使用情况,计算各虚拟机的内存空闲占比;
计算各虚拟机的内存访问活跃度以及服务器节点内所有虚拟机的平均内存访问活跃度;具体步骤如下:
根据预先设定的周期使用统计方法计算虚拟机的内存访问活跃度;具体步骤如下:
每达到预先设定的周期,从虚拟机的内存中随机选取Pn个内存页面,其中n为周期数;
在周期开始时刻将选取的Pn个内存页面置为无效;
统计周期内至捕捉到的虚拟机内存访问异常的页面数量;
计算虚拟机的内存访问活跃度;
对计算的虚拟机的内存访问活跃度进行平滑;具体步骤如下:
预先设定平滑阶数m及各阶的加权平滑参数a1,a2…am;
使用加权平均算法对虚拟机内存访问活跃度进行平滑,得到平滑后虚拟机的内存访问活跃度;
当n≥m+1时,;
当n <m时,;
其中,;
使用平滑后的虚拟机的内存访问活跃度计算服务器节点内所有虚拟机的平均内存访问活跃度;具体步骤如下:
获取平滑后的各虚拟机的内存访问活跃度;
计算服务器节点内所有虚拟机的平均内存活跃度;
;
其中,k为服务器节点内的虚拟机个数;
根据虚拟机的内存空闲占比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配。
2.如权利要求1所述的面向云计算的虚拟机的内存调节方法,其特征在于,预先配置虚拟机和内存参数,并在服务器内存满足需求时启动虚拟机的具体步骤如下:
预先配置虚拟机内存属性参数和内存调整参数;
接收到虚拟机启动请求时,服务器节点根据已启动的虚拟机内存配置和服务器物理内存判断是否满足虚拟机启动所需内存;
若是,允许虚拟机启动,进入计算各虚拟机的内存空闲占比步骤;
若否,拒绝虚拟机启动请求。
3.如权利要求2所述的面向云计算的虚拟机的内存调节方法,其特征在于,预先配置虚拟机内存属性参数和内存调整参数的具体步骤如下:
预先设定作为虚拟机内存属性参数的内存配置最小值Mmin和内存配置最大值Mmax;
预先设定作为内存调整参数的最小内存调整值MAmin和调整时间间隔T;
将设定的虚拟机的内存配置最小值Mmin、内存配置最大值Mmax、最小内存调整值MAmin和调整时间间隔T保存到虚拟机配置文件中。
4.如权利要求2所述的面向云计算的虚拟机的内存调节方法,其特征在于,服务器节点根据已启动的虚拟机内存配置和服务器物理内存判断是否满足虚拟机启动所需内存的具体步骤如下:
虚拟机监测器接收到启动虚拟机请求后,计算已启动的各虚拟机内存配置最小值Mmin之和,然后获取服务器物理内存大小;
虚拟机监测器根据服务器物理内存大小与已启动的各虚拟机内存配置最小值Mmin之和的差值,得到可用内存大小;
服务器节点判断可用内存大小是否大于请求启动的虚拟机的内存配置最小值Mmin;
当可用内存大小小于等于请求启动的虚拟机的内存配置最小值Mmin时,拒绝虚拟机启动请求,结束;
当可用内存大小大于请求启动的虚拟机的内存配置最小值Mmin时,允许虚拟机启动,进入计算各虚拟机的内存空闲占比步骤。
5.如权利要求1所述的面向云计算的虚拟机的内存调节方法,其特征在于,计算各虚拟机的内存空闲占比的具体步骤如下:
根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比。
6.如权利要求1所述的面向云计算的虚拟机的内存调节方法,其特征在于,根据虚拟机的内存空闲占比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机平均内存访问活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配的具体步骤如下:
获取预设的第一占比阈值和第二占比阈值,其中第一占比阈值大于第二占比阈值;
将计算的虚拟机的内存空闲占比与第一占比阈值和第二占比阈值进行比较;
当虚拟机的内存空闲占比大于等于第一占比阈值时,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择回收的目标内存,其中目标内存包括远程内存和本地内存,返回计算各虚拟机的内存空闲占比的步骤;
当虚拟机的内存空闲占比小于第一占比阈值,且大于等于第二占比阈值时,虚拟机本地内存和远程内存分配保持不变,返回计算各虚拟机的内存空闲占比的步骤;
当虚拟机的内存空闲占比小于第二占比阈值时,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加的目标内存,其中目标内存包括远程内存和本地内存,返回计算各虚拟机的内存空闲占比的步骤。
7.如权利要求6所述的面向云计算的虚拟机的内存调节方法,其特征在于,获取预设的第一占比阈值和第二占比阈值的步骤之前还包括如下步骤:
比较周期数n与平滑阶数m的关系;
当n>m时,进入获取预设的第一占比阈值和第二占比阈值的步骤;
当n≤m时,不进行本地内存与远程内存调整。
8.如权利要求6所述的面向云计算的虚拟机的内存调节方法,其特征在于,获取预设的第一占比阈值和第二占比阈值还包括如下步骤:
预先设定虚拟机本地内存大于等于内存配置最小值Mmin,且小于等于内存配置最大值Mmax;
预先将虚拟机的远程内存空间划分为N份,设定每份远程内存空间pM= (Mmax-Mmin)/N,且设定每个虚拟机可配置远程内存空间Mrmt小于等于N份。
9.如权利要求7所述的面向云计算的虚拟机的内存调节方法,其特征在于,选择回收的目标内存的具体步骤如下:
判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
当≦时,判断虚拟机本地内存是否大于Mmin;
虚拟机本地内存大于Mmin时,选择本地内存作为目标内存,使用内存气球模块回收大小为最小内存调整值MAmin的本地内存,返回计算各虚拟机的内存空闲占比步骤;
虚拟机本地内存小于等于Mmin时,回收一份远程内存空间,返回计算各虚拟机的内存空闲占比步骤;
当>时,虚拟机本地内存和远程内存分配保持不变,返回计算各虚拟机的内存空闲占比步骤。
10.如权利要求6所述的面向云计算的虚拟机的内存调节方法,其特征在于,根据虚拟机内存访问活跃度与平均内存访问活跃度的关系选择增加的目标内存的具体步骤如下:
判断虚拟机内存访问活跃度与平均内存访问活跃度的关系;
当≦时,判断虚拟机本地内存与远程内存空间之和是否小于等于内存配置最大值Mmax;
若虚拟机本地内存与远程内存空间之和小于等于内存配置最大值Mmax时,选择远程内存作为目标内存,增加一份虚拟机远程内存空间,返回计算各虚拟机的内存空闲占比步骤;
若虚拟机本地内存与远程内存空间之和大于内存配置最大值Mmax时,虚拟机本地内存和远程内存分配保持不变,返回计算各虚拟机的内存空闲占比步骤;
当>时,选择本地内存作为目标内存,使用内存气球模块为虚拟机增加大小为最小内存调整值MAmin的本地内存,返回计算各虚拟机的内存空闲占比步骤。
11.一种面向云计算的虚拟机的内存调节系统,其特征在于,包括:
配置模块,用于读取各虚拟机的配置文件获取虚拟机的内存最小值 Mmin和最大值Mmax,获取最小内存调整值MAmin以及周期T提供给判定模块;
内存空闲占比监测模块,用于周期读取各虚拟机内存使用信息计算内存空闲占比提供给判定模块;
内存访问活跃度监测模块,用于周期计算各虚拟机的内存访问活跃度,对内存访问活跃度进行平滑,再计算服务器内所有虚拟机的平均内存访问活跃度,提供给判定模块;内存访问活跃度监测模块包括:
内存页面随机抽取单元,用于在每达到预先设定的周期,从虚拟机的内存中随机选取Pn个内存页面,其中n为周期数;
内存页面无需设置单元,用于在周期开始时刻tn-1将选取的Pn个内存页面置为无效;
访问异常页面统计单元,用于统计周期内至时刻虚拟机内存访问异常的页面数量;
内存访问活跃度记录单元,用于计算虚拟机的内存访问活跃度;
内存访问活跃度平滑单元,用于预先设定平滑阶数m及各阶的加权平滑参数a1,a2…am,使用加权平均算法对虚拟机内存访问活跃度进行平滑,得到平滑后虚拟机的内存访问活跃度;
当n≥m+1时,;
当n <m时,;
其中, ;
平均内存访问活跃度计算单元,用于获取平滑后的各虚拟机的内存访问活跃度,计算服务器节点所有虚拟机的平均内存活跃度;
;
其中,k为服务器节点内的虚拟机个数;
判定模块,用于根据各虚拟机的内存空闲比与预设阈值关系、虚拟机内存访问活跃度与服务器内虚拟机的平均内存活跃度的关系,动态调整虚拟机的本地内存和远程内存空间分配方式,向调度模块发出指令;
调度模块,用于接收到判定模块的指令后,通过内存气球控制模块控制各虚拟机本地内存的收缩与放大,或者通过远程内存控制管理模块为各虚拟机扩充或者减少远程内存空间;
内存气球控制模块,用于接收调度模块的指令,向虚拟机发出内存气球模块收缩或扩展的命令,实现增加或缩减虚拟机本地内存;
远程内存管理模块,用于接收调度模块的指令,建立远程内存空间与虚拟机本地内存的连接,或者关闭远程内存空间与虚拟机本地内存的连接。
12.如权利要求11所述的面向云计算的虚拟机的内存调节系统,其特征在于,内存空闲占比监测模块包括:
内存使用情况采集单元,用于根据预先设定的周期对各虚拟机采集内存使用信息,内存使用信息包括内存总量和内存使用量;
内存空闲占比计算单元,用于根据各虚拟机的内存使用信息,计算每个虚拟机的内存空闲占比。
13.如权利要求11所述的面向云计算的虚拟机的内存调节系统,其特征在于,远程内存管理模块包括:
指令解析单元,用于接收到调度模块的指令后进行指令解析;
远程内存关联及交换启动单元,用于当指令为建立远程内存指令时,发起通信与远程内存空间对应节点建立连接,将远程内存与虚拟机本地内存对应模拟磁盘设备进行关联,并将模拟磁盘设备作为交换设备进行启动;
远程内存关闭单元,用于当指令为关闭远程内存指令时,关闭虚拟机作为交换设备的模拟磁盘设备,取消远程内存与虚拟机本地模拟磁盘设备之间的关联,再关闭远程内存连接。
14.一种电子设备,其特征在于,包括处理器和存储器;
其中,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得电子设备执行上述权利要求1-10任一项所述的方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310986962.8A CN116700903B (zh) | 2023-08-08 | 2023-08-08 | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310986962.8A CN116700903B (zh) | 2023-08-08 | 2023-08-08 | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116700903A CN116700903A (zh) | 2023-09-05 |
CN116700903B true CN116700903B (zh) | 2023-11-03 |
Family
ID=87837899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310986962.8A Active CN116700903B (zh) | 2023-08-08 | 2023-08-08 | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116700903B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873735B (zh) * | 2024-03-11 | 2024-05-28 | 湖南马栏山视频先进技术研究院有限公司 | 一种虚拟化环境下gpu调度系统 |
CN118227270B (zh) * | 2024-05-22 | 2024-08-09 | 苏州元脑智能科技有限公司 | 一种虚拟机内存调整方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030406A1 (en) * | 2009-06-29 | 2012-02-02 | Jichuan Chang | Hypervisor-based management of local and remote virtual memory pages |
CN103605613A (zh) * | 2013-11-21 | 2014-02-26 | 中标软件有限公司 | 云计算环境中动态调整虚拟机内存的方法及系统 |
CN107463430A (zh) * | 2017-08-03 | 2017-12-12 | 哈尔滨工业大学 | 一种基于内存和Swap空间的虚拟机内存动态管理系统及方法 |
CN112748989A (zh) * | 2021-01-29 | 2021-05-04 | 上海交通大学 | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311236B2 (en) * | 2012-11-20 | 2016-04-12 | International Business Machines Corporation | Out-of-memory avoidance in dynamic virtual machine memory adjustment |
-
2023
- 2023-08-08 CN CN202310986962.8A patent/CN116700903B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030406A1 (en) * | 2009-06-29 | 2012-02-02 | Jichuan Chang | Hypervisor-based management of local and remote virtual memory pages |
CN103605613A (zh) * | 2013-11-21 | 2014-02-26 | 中标软件有限公司 | 云计算环境中动态调整虚拟机内存的方法及系统 |
CN107463430A (zh) * | 2017-08-03 | 2017-12-12 | 哈尔滨工业大学 | 一种基于内存和Swap空间的虚拟机内存动态管理系统及方法 |
CN112748989A (zh) * | 2021-01-29 | 2021-05-04 | 上海交通大学 | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116700903A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116700903B (zh) | 面向云计算的虚拟机的内存调节方法、系统、设备及介质 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN104102543A (zh) | 一种云计算环境中负载调整的方法和装置 | |
EP3537281B1 (en) | Storage controller and io request processing method | |
US10467106B2 (en) | Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time | |
CN110580195B (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN110750336B (zh) | 一种OpenStack虚拟机内存热扩容方法 | |
KR102469927B1 (ko) | 분할 메모리 관리장치 및 방법 | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN103399791A (zh) | 一种基于云计算的虚拟机迁移方法和装置 | |
US11934665B2 (en) | Systems and methods for ephemeral storage snapshotting | |
CN110543355A (zh) | 一种自动均衡云平台资源的方法 | |
CN113821340A (zh) | 分布式系统的动态均衡方法、系统、终端及存储介质 | |
CN115202836A (zh) | 一种提高gpu利用效率的算力池化系统 | |
CN109582649A (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
CN114020416A (zh) | 大页内存动态管理方法、装置和计算机设备 | |
US9563532B1 (en) | Allocation of tasks in large scale computing systems | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
WO2024148864A1 (zh) | 虚拟机内存的调整方法和装置、非易失性可读存储介质及电子装置 | |
CN112035063B (zh) | 一种基于云平台的硬盘及文件系统热扩容的方法 | |
CN117687569A (zh) | 磁盘性能优化方法、系统、电子设备及存储介质 | |
US20230100110A1 (en) | Computing resource management method, electronic equipment and program product | |
CN114157717B (zh) | 一种微服务动态限流的系统及方法 | |
CN118093150A (zh) | 内存管理方法、计算机设备及存储介质 | |
CN111090627B (zh) | 基于池化的日志存储方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |