1. 程式人生 > >windows虛擬機器效能調優

windows虛擬機器效能調優

Windows系統在kvm環境下執行,以libvirt和qemu的hypervisor層角度看是不區分客戶機作業系統是Linux還是Windows,但實際執行來看效能相差較大,本文從以下幾個方面進行分析並提供優化方案。

  • virtio
    虛機預設使用的驅動是virtio驅動,Windows中的磁碟網絡卡也都是使用virtio驅動,網絡卡需要從hypervisor層做網絡卡型別的轉換,如vhost,vhost_user等。磁碟在virtio驅動下需要注意的是virtio版本對Windows虛機磁碟讀寫效能的影響,最新版本virtio-win-0.1.118.iso已經解決此問題,所以儘量取最新的版本使用,對磁碟效能測試如下:
    virtio-102版本磁碟效能


    可以看到平均速度為36.2M/s左右
    virtio-118版本磁碟效能
    平均速度為75.4M/s,效能提升一半左右。

  • 綁核、巨頁
    綁核和使用巨頁記憶體是虛擬化較為通用的優化方式,windows和linux都適用,巨頁提升記憶體效能,綁核增強計算能力,如果多虛機併發也可先進行物理機的核隔離,然後再綁核,這裡不做過多描述。

  • kvm_intel核心模組選項設定
    enable_apicv,是kvm_intel核心模組的兩個引數,apic是時鐘相關,可以提升虛機效能,apicv這個引數的優化方向:
    apic原理圖
    這是Intel官網上的一張關於apicv效能研究的示意圖,具體原理是通過硬體cpu的在硬體層模擬出虛機的apic相關的動作,這樣大量減少了vmexit的次數,瞭解虛擬化原理的應該知道,每次vmexit要進行上下文切換等,效能消耗很大,所以當虛機發生中斷請求時通過apicv來減少vmexit的次數,這樣可提升虛擬機器的整體效能。但apicv需要物理cpu的支援,Intel(R) Xeon(R) E5-2600 V2 Product Family及以後的處理器,可通過重新載入kvm模組來使能該選項。

    Intel原文連線
    在使用者態配合apicv的配置在虛機的xml中增加如下配置:

<features>
  <hyperv>     
   <relaxed state='on'/>    
  </hyperv>
</features> 
<clock offset='localtime'>     
 <timer name='hypervclock' present='yes'/>
</clock>

然後建立虛機即可。

  • 更換Windows作業系統
    Windows系統在win8之後做了改進,作為虛機系統使用時能夠配合kvm來提升虛機效能,主要是減少vmexit的次數,所以建議使用win8之後windows系統作為客戶機。

以上為本文提供的Windows虛機效能優化,其中2.3項也適用於Linux虛機的效能提升。

小笨驢在吃草的時候建立了微信公眾號,為方便更多覓食的“小笨驢”,為大家準備了大量的免費基礎教學資料以及技術解決方案,還會定時釋出一些好的技術文章,當然也會扯扯蛋、談談人生、呵呵,希望我們這群樂於分享技術的“小笨驢”團隊越來越大!


這裡寫圖片描述