PiBooster:一种用于半虚拟化虚拟机页表管理性能提升的轻量级方法
操作系统
2019-10-22 v1 密码学与安全
性能
摘要
在半虚拟化中,客户机操作系统的页表管理组件被适当打补丁以保障 hypervisor 的安全性。然而,它们均未足够关注性能提升,从而导致两个显著的性能问题。首先,此类安全补丁加剧了客户机页表(去)分配执行路径过长的问题,进而增加进程创建与退出的延迟。其次,补丁引入了许多额外的 IOTLB 刷新,导致额外的 IOTLB 缺失,而这些缺失会对所有外围设备的 I/O 性能产生负面影响。本文中,我们提出 PiBooster,一种用于提升页表管理性能的轻量级新颖方法。首先,PiBooster 通过 PiBooster 缓存缩短页表(去)分配的执行路径,该缓存维护专用缓冲区以服务页表(去)分配。其次,PiBooster 通过细粒度验证方案消除额外的 IOTLB 缺失,该方案分别执行页表与 DMA 验证,而非同时进行二者。我们在 Xen 上以 Linux 为客户机内核实现原型。我们对 Xen(166 SLoC)与 Linux 内核(350 SLoC)做了少量修改。我们以微观与宏观两种方式评估 I/O 性能。微观实验结果表明,PiBooster 能够在工作负载稳定环境中完全消除额外的 IOTLB 刷新,并有效将页表(去)分配时间平均减少 47%。宏观基准测试显示,进程创建与退出延迟如预期平均降低 16%。此外,SPECINT、lmbench 与 netperf 结果表明 PiBooster 对 CPU 计算、网络 I/O 与磁盘 I/O 无负面性能影响。
引用
@article{arxiv.1910.09277,
title = {PiBooster: A Light-Weight Approach to Performance Improvements in Page Table Management for Paravirtual Virtual-Machines},
author = {Zhi Zhang and Yueqiang Cheng},
journal= {arXiv preprint arXiv:1910.09277},
year = {2019}
}