python虛擬機器優化 KVM虛擬機器管理及效能優化

2021-10-11 13:04:07 字數 4449 閱讀 9598

kvm虛擬機器管理及效能優化

使用kvm命令集管理虛擬機器

kvm關機開機命令

# virsh -h //檢視命令幫助

# virsh list --all //檢視虛擬機器狀態

# virsh shutdown centos7.4-x86_64 //關閉虛擬機器

# virsh start centos7.4-x86_64 //啟動虛擬機器

# virsh destroy centos7.4-x86_64 //強制關機

# virsh create /etc/libvirt/qemu/centos7.4-x86_64.xml //通過配置檔案啟動虛擬機器

掛起和恢復

# virsh suspend centos7.4-x86_64 //掛起虛擬機器

# virsh resume centos7.4-x86_64 //恢復虛擬機器

設定隨宿主機開機自啟動

# virsh autostart centos7.4-x86_64

匯出虛擬機器配置

# virsh dumpxml centos7.4-x86_64 > /etc/libvirt/qemu/test01.xml

刪除虛擬機器

# virsh shutdown centos7.4-x86_64 //先關閉

# virsh undefine centos7.4-x86_64 //再刪除

通過備份恢復刪除的虛擬機器

# cd /etc/libvirt/qemu/

# mv test01.xml centos7.4-x86_64

# virsh define centos7.4-x86_64 //重新定義虛擬機器

修改配置檔案

# virsh edit centos7.4-x86_64

# vim /etc/libvirt/qemu/centos7.4-x86_64.xml

kvm檔案管理

通過檔案管理可以直接檢視、修改、複製虛擬機器的內部檔案。例如:系統因為配置問題無法啟動時,可以直接修改虛擬機器的檔案。虛擬機器的磁碟檔案有 raw和 qcow2 兩種格式。 kvm預設格式是raw,raw格式效能最好、速度最快,其缺點是不支援一些新的功能,如映象、zlib磁碟壓縮、aes加密等。

這裡介紹本地yum安裝的libguestfs-tools後產生的命令列工具(這個工具可以檢視qcow2格式的磁碟檔案)

1:轉換raw格式磁碟檔案至qcow2格式

# yum install libguestfs-tools -y //安裝命令列工具

# qemu-img info /vdir/centos-7.4-x86_64.img //檢視當前磁碟格式

關機後 磁碟轉換成qcow2格式

# virsh shutdown centos7.4-x86_64

# qemu-img convert -f raw -o qcow2 /vdir/centos-7.4-x86_64.img /vdir/centos-7.4-x86_64.qcow2

2:修改xml配置檔案

修改格式的型別 把raw 改為qcow2

# virsh edit centos7.4-x86_64 //編輯xml配置檔案

/usr/libexec/qemu-kvm

#修改qcow2

#修改qcow2

3:命令使用

virt-cat 命令類似cat

virt-edit 命令用於編輯檔案,用法與vim基本一致

virt-df 命令用於檢視虛擬機器磁碟資訊

# virt-cat -a /vdir/centos-7.4-x86_64.qcow2 /etc/hostname //檢視虛擬機器主機名

# virt-df -h centos7.4-x86_64 //檢視虛擬機器掛載磁碟資訊

# virt-edit -a /vdir/centos-7.4-x86_64.qcow2 /etc/resolv.conf //編輯dns客戶機配置檔案

虛擬機器轉殖

轉殖乙個虛擬機器名字為test01

# virt-clone -o centos7.4-x86_64 -n test01 -f /vdir/test01.qcow2 //從 centos7.4-x86_64 轉殖 test01

虛擬機器快照

建立快照、檢視快照、恢復快照、刪除快照

# virsh start test01

# virsh snapshot-create test01 //建立快照

# virsh snapshot-current test01 //檢視快照版本資訊

# virsh snapshot-list test01 //檢視快照資訊

# virsh snapshot-revert test01 1533636617 //恢復虛擬機器至1533636617

# virsh snapshot-delete test01 1533636876 //刪除快照

kvm的效能優化思路及步驟

kvm採用全虛擬化技術,全虛擬化要由乙個軟體來模擬硬體層,故有一定的損耗,特別是i/o,因此需要優化。

1:cpu優化

所有guestcpu 不要超過物理機的cpu總數,建議複製主機cpu配置。

2:記憶體優化

1) :ksm(相同頁合併)開啟ksm會將相同的記憶體合併

