KVM資源划分分配技巧


kvm有個叫做超分的概念,根據這個特性可以分配出超出物理機配置的數台虛擬機。

以下是自己總結的一些划分技巧:

一、最保守方法(性能最好)

根據物理機的資源,按虛擬機的數量疊加但不超過物理機的總和。不超過物理機也就是不存在資源競爭問題,性能達到最優。

二、超分概念(性能相對較差,存在資源競爭)

RedHat Linux KVM:

  • KVM 由 libvirt API 和基於該 API的一組工具進行管理和控制。

  • KVM 支持系統資源超分,包括內存和CPU的超分。RedHat Linux 最多支持物理 CPU 內核總數的10倍數目的虛擬CPU,但是不支持在一個虛機上分配超過物理CPU內核總數的虛擬CPU。

  • 客戶機 vCPU 數目的分配方法

    1. 不是客戶機的 vCPU 越多,其性能就越好,因為線程切換會耗費大量的時間;應該根據負載需要分配最少的 vCPU。

    2. 主機上的客戶機的 vCPU 總數不應該超過物理 CPU 內核總數。不超過的話,就不存在 CPU 競爭,每個 vCPU 線程在一個物理 CPU 核上被執行;超過的話,會出現部分線程等待 CPU 以及一個 CPU 核上的線程之間的切換,這會有 overhead。

    3. 將負載分為計算負載和 I/O 負載,對計算負載,需要分配較多的 vCPU,甚至考慮 CPU 親和性,將指定的物理 CPU 核分給給這些客戶機。

    我們來假設一個主機有 2 個socket,每個 socket 有 4 個core。主頻2.4G MHZ 那么一共可用的資源是 2*4*2.4G= 19.2G MHZ。假設主機上運行了三個VM,VM1和VM2設置為1socket*1core,VM3設置為1socket*2core。那么VM1和VM2分別有1個vCPU,而VM3有2個vCPU。假設其他設置為缺省設置。

    那么三個VM獲得該主機CPU資源分配如下:VM1:25%; VM2:25%; VM3:50%

     假設運行在VM3上的應用支持多線程,那么該應用可以充分利用到所非配的CPU資源。2vCPU的設置是合適的。假設運行在VM3上的應用不支持多線程,該應用根本無法同時使用利用2個vCPU. 與此同時,VMkernal層的CPU Scheduler必須等待物理層中兩個空閑的pCPU,才開始資源調配來滿足2個vCPU的需要。在僅有2vCPU的情況下,對該VM的性能不會有太大負面影響。但如果分配4vCPU或者更多,這種資源調度上的負擔有可能會對該VM上運行的應用有很大負面影響。

    確定 vCPU 數目的步驟。假如我們要創建一個VM,以下幾步可以幫助確定合適的vCPU數目

    1 了解應用並設置初始值

        該應用是否是關鍵應用,是否有Service Level Agreement。一定要對運行在虛擬機上的應用是否支持多線程深入了解。咨詢應用的提供商是否支持多線程和SMP(Symmetricmulti-processing)。參考該應用在物理服務器上運行時所需要的CPU個數。如果沒有參照信息,可設置1vCPU作為初始值,然后密切觀測資源使用情況。

    2 觀測資源使用情況

        確定一個時間段,觀測該虛擬機的資源使用情況。時間段取決於應用的特點和要求,可以是數天,甚至數周。不僅觀測該VM的CPU使用率,而且觀測在操作系統內該應用對CPU的占用率。特別要區分CPU使用率平均值和CPU使用率峰值。

         假如分配有4個vCPU,如果在該VM上的應用的CPU

    • 使用峰值等於25%, 也就是僅僅能最多使用25%的全部CPU資源,說明該應用是單線程的,僅能夠使用一個vCPU (4 * 25% = 1 )

    • 平均值小於38%,而峰值小於45%,考慮減少 vCPU 數目

    • 平均值大於75%,而峰值大於90%,考慮增加 vCPU 數目

    3 更改vCPU數目並觀測結果

    每次的改動盡量少,如果可能需要4vCPU,先設置2vCPU在觀測性能是否可以接受。

  • 支持 KSM (Kenerl Same-page Merging 內核同頁合並)

  • KSM (Kernel SamePage Merging 或者 Kernel Shared Memory)

    KSM 在 Linux 2.6.32 版本中被加入到內核中。

    原理

    其原理是,KSM 作為內核中的守護進程(稱為 ksmd)存在,它定期執行頁面掃描,識別副本頁面並合並副本,釋放這些頁面以供它用。因此,在多個進程中,Linux將內核相似的內存頁合並成一個內存頁。這個特性,被KVM用來減少多個相似的虛擬機的內存占用,提高內存的使用效率。由於內存是共享的,所以多個虛擬機使用的內存減少了。這個特性,對於虛擬機使用相同鏡像和操作系統時,效果更加明顯。但是,事情總是有代價的,使用這個特性,都要增加內核開銷,用時間換空間。所以為了提高效率,可以將這個特性關閉。

    好處

    其好處是,在運行類似的客戶機操作系統時,通過 KSM,可以節約大量的內存,從而可以實現更多的內存超分,運行更多的虛機。 

 

參考:

http://blog.51cto.com/xiaoqinglang/1880269
http://blog.51cto.com/xiaoqinglang/1880271
http://blog.51cto.com/xiaoqinglang/1880274

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM