朱 琛 王 劍 高 翔 毛碧波 李 星
(*計算機體系結構國家重點實驗室(中國科學院計算技術研究所) 北京 100190)(**中國科學院計算技術研究所 北京 100190)(***中國科學院大學 北京 100049)(****龍芯中科技術有限公司 北京 100190)
隨著CPU硬件輔助虛擬化技術的成熟,虛擬機技術得到了廣泛的應用[1,2]。KVM(kernel-based virtual machine)是一種主流的基于Linux內核的虛擬機監控器(virtual machine monitor, VMM),有著優秀的可管理性和性能。配合CPU的硬件輔助虛擬化技術,在運算、訪存密集型的應用中,能夠達到宿主機相近的性能,是目前云計算使用的主流方案之一。在KVM虛擬機中,I/O(input/output)虛擬化目前應用最廣泛的方式仍是不依賴硬件輔助的軟件模擬。在I/O中斷密集的場景中,軟件模擬的I/O中斷子系統成為影響虛擬機性能的瓶頸。本文以龍芯KVM虛擬機[3,4]為例介紹了虛擬I/O中斷子系統的原理,對虛擬I/O中斷子系統的性能瓶頸進行了分析,除了采用常規方式優化外,還在此基礎上嘗試使用多種手段對其性能進行進一步的優化,取得了較好的優化效果。
本文的內容如下:第1節以龍芯的GS464E[5]高性能CPU核為例介紹了I/O虛擬化和I/O中斷虛擬化的基本原理。第2節分析了I/O中斷子系統的性能瓶頸。第3節介紹了其他架構常用的優化方法,并對其進行了驗證。第4節在常規優化方法的基礎上進行了進一步的優化,并對效果進行了初步評估。第5節選擇部分I/O中斷密集的磁盤、網絡測試項,驗證了優化的效果。最后在第6節進行了總結。
I/O虛擬化指的是外設相關的虛擬化,因為從CPU的角度來看,外設是通過一組I/O寄存器來訪問的[6]。……