【大家的项目】RT-Shyper:基于Rust语言的隔离性、实时性增强的嵌入式虚拟机监控器——隔离性部分...

RT-Shyper:基于Rust语言的隔离性、实时性增强的嵌入式虚拟机监控器——隔离性部分

在上次的分享中,我们介绍了Rust-Shyper,一个基于Rust语言的高性能、高可靠嵌入式虚拟机监控器。考虑到面向嵌入式领域的虚拟机监控器不仅要保障虚拟机的性能,还需要满足嵌入式领域的隔离性和实时性等需求,我们在Rust-Shyper的基础上设计实现了RT-Shyper。本次分享将介绍RT-Shyper在隔离性方面的工作,并通过实验测试结果展示RT-Shyper在隔离性方面的性能表现。

隔离性

硬件虚拟化扩展提供的两阶段地址翻译机制仅隔离了不同虚拟机之间、虚拟机与监控器之间的地址空间,但各个虚拟机以及监控器仍共享多核间的高速缓存(cache)、内存(DRAM)带宽等资源,存在很大的性能干扰。RT-Shyper设计实现了“基于着色的末级缓存隔离机制”和“虚拟机内存带宽控制系统”来提高虚拟化系统的内存隔离性。这两种机制无需特殊的硬件支持,且几乎没有运行时开销,能够提高虚拟化系统的内存隔离性。

基于着色的末级缓存隔离机制:末级缓存(LLC)通常是核心间共享的,这会导致物理核心在缓存级别产生干扰。RT-Shyper基于“着色”的思想,对不同的虚拟机、监控器分配属于不同的高速缓存组(组号对应着色)的物理内存空间,消除CPU侧的高速缓存干扰和竞争。该方法仅改变了内存的分配方式,没有运行时的开销,可以明显降低访存的波动程度,提高虚拟机访存的隔离性。

虚拟机内存带宽控制:多核平台中,不同核心在缓存未命中时并发访问DRAM内存的过程由于内存控制器的请求重排可能导致不同虚拟机之间相互干扰,破坏虚拟化的隔离性。RT-Shyper的内存带宽控制系统为每个vCPU设置了访存预算(即一段时间内允许访问主存的次数),并通过硬件性能监控单元(PMU)来高效地监控记录虚拟机的访存次数,在预算耗尽时限制虚拟机访问内存,从而减小虚拟机内存竞争导致的性能干扰,提高了虚拟机监控器的隔离性。

实验测试

缓存着色测试:在TX2开发板设置了六种测试场景,使用lmbench测试Linux的缓存时延、内存带宽、内存时延性能。这六种情况分别是:

  1. 裸机原生(bare-metal)

  2. 单虚拟机(solo)

  3. 单虚拟机且虚拟机缓存着色(solo+VMcolor)

  4. 双虚拟机竞争(interf,即interference)

  5. 双虚拟机竞争且虚拟机缓存着色(interf+VM color)

  6. 双虚拟机竞争且虚拟机缓存着色且监控器自我着色(interf+VM color+Hyp color)

d9ac906aa305631ff94932b8a4aa8165.png

mem_bandwidth

32bde5cca788ec819dd92724e5a490c5.png

mem_latency

单虚拟机情况下,无论是否应用缓存着色,虚拟机内存带宽和时延的表现基本一致,说明基于着色的末级缓存隔离技术不会产生额外的运行时性能开销。在不进行缓存着色时,多虚拟机竞争导致被测试虚拟机的内存带宽、时延等性能指标均出现明显下降,最差的内存拷贝性能下降到单虚拟机的91.3%。应用缓存着色后,虚拟机的内存性能有所提升,与单虚拟机的测试结果相比,多虚拟机应用着色使得内存拷贝性能由91.3%提升至95.9%,顺序读94.5%提升至98.3%,顺序写99.4%提升至99.9%。内存的带宽和时延测试说明基于着色的末级缓存隔离技术可以提高虚拟机之间的内存隔离性。

内存带宽控制系统测试:使用两个虚拟机,其中VM0为普通客户虚拟机(非实时虚拟机),限制其内存带宽为不同数值;以VM1为实时虚拟机,不做内存带宽限制。使用Isol-bench中的内存带宽和时延测试工具,测量VM0不同内存带宽限制下,VM1 的内存性能的变化情况。

9fb8948ec1c6ec6cfed5f2b64995dc16.png

mem_latency

随着VM0内存带宽的增加,VM1呈现出内存带宽下降、延迟增加的变化趋势,二者呈负相关。内存随机访问的时延和带宽的变化程度的变化相对较小,无限制情况下和单虚拟机性能相比差距在10%以内。而内存顺序读和顺序写的变化趋势类似,在VM0的内存带宽超过1.5GB/s 时,内存带宽和时延产生了较大的变化。VM0内存带宽无限制时,性能仅有单虚拟机的62.6%。内存带宽控制系统可以一定程度上保障实时虚拟机的内存资源。

项目地址

https://github.com/shyper-org/rtshyper

欢迎有兴趣、志同道合的朋友加入我们,共同把RT-Shyper打造成更优秀地虚拟化底层软件。欢迎在上述开源平台的讨论区与我们互动,或者通过邮件moce0627@outlook.com联系我们。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值