kvm 虛擬機的性能調優
性能優化說明
性能優化有兩個方面:1、linux 系統自帶 2、kvm 自帶優化。大多數的優化都是默認配置的,只是通過了解這些優化項來進一步了解linux 及kvm 虛擬化
CPU優化
場景1:
上下文切換:
宿主機
ring 0
ring 3
虛擬機
ring 0
ring 3
解決:vmware 虛擬機編輯處理器--虛擬化引擎--勾選 “虛擬化Intel VT-X/EPT 或AMD-V/RVI(V)”
場景2
緩存(分為三級):
cache miss 進程在一個cpu 上運行時,cpu 會產生該進程相關的緩存(數據、指令),當此進程跳轉到其他的cpu 運行時原cpu 的就會存在cache miss 現象,
解決:
綁定在一個固定的物理cpu 核上(因為同一cpu物理核虛擬出來的邏輯cpu 內存是共享的)
taskset -cp 1 25718
缺點:失去靈活性。
內存優化
優化方式:
1、空間優化
2、尋址
尋址優化
EPT技術(vmware 虛擬機編輯處理器--虛擬化引擎--勾選 “虛擬化Intel VT-X/EPT 或AMD-V/RVI(V)”):
虛擬機:虛擬內存
虛擬機:物理內存
宿主機:虛擬內存
宿主機:物理內存
大頁內存(默認開啟)
空間優化(默認開啟)
KSM內存合並
[ksmd]
I/O優化
virtio(默認開啟)
kvm 采用半虛擬化技術實現網絡、磁盤等io 調度算法
ps aux | grep virtio (lcentos 一般內核默認內置了此服務)
kvm I/O優化:
正常磁盤數據IO 流程:
虛擬機:application->OS pagecache-disk ->宿主機:virtual disk images->Host os pagecache->物理磁盤緩存->物理磁盤
調度算法(linux 內核自帶)
2.6 內核: Noop CFQ AS Deadline 默認:CFQ
3.10 內核: Noop CFQ Deadline 默認:Deadline
算法用途:
Noop 先後順序,無其他算法。適用於ssd接口的硬盤(SSD很快,使用算法反而慢了)
CFG 公平算法
Deadline 讀的時間要短於寫,防止寫操作餓死,最早應用於數據庫服務器上,現在3.10 已經默認采用了
AS 3.10 已經棄用
查看當前系統存在的調度算法
[root@linux-node1 ~]# dmesg | grep -i scheduler
[ 1.945474] io scheduler noop registered
[ 1.945476] io scheduler deadline registered (default)
[ 1.945495] io scheduler cfq registered
查看當前使用的調度算法
[root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
kvm 虛擬機的性能調優