溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

虛擬化Pod性能比裸機(jī)還要好的原因

發(fā)布時(shí)間:2021-06-29 11:52:38 來(lái)源:億速云 閱讀:150 作者:chen 欄目:云計(jì)算

這篇文章主要介紹“虛擬化Pod性能比裸機(jī)還要好的原因”,在日常操作中,相信很多人在虛擬化Pod性能比裸機(jī)還要好的原因問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”虛擬化Pod性能比裸機(jī)還要好的原因”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

為什么太平洋項(xiàng)目的 Native Pods 更快?
現(xiàn)代的服務(wù)器一般有多個(gè)處理器(CPU),采用的是 NUMA(非統(tǒng)一內(nèi)存訪(fǎng)問(wèn))的內(nèi)存訪(fǎng)問(wèn)方式。在 NUMA 體系架構(gòu)中,每個(gè) CPU 負(fù)責(zé)管理一塊內(nèi)存,稱(chēng)為本地(local)內(nèi)存。

當(dāng) CPU 訪(fǎng)問(wèn)自己管理的內(nèi)存時(shí),因?yàn)槭蔷徒L(fǎng)問(wèn),速度比較快;但如果需要訪(fǎng)問(wèn)其它 CPU 名下的內(nèi)存時(shí)(稱(chēng)為遠(yuǎn)程訪(fǎng)問(wèn)),往往需要經(jīng)過(guò)若干個(gè)電路開(kāi)關(guān),通常會(huì)慢一些。

ESXi 在調(diào)度 Pod 的時(shí)候,考慮到了 Pod 使用內(nèi)存的本地性(locality),會(huì)確保其盡量訪(fǎng)問(wèn)本地內(nèi)存,這樣 Pod 運(yùn)行性能比較好,并提高總體 CPU 效率。另一方面,裸機(jī) Linux 中的進(jìn)程調(diào)度程序可能無(wú)法在 NUMA 域之間提供類(lèi)似的功能,因此性能有一定的損失。

ESXi CPU 調(diào)度程序知道 Pod 是獨(dú)立的運(yùn)行實(shí)體,因此會(huì)盡量確保其內(nèi)存訪(fǎng)問(wèn)位于本地 NUMA 域內(nèi),大大減少了遠(yuǎn)程內(nèi)存訪(fǎng)問(wèn)的次數(shù),從而為 Pod 中的工作負(fù)載提供更好的性能,并提高 CPU 總體效率。另一方面,Linux 中的進(jìn)程調(diào)度程序無(wú)法較好地識(shí)別 NUMA 域之間差異,所以不能提供類(lèi)似的調(diào)度能力。

太平洋項(xiàng)目 Native Pods 的性能評(píng)估實(shí)驗(yàn)
為了比較性能,VMware 的工程師在相同的硬件上配置了圖1所示的測(cè)試平臺(tái),每臺(tái)服務(wù)器硬件是 2.2 GHz 的內(nèi)核 44 個(gè)以及 512 GB 內(nèi)存:
   a) 兩個(gè)太平洋項(xiàng)目的ESXi節(jié)點(diǎn)和其上的主管集群
   b) 兩個(gè)缺省配置的某主流企業(yè)級(jí) Linux 裸機(jī)集群節(jié)點(diǎn)


虛擬化Pod性能比裸機(jī)還要好的原因圖1:測(cè)試平臺(tái)配置

通常,超線(xiàn)程處理器內(nèi)核具有多個(gè)邏輯內(nèi)核(超線(xiàn)程),它們之間共享硬件資源。為了減少對(duì)測(cè)試影響的因素,在兩個(gè)測(cè)試平臺(tái)中都禁用了超線(xiàn)程。在每個(gè)集群中,使用其中一個(gè)節(jié)點(diǎn)作為被測(cè)系統(tǒng)(Worker Node),而在另一個(gè)節(jié)點(diǎn)上運(yùn)行 Kubernetes Master 。

虛擬化Pod性能比裸機(jī)還要好的原因

圖2:Pod配置

在 Worker 節(jié)點(diǎn)中部署了10個(gè) Kubernetes Pod,每個(gè) Pod 的資源限制為 8個(gè)CPU,42 GB 內(nèi)存,并在每個(gè)容器中運(yùn)行一個(gè)標(biāo)準(zhǔn) Java 事務(wù)基準(zhǔn)測(cè)試,如圖2所示。

