KVM虛擬化的優化

KVM調優 思路

性能的損耗是矛盾的根源,KVM採用全虛擬化技術,全虛擬化要由一個軟件來模擬硬件層,故有必定的損耗,特別是I/O輸入輸出。
KVM性能優化主要在CPU、內存、I/O這幾方面,固然在這幾方面也是要分場景的,不一樣場景優化方向也是不一樣的。vim

CPU優化

要考慮CPU的數量問題,全部guestCPU的總數目不要超過物理機CPU的總數目。若是超過,則將對性能帶來嚴重影響,建議選擇複製主機CPU配置後端

內存優化

內存分配的最小單位是page(頁面),默認大小是4KB。能夠將host機內容相同的內存合併,以節省內存的使用,特別是在虛擬機操做系統都同樣的狀況下,確定會有不少內容相同的內存值,開啓了KSM,則會將這些內存合併爲一個,固然這個過程會有性能損耗,因此開啓與否,須要考慮使用場景。緩存

而KSM對KVM環境有很重要的意義,當KVM上運行許多相同系統的客戶機時,客戶機之間將有許多內存頁是徹底相同的,特別是只讀的內核代碼頁徹底能夠在客戶機之間共享,從而減小客戶機佔用的內存資源,能同時運行更多的客戶機性能優化

經過/sys/kernel/mm/ksm目錄下可查看內存頁共享的狀況

ll /sys/kernel/mm/ksm/服務器

KVM虛擬化的優化
每一個頁面的大小爲4KB,可計算出共享內存爲:4*頁面數=內存大小(KB)dom

  • 對內存設置限制

    爲了防止某個虛擬機無節制地使用內存資源,致使其餘虛擬機沒法正常使用,就須要對內存的使用進行限制
    KVM虛擬化的優化ide

virsh memtune cc2 查看虛擬機內存狀態
virsh memtune cc2-hard-limit 1024000 --live #限制內存使用 在線狀態

KVM虛擬化的優化
大頁後端內存工具

在邏輯地址向物理地址轉換時,CPU保持一個翻譯後備緩衝器TLB,用來緩存轉換結果,而TLB容量很小,因此若是page很小,TLB很容易就充滿,這樣就容易致使cache miss,相反page很大,TLB須要保存的緩存項就變小,就會減小cache miss。經過爲客戶機提供大頁後端內存,就能減小客戶機消耗的內存並提升TLB命中率,從而提高KVM性能。性能

使用大頁,KVM的虛擬機的頁表將使用更少的內存,而且提升CPU的效率優化

cat /proc/meminfo

HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0

指定大頁須要的內存頁面數量

echo 25000 > /proc/sys/vm/nr_hugepages //臨時生效

永久生效

sysctl -w vm.nr_hugepages=25000
或者
vim /etc/sysctl.conf
vm.nr_hugepages=25000    //添加行,執行sysctl -p 當即生效

關閉虛擬機,編輯虛擬機XML配置文件使用大頁來分配內存。

<domain type='kvm'>
  <name>c1</name>
  <uuid>3a629211-b4f4-4484-9832-897fd082e621</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <memoryBacking><hugepages/></memoryBacking> #添加使用大頁
  <vcpu placement='static'>1</vcpu>

KVM虛擬化的優化
KVM虛擬化的優化
KVM虛擬化的優化
重啓KVM服務,打開虛擬機,查看大頁內存是否生效。

systemctl restart libvirtd.service
virsh start c1
cat /proc/meminfo | grep HugePage
  • I/O優化

在實際的生產環境中,爲了不過分消耗磁盤資源而對其餘的虛擬機形成影響,咱們但願每臺虛擬機對磁盤資源的消耗是能夠控制的。就能夠調整I/O的權重weight,權重越高寫入磁盤的優先級越高。

一、總體的權重,範圍在100-1000

二、限制具體的I/O

  • 系統調優工具tuned

    tuned是服務端程序,用來監控收集系統各個組件的數據,並依據數據提供的信息動態調整系統設置,達到動態優化系統的目的

    yum install tuned -y
    service tuned start
    tuned-adm active
    tuned-adm list

    KVM虛擬化的優化

virtual-guest:企業級服務器配置中使用這個profile,其中包括電池備份控制程序、緩存保護以及管理磁盤緩存
latency-performance:延遲性能調試的服務器配置
enterperise-storage:企業存儲服務器優化方案
default:默認節點配置,是最基本的節點配置,只啓用磁盤和CPU插件
virtual-host:根據enterperise-storage配置,virtual-host還可減小可置換的虛擬內存,並啓用更多集合髒頁寫回。同時推薦在虛擬化主機中使用這個配置,包括KVM和紅帽企業版Linux虛擬化主機
throughput-performance:吞吐性能調整的服務器profile。若是系統沒有企業級存儲,建議使用這個profile
相關文章
相關標籤/搜索