论文部分内容阅读
随着云计算产业的快速发展,云服务器集群中的计算资源的管理已成为人们关注的重点。相比于传统的服务器集群,云计算通过虚拟化等技术改进服务器的软硬件资源的管理和分配的方式,提高了硬件资源的整体利用率和服务的可靠性。然而,虚拟化技术在应用于服务器资源管理的过程中也遇到了一些挑战,其中的挑战之一就是虚拟机内存资源分配的合理性。合理高效的虚拟机内存资源分配管理是保障云计算环境整体效率的关键之一。内存作为计算和存储的中间环节在虚拟化平台中显得尤为重要,进一步优化虚拟机内存管理将是提高虚拟化平台整体资源利用率的关键。然而,由于现有的KVM(Kernel-based Virtual Machine)虚拟化平台中内存管理的方式无法在物理机上分辨客户机内部内存页面的具体状态,客户机内存页面仅以被访问的频率和内容上的重复性的形式被物理机所感知,可能出现一些不合理的情况,各种现有的内存超量使用策略也都存在一定的局限性或缺陷。本文提出了新的超量使用内存策略,即以修改客户机系统内核的方式使客户机主动提出与物理机共享其中未使用部分内存,以修改物理机上KVM模块的方式回收客户机愿意共享部分的内存,从而排除此部分客户机内存对物理机内存调度算法的干扰。本策略可充分利用现有KVM平台的各种策略模拟操作系统级虚拟化技术的内存管理特点,保留物理机操作系统的页面交换策略,让其感知客户机操作系统的内存访问频率;以KSM策略合并客户机中重复页面的方式模拟操作系统级虚拟化中的加载程序或文件的去重特点;以本设计回收客户机中未使用内存的方式模拟操作系统级虚拟化中客户机程序将未使用内存释放回物理机操作系统内核内存管理单元;以本设计关于客户机操作系统内核物理内存页块优先级的处理模拟操作系统级虚拟化中统一的伙伴页块链表管理。在与其他现有的内存超量使用策略对比时,本文提出了基于微观内存页面行为的模型,随后展开介绍了两种不同的设计方案和内存外部碎片对本设计的影响,最后通过KVM虚拟化平台下模拟内存占用的实验论证了本设计可取得良好的效果。宏观测试实验部分从系统整体的角度对比了开启与未开启IMR策略的情况下,客户机启动与动态内存使用场景下物理机内存使用,以及物理机交换区空间使用状态方面的差别。本设计主要适用于匿名内存使用量波动较大的计算环境,文中选择了几个主流开源软件进行匿名内存用量的测试,验证了本设计的基础;在基于微观页面行为的测试中对比了页面交换和KSM策略,本策略在处理客户机空闲物理内存块的速度上至少提高了三个数量级。