所做工作
虚拟化技术在一台物理机上提供多份硬件抽象,从而运行多个虚拟机来提高硬件资源利用率。目前虚拟机的内存是在启动时静态分配的,这阻碍了以内存超分配的方式增加虚拟机的数量。使用ballooning技术可以在运行时进行动态内存分配。我们在同一框架和系统环境下对不同的现有ballooning策略进行了测试。我们发现,在同样的负载下,不同的ballooning策略可以导致高达70倍的性能差异,单一的ballooning策略很难同时满足各种负载场景。因此,我们需要针对不同的负载应用不同的ballooning策略。我们实现了一个动态内存分配框架,根据系统的运行状态选择并应用在这种状态下表现较优的策略。我们基于KVM的虚拟化平台实现了我们的系统,我们的系统比不使用ballooning的系统有2~6倍的性能提升,比其他现有的单一ballooning策略有平均1.3~3倍的性能提升。
系统架构
图1:自动选择ballooning策略系统架构
性能测试
图2:系统性能测试
四组数据分别表示我们采用的四种混合负载下不同ballooning策略的性能。每组中最左边的条形表示不采用ballooning的系统性能,最右边的条形表示我们系统的性能,中间条形分别表示采用不同的现有单一策略的性能。
文稿:余天依
编辑:高宇岑
领取专属 10元无门槛券
私享最新 技术干货