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已經解決此問題,所以儘量取最新的版本使用,對磁碟效能測試如下:
可以看到平均速度為36.2M/s左右
平均速度為75.4M/s,效能提升一半左右。綁核、巨頁
綁核和使用巨頁記憶體是虛擬化較為通用的優化方式,windows和linux都適用,巨頁提升記憶體效能,綁核增強計算能力,如果多虛機併發也可先進行物理機的核隔離,然後再綁核,這裡不做過多描述。kvm_intel核心模組選項設定
enable_apicv,是kvm_intel核心模組的兩個引數,apic是時鐘相關,可以提升虛機效能,apicv這個引數的優化方向:
這是Intel官網上的一張關於apicv效能研究的示意圖,具體原理是通過硬體cpu的在硬體層模擬出虛機的apic相關的動作,這樣大量減少了vmexit的次數,瞭解虛擬化原理的應該知道,每次vmexit要進行上下文切換等,效能消耗很大,所以當虛機發生中斷請求時通過apicv來減少vmexit的次數,這樣可提升虛擬機器的整體效能。但apicv需要物理cpu的支援,Intel(R) Xeon(R) E5-2600 V2 Product Family及以後的處理器,可通過重新載入kvm模組來使能該選項。
在使用者態配合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虛機的效能提升。
小笨驢在吃草的時候建立了微信公眾號,為方便更多覓食的“小笨驢”,為大家準備了大量的免費基礎教學資料以及技術解決方案,還會定時釋出一些好的技術文章,當然也會扯扯蛋、談談人生、呵呵,希望我們這群樂於分享技術的“小笨驢”團隊越來越大!