考慮到用于我們的工作負(fù)載的復(fù)雜性和性質(zhì),在實(shí)驗(yàn)中使用了較大的 Pod ,以便管理測(cè)試樣例運(yùn)行和 Pod 的評(píng)分匯總。使用 Pod 定義將 Pod 固定(affinitized)到每個(gè)測(cè)試平臺(tái)中的 Worker節(jié)點(diǎn)。使用所有10個(gè) Pod 的匯總分?jǐn)?shù)(最大吞吐量)來(lái)評(píng)估被測(cè)系統(tǒng)的性能。測(cè)試中基本沒(méi)有設(shè)計(jì)I / O或網(wǎng)絡(luò)傳輸,并且所有實(shí)驗(yàn)都限于單個(gè) Kubernetes節(jié)點(diǎn)。因此,I / O或網(wǎng)絡(luò)性能方面的影響不在本文中討論。

測(cè)試結(jié)果

圖3顯示了某主流企業(yè)級(jí) Linux 裸機(jī)節(jié)點(diǎn)的性能和太平洋主管群集的性能(綠色條)對(duì)比,裸機(jī) Linux 的性能作為基準(zhǔn)1.0。
與裸機(jī)企業(yè)級(jí) Linux 相比,太平洋主管群集的性能提高了8%。

虛擬化Pod性能比裸機(jī)還要好的原因

圖3:太平洋主管集群與裸機(jī)企業(yè)級(jí)Linux節(jié)點(diǎn)相對(duì)性能

測(cè)試重復(fù)了多次并用平均數(shù)減少了實(shí)驗(yàn)的誤差。與裸機(jī)情況相比,太平洋主管群集可實(shí)現(xiàn)約8%的總體性能提升。

分析和優(yōu)化
查看系統(tǒng)統(tǒng)計(jì)信息,與 vSphere 主管集群相比,裸機(jī)上運(yùn)行的工作負(fù)載被許多遠(yuǎn)程 NUMA 內(nèi)存訪(fǎng)問(wèn)拖累了性能。vSphere 主管群集的性能優(yōu)勢(shì)主要來(lái)自更優(yōu)的CPU調(diào)度方法,同時(shí)還抵扣掉因虛擬化帶來(lái)的性能額外開(kāi)銷(xiāo)。
進(jìn)一步分析發(fā)現(xiàn),在裸機(jī) Linux 中,只有約43.5%的非命中L3高速緩存的數(shù)據(jù)可從本地 DRAM 中獲取,其余的則需要由遠(yuǎn)程內(nèi)存提供。相比之下,vSphere 主管群集得益于ESXi中出色的 CPU 調(diào)度功能,有 99.2%的未命中 L3 數(shù)據(jù)可在本地 DRAM中獲得,從而避免了遠(yuǎn)程內(nèi)存訪(fǎng)問(wèn),提高了vSphere主管群集的性能。(如圖4所示)

虛擬化Pod性能比裸機(jī)還要好的原因

圖4:vSphere 主管群集與裸機(jī) Linux上的 DRAM 命中率對(duì)比(數(shù)值越大越好) 

為了減少裸機(jī) Linux上非本地 NUMA 訪(fǎng)問(wèn)對(duì)性能的影響,工程師們嘗試了一些基本的優(yōu)化,例如切換 NUMA 平衡開(kāi)關(guān)和使用基于任務(wù)集的Pod固定到 CPU,但是這些都沒(méi)有實(shí)質(zhì)性地提高性能。目前 Kubernetes 沒(méi)有對(duì) NUMA 架構(gòu)的 CPU 使用納入 Pod 規(guī)范,因此暫時(shí)沒(méi)有教好的方法解決這個(gè)問(wèn)題。

在本實(shí)驗(yàn)的結(jié)論取決于Pod訪(fǎng)問(wèn)內(nèi)存的密集度情況,如果工作負(fù)載具有不同的內(nèi)存需求,則 NUMA 本地性對(duì)其性能的影響可能會(huì)有所不同。簡(jiǎn)而言之,對(duì)內(nèi)存訪(fǎng)問(wèn)頻率高的 Pod 應(yīng)用,跑在 vSphere 主管群集上可能比裸機(jī)上性能更好。
更多信息,參見(jiàn):

https://blogs.vmware.com/performance/2019/10/how-does-project-pacific-deliver-8-better-performance-than-bare-metal.html

到此,關(guān)于“虛擬化Pod性能比裸機(jī)還要好的原因”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

pod
AI