新聞中心
云計算虛擬化三部曲之一:CPU和內(nèi)存虛擬化
作者:IT一指禪 2023-03-30 07:39:57
云計算
虛擬化 我們知道,虛擬化技術(shù)是云計算的核心技術(shù)。通過虛擬化,可以切割計算、存儲和網(wǎng)絡(luò)資源的顆粒度。虛擬機可根據(jù)需要從池子里獲取和釋放各類型資源。

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


咨詢
建站咨詢
