云計算虛擬化三部曲之一:CPU和內存虛擬化
大家好,我是IT售前工程師Bernie.
我們知道,虛擬化技術是云計算的核心技術。通過虛擬化,可以切割計算、存儲和網(wǎng)絡資源的顆粒度。虛擬機可根據(jù)需要從池子里獲取和釋放各類型資源。
也就是說:當一個虛擬機繁忙的時候可以從池子里申請資源;當它閑置的時候,再把這部分資源讓出來,讓其他的這個虛擬機獲取。
Bernie將用3篇文章詳細論述計算資源虛擬化、存儲資源虛擬化和網(wǎng)絡資源虛擬化的底層原理。本文是第一篇,討論計算資源的虛擬化,歡迎閱讀。
計算資源主要是CPU和內存,虛擬化也就是這兩種資源的虛擬化。
CPU虛擬化
我們以一臺Intel6248R服務器為例,進行深度的剖析。服務器的CPU配置為:24核心、48線程,主頻是3GHz,并且支持超線程。
那么一顆CPU的算力是多少呢?
未開啟超線程時
一個CPU的算力 = 主頻 * CPU核心數(shù);
所以一顆6248R的CPU算力是 = 3*24 = 72GHz。
開啟超線程時
超線程也是一個十分重要的概念,后續(xù)可以專門寫一篇文章說明,這里簡單說一下:超線程是將一顆物理CPU通過復用的方式變?yōu)?顆邏輯CPU。
所以,如果開啟超線程的話,一顆物理6248R的CPU算力是
3*24*2=144GHz
正常情況下一臺服務器是不會只配置一顆CPU的,至少也是2顆,我們就按照2顆計算。那么,在開啟超線程的情況下,一臺服務器的總算力就是288GHz。
開啟超線程后,對于單個CPU來說,可以提供出來的計算資源為
如果我們規(guī)定:一個最小集群中可以部署了4臺同樣的服務器,那么這個集群的總算力就是288*4=1152GHz
接下來,最重要的一步要來了!
虛擬化之后,我們會通過云管平臺創(chuàng)建一些虛擬機VM,這些虛擬機是如何分配上面說的這么多CPU算力的呢?
實際上,我們是給創(chuàng)建的虛擬機劃分線程的形式分配算力的。比如下圖,創(chuàng)建兩個虛擬機:VM1和VM2,然后給VM1劃分3個線程,給VM2劃分4個線程。這就意味著VM1具備了9GHz的算力,VM2具備了12GHz的算力。
虛擬機VM中的vCPU即為一個線程。所以,對于一臺服務器來說,在同一時刻所有VM中vCPU的總數(shù)不能高于總線程數(shù)。比如例子中的vCPU個數(shù)不能大于96.
這里有一個問題:在上述例子中,我們假設總共創(chuàng)建了10個VM,把96個線程全部瓜分完了。我們還能繼續(xù)創(chuàng)建虛擬機嗎?
答案是:
YES!
原因是:在云計算中存在資源超分的概念。
資源超分
比如下面是7個線程,我們創(chuàng)建了3個虛擬機,每臺虛擬機分配了3個線程。如果在同一時刻,3個VM同時占滿3個線程顯然是不合適的,也做不到。
但是,云計算的超分狀態(tài)完美地解決了資源過飽和的問題。在超分模式下,vCPU可以通過時間分片輪流使用線程的方式進行計算。
不過超分模式也并不是十分完美的,它有可能降低vCPU實際算力。比如:原本一個線程是3GHz,即每秒鐘計算30億次,有可能在時間片輪流使用的情況下,平均1秒鐘它能夠使用到的時間只有0.5s,也就是說:每秒只能計算15億次。
所以,超分模式下vCPU的最高算力是主頻,最低可能是總算力/vCPU個數(shù)。
我們在實際的虛擬化中,一般是會使用到超分的,這也是云計算的邊際效應。否則,云計算的靈魂也就不復存在了。不過,超分比也不是越高越好,太高了會影響VM的實際算力。
CPU回收
當虛擬機銷毀或者暫時不需要這么多計算資源時,就涉及到CPU的回收,以實現(xiàn)物理資源的最大化利用。因為vCPU虛擬化是通過分時復用實現(xiàn)的,所以只要VM結束就會自動將CPU釋放掉,其他的虛擬機就可以申請使用空閑區(qū)的CPU算力了。
內存虛擬化
在一個資源池中,總的內存資源是每臺服務器的內存的累加。內存的虛擬化過程比CPU簡單一些,我們重點關注其申請和回收兩個過程即可。
內存申請
每個虛擬機VM可以向資源池申請內存,比如某個虛擬機VM1在創(chuàng)建時設置內存參數(shù)為4G,有可能開機的時候給它1G內存,在程序運行較多時再給它2G內存,但總數(shù)不超過4G。
內存回收
由于VM存在超分的情況,所以不是說虛擬機VM銷毀后,它占用的內存立即回收。因為這個內存有可能也在被其他VM使用ing。底層操作系統(tǒng)平臺會周期性地掃描判斷內存使用情況,來決定回收與否。
比如在v-Sphere虛擬化方案中,當服務器:
- 6%=<可用內存,hostOS使用“TPS”方式回收;
- 4%=<可用內存可用內存<6%,使用“TPS”+“氣球”回收;
- 2%=<可用內存可用內存<4%,使用“TPS”+“氣球”+“壓縮”+“交換文件”加速內存回收;
- 可用內存<2%,使用“TPS”+"氣球“壓縮”+“交換文件”加速內存回收,同時禁止所有VM申請更多內存。
總結
以上是云計算中CPU和內存虛擬化的全部分享,篇幅有限,后續(xù)將發(fā)文進一步探討存儲虛擬化和網(wǎng)絡虛擬化的相關內容。
文章出自:??IT一指禪??,如有轉載本文請聯(lián)系【IT一指禪】今日頭條號。