虚拟化系统中的内存管理优化
发布时间:2020-12-04 02:05
在服务器虚拟化中,多个虚拟机共享同一机器的物理内存。由于内存的读写速度通常要比磁盘等外存设备高出1~2个数量级,因此将虚拟机的数据尽量放入内存可以提升系统性能。然而研究表明,服务器有限的内存容量正在成为限制虚拟机部署密度和系统性能提升的瓶颈。内存重删和动态内存调节是提高虚拟化系统内存利用率的两个重要技术。内存重删通过消除重复数据减少虚拟机的内存占用量。动态内存调节通过回收虚拟机空闲内存提高宿主机内存利用率。本文分析了现有方法的不足,提出了相应的优化方案,具体包括:(1)低开销的内存重删方法现有重删方案采用页面比较的方式发现重复页面,然而这一过程存在较多的无效比较。当页面数量增多时,无效比较的次数增加,CPU开销也随之增加。这会导致重删的效率随着服务器内存容量增加而逐渐降低。本文提出了一种低开销的重删方法CBF-KSM。CBF-KSM的基本思想是使用Counting Bloom Filter算法在页面比较之前进行过滤,将非重复的页面过滤掉,仅允许重复页面执行比较过程。由于系统中非重复页面的数量通常要比重复页面多,因此CBF-KSM可以大大减少页面的比较次数,降低重删进程的CPU开销。在系...
【文章来源】:中国科学技术大学安徽省 211工程院校 985工程院校
【文章页数】:74 页
【学位级别】:硕士
【部分图文】:
图1.1基于Hypervisor的系统虚拟化架构图??
?第1章绪?论???App.?App.?????參??Guest?OS?Guest?OS??Hypervisor?(VMM)??Host?Kernel??Hardware??图1.1基于Hypervisor的系统虚拟化架构图??虚拟化为虚拟机提供了良好的隔离性和安全性。??KVM和Xen是基于Hypervisor虚拟化的两种经典开源实现。得益于开源??特征,它们的可移植性非常好,得到了企业的青睐和广泛使用。虽然Xen的起??步更早,且其独特的类虚拟化技术能够提高良好的性能,但是Xen的易用性较??差。而KVM与Linux内核结合紧密,凭借Linux的流行和自身良好的隔离性,??KVM正逐渐成为虚拟化的技术主流,例如全球最大的云服务提供商AWS己经??将其Hypervisor由早期的Xen替换成了?Nitro,而Nitro正是基于KVM的一种定??制化实现。因此,KVM虚拟化正逐渐成为技术主流。图1.2展示了?KVM的架构,??KVM于2007年正式被集成到Linux?2.6内核中,成为内核的组成模块。在实际??使用中,KVM作为内核模块负责CPU和内存的虚拟化,QEMU作为用户态工??具负责I/O设备的虚拟化,二者互相配合为虚拟机提供服务。??App.?App.??Virtual?Virtual??Machine?Machine?…?Pr〇cess??OEMU??QEMU??KVM?Module?Linux?Kernel?Device?Driver???—?i????Hardware??图1.2?KVM架构图??除了基于Hypervisor的系统虚拟化,近几年也出
?第1章绪?论???63?48?39?30?21?12?0??未使用?GLOBAL?DIR?UPPER?DIR?MIDDLE?DIR?TABLE?OFFSET??虚拟地址??页面??页表參 ̄>??页中间目录)??页上级目录i?CZ}?T?^??页全局目录? ̄?9^— ̄ ̄k??—??—zm—J ̄ ̄??,__t?h? ̄ ̄^口??1?CR3?1?*—1——??图1.3?Linux中的内存寻址??的透明巨页)。下面以64位x86平台为例,介绍Linux?4KB页面的寻址过程。如??图1.3,虚拟地址由五部分组成,其中高16位是保留位,尚未使用。内存寻址从??页全局目录PGD开始,PGD的物理基址存储在CR3寄存器中;PGD的物理基??址加上GLOBAL?DIR段偏移可得到页上级目录PUD的物理基址,以此类推,最??终根据页内偏移OFFSET定位到字节。??1.2.2内存虚拟化的原理??VM?1?VM?2?VM?3??「tt?ra?eeeh?mmmm??虚拟机视角的内存??物理内存??图1.4内存虚拟化示意图??内存虚拟化的原理:在没有虚拟化的场景中,操作系统对内存的使用基于以??下两点共识:第一,内存的物理地址都是从0开始的;第二,内存地址空间是连??续的,或者在一个较大的空间上是连续的。因此内存虚拟化的目的就是为虚拟机??操作系统构建一个从零开始的连续内存空间,为了达到这个目的,内存虚拟化为??虚拟机引入了客户机物理内存空间的概念。客户机物理内存地址(Guest?Physical??Address,以下简称GPA)通过宿主机虚拟内存地址(Host?Virtual
本文编号:2896841
【文章来源】:中国科学技术大学安徽省 211工程院校 985工程院校
【文章页数】:74 页
【学位级别】:硕士
【部分图文】:
图1.1基于Hypervisor的系统虚拟化架构图??
?第1章绪?论???App.?App.?????參??Guest?OS?Guest?OS??Hypervisor?(VMM)??Host?Kernel??Hardware??图1.1基于Hypervisor的系统虚拟化架构图??虚拟化为虚拟机提供了良好的隔离性和安全性。??KVM和Xen是基于Hypervisor虚拟化的两种经典开源实现。得益于开源??特征,它们的可移植性非常好,得到了企业的青睐和广泛使用。虽然Xen的起??步更早,且其独特的类虚拟化技术能够提高良好的性能,但是Xen的易用性较??差。而KVM与Linux内核结合紧密,凭借Linux的流行和自身良好的隔离性,??KVM正逐渐成为虚拟化的技术主流,例如全球最大的云服务提供商AWS己经??将其Hypervisor由早期的Xen替换成了?Nitro,而Nitro正是基于KVM的一种定??制化实现。因此,KVM虚拟化正逐渐成为技术主流。图1.2展示了?KVM的架构,??KVM于2007年正式被集成到Linux?2.6内核中,成为内核的组成模块。在实际??使用中,KVM作为内核模块负责CPU和内存的虚拟化,QEMU作为用户态工??具负责I/O设备的虚拟化,二者互相配合为虚拟机提供服务。??App.?App.??Virtual?Virtual??Machine?Machine?…?Pr〇cess??OEMU??QEMU??KVM?Module?Linux?Kernel?Device?Driver???—?i????Hardware??图1.2?KVM架构图??除了基于Hypervisor的系统虚拟化,近几年也出
?第1章绪?论???63?48?39?30?21?12?0??未使用?GLOBAL?DIR?UPPER?DIR?MIDDLE?DIR?TABLE?OFFSET??虚拟地址??页面??页表參 ̄>??页中间目录)??页上级目录i?CZ}?T?^??页全局目录? ̄?9^— ̄ ̄k??—??—zm—J ̄ ̄??,__t?h? ̄ ̄^口??1?CR3?1?*—1——??图1.3?Linux中的内存寻址??的透明巨页)。下面以64位x86平台为例,介绍Linux?4KB页面的寻址过程。如??图1.3,虚拟地址由五部分组成,其中高16位是保留位,尚未使用。内存寻址从??页全局目录PGD开始,PGD的物理基址存储在CR3寄存器中;PGD的物理基??址加上GLOBAL?DIR段偏移可得到页上级目录PUD的物理基址,以此类推,最??终根据页内偏移OFFSET定位到字节。??1.2.2内存虚拟化的原理??VM?1?VM?2?VM?3??「tt?ra?eeeh?mmmm??虚拟机视角的内存??物理内存??图1.4内存虚拟化示意图??内存虚拟化的原理:在没有虚拟化的场景中,操作系统对内存的使用基于以??下两点共识:第一,内存的物理地址都是从0开始的;第二,内存地址空间是连??续的,或者在一个较大的空间上是连续的。因此内存虚拟化的目的就是为虚拟机??操作系统构建一个从零开始的连续内存空间,为了达到这个目的,内存虚拟化为??虚拟机引入了客户机物理内存空间的概念。客户机物理内存地址(Guest?Physical??Address,以下简称GPA)通过宿主机虚拟内存地址(Host?Virtual
本文编号:2896841
本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/2896841.html