記憶體分配的最小單位是 page(頁面),預設大小是4kb。可以將host機內容相同的記憶體合併,以節省記憶體的使用,特別是在虛擬機器作業系統都一樣的情況下,肯定會有很多內容相同的記憶體值,開啟了ksm,則會將這些記憶體合併為乙個,當然這個過程會有效能損耗,所有開啟與否,需要考慮使用場景。

# cd /sys/kernel/mm/ksm/ //這個目錄可檢視記憶體頁共享的情況

# ll //檢視

pages_shared 記錄了ksm共享的總頁面數

pages_sharing 檔案中記錄了當前共享頁面數

# echo 1 > run //臨時開啟ksm

或者可以在/etc/rc.local 新增 echo 1 > /sys/kernle/mm/ksm/ 開機自啟動

# cat run //檢視ksm是否開啟 0為關閉 1為開啟

# echo 1000 > pages_to_scan // 決定每次檢視多少個頁面 預設100 最大不超過2000 越大越好

2) :對記憶體設定限制

為了防止某個虛擬機器無節制的使用資源

# virsh memtune test01 //檢視虛擬機器test01 記憶體限制

設定強制最大記憶體

3) :大頁後端記憶體(開啟->設定大頁數量->掛載)

提公升大頁後端記憶體,減少客戶機消耗的記憶體並提高tlb命中率從而提公升kvm效能

我先解釋什麼叫大頁。

所謂的大頁指的是記憶體的大頁面。當然,有大頁面必然有對應的小頁面… 我們知道記憶體採用的是分頁機制,當初這個機制提出的時候,計算機的記憶體大小也就幾十m,所以當時記憶體預設的頁面大小都是4kb,那麼這個4kb 也就是所謂的小頁面。但是隨著計算機的硬體發展,現在的記憶體基本上都是幾十g 甚至上百g了,雖然,如果還是4kb小頁的方式,那麼必然會存在一些問題。那麼會有哪些問題呢?作業系統如果還是小頁存在,那麼將會產生較多的tlb miss和缺頁中斷,從而大大影響效能。

# cat /proc/meminfo //檢視記憶體資訊,無可用大頁

# echo 25000 > /proc/sys/vm/nr_hugepages //指定大頁需要的記憶體頁面數(臨時生效)

# sysctl -w vm.nr_hugepages=25000 //效果和上面一樣(永久生效)

# cat /proc/meminfo | grep hugepage

編輯虛擬機器的xml配置檔案來使用大頁分配記憶體

# virsh destroy test01 //關閉虛擬機器

# virsh edit test01 //編輯xml配置檔案

//新增使用大頁

# mount -t hugetlbfs /dev/hugepages/ //掛載hugetlbfs檔案系統

# systemctl restart libvirtd.service //重啟服務

# virsh start test01 //開啟虛擬機器

3:i/o優化

控制每台虛擬機器對磁碟資源的消耗

調整i/o的權重 ,權重越高寫入磁碟的優先順序越高。

# virsh blkiotune test01 //檢視權重

# virsh blkiotune test01 --weight 500 //設定權重500 範圍在100~1000

系統調優工具

用來監控和收集系統各個元件的資料,並依據資料提供的資訊動態調整系統設定,達到動態優化系統的目的。

# yum install tuned -y //安裝tuned工具

# systemctl start tuned.service //啟動tuned工具

# tuned-adm active //檢視當前優化方案

# tuned-adm list //檢視預先設定好的優化方案

KVM複製虛擬機器,KVM轉殖虛擬機器

1.關閉要轉殖的虛擬機器 2.語法 virt clone o 原虛擬機器 n 新虛擬機器 f 新虛擬機器存放的路徑 virt clone o centos7.0 n xuegod110 f var lib libvirt images xuegod110.img qcow2格式 virt clone...

KVM虛擬機器

一 kvm虛擬機器簡介 kernel based virtual machine的簡稱,是乙個開源的 系統虛擬化模組,自linux 2.6.20之後整合在linux的各個主要發行版本中。它使用linux自身的排程器進行管理,所以相對於xen,其核心原始碼很少。kvm目前已成為學術界的主流vmm之一。...

VirtualBox 虛擬機器轉換為KVM虛擬機器

原來在桌面上一直使用virtualbox虛擬機器管理程式 vmm 構建虛擬機器安裝不同的作業系統,現在 研究linux下的kvm,能否將已經建立的virtualbox虛擬客戶機 guest 轉換為kvm虛擬機器呢?經過查詢 資料,還真可以。下面說明一下步驟 1 將virtualbox虛擬機器的虛擬磁...