歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Xen虛擬機cpu負載過高性能問題

Xen虛擬機cpu負載過高性能問題

日期:2017/2/28 15:50:53   编辑:Linux教程

背景:

在Xen環境下,內存與CPU分配是可以動態改變的。通過動態更改內存與CPU分配,可以達到優化虛擬機性能的目的。

通常情況下,我們的虛擬機分配物理cpu的資源為自動分配的。當在一個物理機器上面分配多個虛擬機,並且虛擬機的cpu總和超過實際物理機器的cpu數量時,並且各個虛擬機在高負載的情況下,高負載的虛擬機會調用其他虛擬機器的資源

這次發現的問題是我們公司某系統新上線了三台虛機服務器,上線後發現,在流量是平均分配的前提下,新上的機器的負載比老機器高,新上的機器負載在8左右,而老機器的負載在4左右,查詢了機器的配置和參數設置,新老機器都一樣。後來通過iostat指令,發現新機票的steal值非常高,大於在40左右,而老機器的steal只有0.1左右。經與老大咨詢,steal的值高會代表實體機的CPU負載高。後經由老大發現,新上線的三台虛擬機在一台實體機上,每個虛機分配了四個CPU,而實體機是個8CPU的服務器,導致了三個虛機之間征用CPU。(cpu要打開超線程!!!)

檢查方法

1,檢查系統狀態

# iostat 1

avg-cpu: %user %nice %system %iowait %steal %idle
61.58 0.00 22.66 0.00 13.30 2.46

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

avg-cpu: %user %nice %system %iowait %steal %idle
58.77 0.00 23.70 0.00 17.54 0.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvda 8.49 0.00 520.75 0 552
xvda1 0.00 0.00 0.00 0 0

從這裡我們可以看到 %steal 的值變化比較多,也就說明存在虛擬加之間在爭用CPU的資源。

2. 檢查各個虛擬機分配的CPU資源是否和物理機器的CPU資源一致。

解決方法

1. 如發現虛擬機的cpu資源(數量)大於物理機器的CPU資源。檢查物理機器是否已經打開超線程,如果沒有打開,需要打開。

2. 重啟虛擬機後,檢查資源是否還是解決。如果發現%steal 值恢復正常。問題解決。

附上一篇參考資料 http://www.linuxidc.com/Linux/2012-05/60941p2.htm

通俗一點來講:把CPU比作人,那麼沒有超線程時這個人只用右手干活。有了超線程之後,左右手同時干不同的事情。在一定程度上提高了效率。

Copyright © Linux教程網 All Rights Reserved