日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KVM虚拟机的优化历程---按需优化

發布時間:2025/3/19 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KVM虚拟机的优化历程---按需优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、KVM為什么要調優

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

二、KVM優化思路及步驟

1、CPU優化

  • 要考慮CPU的數量問題,所有guestcpu的總數目不要超過物理機CPU總數目,如果超過,則將對性能帶來嚴重影響,建議選擇復制主機CPU配置。

2、內存優化

(1)KSM---kernel Samepage Merging 相同頁合并

  • 內存分配的最小單位是page(頁面),默認大小是4KB,可以將host主機內容相同的內存合并,以節省內存的使用。
  • 當KVM上運行許多相同系統的客戶機時,客戶機之間將有很多內存頁是完全相同的,特別是只讀的內核代碼頁完全可以在客戶機之間共享,從而減少客戶機占用的內存資源,也能同時運行更多的客戶機。

ll //sys/kernel/mm/ksm/

  • 查看KSM是否開啟

cat run

[root@bogon ksm]# cat run //是否開啟KSM,0為關閉,1為開啟 0 [root@bogon ksm]# echo 1 > run //臨時開啟KSM,只能使用重定向,不支持VI編輯器//若想永久開啟,可在/etc/rc.local中添加echo 1 > /sys/kernel/mm/ksm/run,讓KSM開機自動運行 [root@bogon ksm]# cat pages_to_scan //定期掃描相同頁,sleep_millisecs決定多長時間//pages_to_scan決定每次查看多少個頁面//默認是100,越大越好,超過2000無效,需要開啟兩個服務ksmtuned和tuned,支持更多頁面

(2)對內存設置限制

  • 如果我們有多個虛擬機,為了防止某個虛擬機無節制的使用內存資源,導致其他虛擬機無法正常使用,就需要對使用的內存進行限制。

virsh memtune c7-1 //查看當前虛擬機的內存限制,單位為KB

hard_limit : 無限制 //強制最大內存 soft_limit : 無限制 //可用最大內存 swap_hard_limit: 無限制 //強制最大swap使用大小
  • 設置強制最大內存為100MB,在線生效。

virsh memtune c7-1 --hard-limit 1024000 --live

3、大頁后端內存

  • 在邏輯地址想物理地址轉換時,CPU保持一個翻譯后備緩沖器TLB,用來緩沖轉換結果,而TLB容量很小,所以如果page很小,TLB很容易就充滿,這樣就容易導致cache miss,相反page變大,TLB需要保存的緩存項就變少,就會減少cache miss,通過為客戶端提供大頁后端內存,就能減少客戶機消耗的內存并提高TLB命中率,從而提高KVM性能。

  • 查看內存信息,無可用大頁

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配置文件使用大頁來分配內存。

virsh destroy c7-1
vim /etc/libvirt/qemu/c7-1.xml

...... <domain type='kvm'><name>c7-1</name><uuid>09ea8217-8943-47b1-9275-63b0357d31e2</uuid><memory unit='KiB'>2097152</memory><currentMemory unit='KiB'>2097152</currentMemory><memoryBacking><hugepages/></memoryBacking> //添加,使用大頁<vcpu placement='static'>1</vcpu><os><type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type><boot dev='hd'/> ......

  • 重啟KVM服務,打開虛擬機,查看大頁內存是否生效。

systemctl restart libvirtd.service
virsh start c7-1
cat /proc/meminfo | grep HugePage

  • 關閉虛擬機,再查看大頁內存是否有變化。

4、I/O優化

  • 在實際的生產環境中,為了米面過度消耗磁盤資源而對其他的虛擬機造成影響,我們希望每臺虛擬機對磁盤資源的消耗是可控的,比如多個虛擬機往硬盤中寫數據,誰可以優先寫,就可以調整I/O的權重weight,權重越高寫入磁盤的優先級越高。

  • 對磁盤I/O控制方式有兩種方式:

在整體中的權重,范圍在100~1000.
限制具體的I/O.

  • 針對虛擬機權重設置

virsh blkiotune c7-1 //查看當前虛擬機權重狀態

virsh blkiotune c7-1 --weight 500 //通過命令修改權重為500

5、系統調優工具tuned/tuned-adm

  • tuned是服務端程序,用來監控和收集系統各個組件的數據,并依據數據提供的信息動態調整系統設置,達到動態優化系統的目的。
  • tuned-adm是客戶端程序,用來和tuned打交道,用命令行的管理方式和配置tuned/tuned-adm,提供了一些預先配置的優化方案可直接使用。

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

  • 更改解決方案

tuned-adm profile desktop

轉載于:https://blog.51cto.com/13659253/2155962

總結

以上是生活随笔為你收集整理的KVM虚拟机的优化历程---按需优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。