大規(guī)模容器場景下的資源隔離技術(shù)_第1頁
大規(guī)模容器場景下的資源隔離技術(shù)_第2頁
大規(guī)模容器場景下的資源隔離技術(shù)_第3頁
大規(guī)模容器場景下的資源隔離技術(shù)_第4頁
大規(guī)模容器場景下的資源隔離技術(shù)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

大規(guī)模容器場景下的資源隔離技術(shù)背景CPU隔離內(nèi)存隔離IO隔離混合部署挑戰(zhàn)Agenda容器共享的OS依賴namespace的系統(tǒng)環(huán)境隔離依賴cgroup機制的資源隔離背景虛擬機獨立的OS獨立的系統(tǒng)環(huán)境獨立的虛擬設(shè)備綁定CPU的隔離通過cpusetcgroup提供的cpuset.cpus接口進行指定位置的CPU綁定,由業(yè)務(wù)調(diào)度器分配獨享的CPU給每個容器共享CPU的隔離利用cpucgroup的share機制,在單個CPU上進行時間片粒度的隔離,通過調(diào)節(jié)同層cgroup間的share比例來分配CPU使用量CPU隔離綁定CPU的隔離CPU隔離CPU0CPU1CPU2CPU3CPU4CPU5CPU6CPU7容器X容器Y容器Zcpuset0~1cpuset2~3cpuset4~7容器X內(nèi)利用率20%折合0.4個CPU容器Y內(nèi)利用率80%折合1.6個CPU容器Z內(nèi)利用率50%折合2個CPU總體利用率50%折合4個CPU共享CPU的隔離CPU隔離CPU0CPU1CPU2CPU3CPU4CPU5CPU6CPU7容器X容器Y容器Zcpuset0~7share2unitcpuset0~7share2unitcpuset0~7share4unit容器X內(nèi)利用率5%折合0.4個CPU容器Y內(nèi)利用率20%折合1.6個CPU容器Z內(nèi)利用率25%折合2個CPU容器P內(nèi)利用率50%折合4個CPU總體利用率100%折合8個CPU容器Pcpuset0~7share4unit綁定CPU的隔離單個CPU只服務(wù)單個容器,不受其他容器的干擾利用率低,CPU空閑時無法復用CPU隔離共享CPU的隔離單個CPU服務(wù)多個容器,容器之間互相干擾利用率高,CPU按需分配面臨的問題proc文件系統(tǒng)未隔離(lxcfs?)共享CPU的情況下,根據(jù)CPU數(shù)量起工作線程的方式不再合理共享CPU的情況下,單個容器可能會使用超過其申請配額的CPU資源CPU隔離面臨的問題CPU隔離CPU0CPU1CPU2CPU3CPU4CPU5CPU6CPU7容器X容器Y容器Zcpuset0~7share2unitcpuset0~7share2unitcpuset0~7share4unit我有8個cpu,起8個線程讀數(shù)據(jù)比較合適…怎么都在iowait?我看到的負載不高,應(yīng)該繼續(xù)起工作線程…怎么OOM了?每個CPU應(yīng)該起幾個工作線程…怎么效率下降了?容器Pcpuset0~7share4unit我還沒跑業(yè)務(wù)呢怎么CPU就快用滿了?解決方案Per-cgroupCPU數(shù)據(jù)采集&proc接口隔離共享CPU時的競爭情況反饋共享CPU時的線程數(shù)控制手段應(yīng)用cfsquota機制來輔助限制CPU使用量CPU隔離Per-cgroupCPU數(shù)據(jù)采集&proc接口隔離CPU隔離當前任務(wù)運行在容器內(nèi)?CPUTick獲取全局統(tǒng)計結(jié)構(gòu)體獲取容器所對應(yīng)cgroup的統(tǒng)計結(jié)構(gòu)體&全局結(jié)構(gòu)體根據(jù)當前CPU狀態(tài)計入結(jié)構(gòu)體內(nèi)對應(yīng)計數(shù)器YN任務(wù)讀取/proc/stat當前任務(wù)運行在容器內(nèi)?獲取全局統(tǒng)計結(jié)構(gòu)體獲取容器所對應(yīng)cgroup的統(tǒng)計結(jié)構(gòu)體獲取結(jié)構(gòu)體內(nèi)計數(shù),組裝后進行輸出YN共享CPU時的競爭情況統(tǒng)計CPU隔離YN任務(wù)被喚醒,開始等待調(diào)度任務(wù)結(jié)束等待,準備上CPU記錄任務(wù)所在CFS隊列的調(diào)度等待時間X記錄任務(wù)所在CFS隊列的調(diào)度等待時間YY==X計入任務(wù)所在cgroup的CPU被搶占時間任務(wù)所在cgroup未被搶占CPU共享CPU時的線程數(shù)控制手段CPU隔離NN任務(wù)讀取/proc/cpuinfo任務(wù)需要控制線程數(shù)?返回預設(shè)的虛假數(shù)據(jù)返回真實數(shù)據(jù)Y任務(wù)調(diào)用sysconf獲取CPU數(shù)量CPU隔離性能的好壞對業(yè)務(wù)的影響最為直接,很大程度上決定了能夠部署的業(yè)務(wù)種類和數(shù)量。共享CPU的隔離方式是提升單機CPU利用率的關(guān)鍵,而綁定方式對實時性要求高的業(yè)務(wù)仍然是必須的,是否能在應(yīng)用無感知的前提下在兩個方式之間進行切換,是一個很大的挑戰(zhàn)。CPU隔離內(nèi)存使用量限制內(nèi)存隔離容器Xlimit10GcgroupD容器Ylimit20GcgroupE容器Zlimit20GcgroupFcgroupAlimit50GcgroupBlimit20GcgroupClimit30G面臨的問題盡管memorycgroup提供了內(nèi)存使用量的限制手段,整機內(nèi)存回收卻無法滿足容器內(nèi)的水位需求,在不觸發(fā)kswapd的情況下,單個容器內(nèi)可能已經(jīng)由于緩存過多而導致應(yīng)用頻繁進行直接內(nèi)存回收,產(chǎn)生性能毛刺。內(nèi)存隔離解決方案我們仿照全局kswapd,為每個memorycgroup起了獨立的kswapd進行水位監(jiān)控,提前回收內(nèi)存保持合理的水位線,避免了容器內(nèi)直接內(nèi)存回收導致的大延遲。內(nèi)存隔離N是否到達高水位?容器所對應(yīng)cgroup的kswapd休眠Y開始回收容器所對應(yīng)cgroup的頁表低水位喚醒容器所對應(yīng)cgroup的kswapd容器內(nèi)任務(wù)內(nèi)存分配BPS&IOPS限制cgroupv2提供了基于blkiocgroup的IOthrottle功能,通過和memorycgroup的聯(lián)動,可以對臟頁回寫進行一定程度上的控制。IO隔離容器XBPSdevA2mBPSdevB10mIOPSdevA10IOPSdevB50容器YBPSdevA5mBPSdevB10mIOPSdevA10IOPSdevB50容器ZBPSdevA3mBPSdevB10mIOPSdevA10IOPSdevB50面臨的問題IOthrottle方式不夠彈性,無法充分利用IO帶寬。針對單個磁盤設(shè)備的限速方案不夠通用,不同場景下的不同磁盤的最佳方案都不相同,管理混亂。IO隔離解決方案IO隔離背景單機資源利用率在只運行單一業(yè)務(wù)時往往無法達到預期值,由于業(yè)務(wù)負載的活動周期相對固定,在保障其最大資源需求量的前提下進行規(guī)劃,勢必會導致業(yè)務(wù)不繁忙時的資源浪費現(xiàn)象。故此為了保障單機資源不被浪費,需要將相性匹配的多種業(yè)務(wù)混合部署在同一臺機器上,這給資源隔離又帶來了新的挑戰(zhàn)。諸如LatencySensitive(LS)型業(yè)務(wù)

和BestEffort(BE)型業(yè)務(wù),就是非常理想的混合部署對象。LS型業(yè)務(wù)對實時性要求較高,日常資源需求量低,通常為關(guān)鍵業(yè)務(wù)。BE型業(yè)務(wù)無實時性要求,日常資源需求量高,通常為普通業(yè)務(wù)?;旌喜渴鹈媾R的CPU問題混合部署CPUX任務(wù)A任務(wù)B任務(wù)C任務(wù)A任務(wù)A任務(wù)B任務(wù)B任務(wù)CCPUY任務(wù)B任務(wù)B任務(wù)D任務(wù)B假設(shè)CPUX和Y互為一對超線程,那么LS型業(yè)務(wù)在被CPUX上的BE型業(yè)務(wù)搶走時間片的同時,還受到CPUY上BE型業(yè)務(wù)的影響LS型業(yè)務(wù)BE型業(yè)務(wù)解決方案BorrowedVirtualTime+NoiseClean混合部署CPUXcfs_rqcfs_rqTaskTaskcfs_rqTaskTaskCPUYcfs_rqcfs_rqTaskTaskIPIPREEMPTBorrowedVirtualTime特性讓LS型任務(wù)在單個CPU上有更多的機會搶占BE型任務(wù),而NoiseClean特性會保證LS型任務(wù)運行期間,對端HT上的BE型任務(wù)不會對其造成性能影響,兩者配合基本上可以保障LS型業(yè)務(wù)對于CPU的突發(fā)需求?;旌喜渴鹑萜鱔limit10GcgroupD容器YLimit20GcgroupEcgroupBlimit20G容器Zlimit20GcgroupFcgroupClimit30G面臨的內(nèi)存問題混合部署cgroupAlimit50GOOM發(fā)生時如何選擇任務(wù)?整機內(nèi)存回收時如何選擇頁表?容器Xlimit10GcgroupD容器YLimit20GcgroupEcgroupBlimit20G解決方案混合部署cgroupAlimit50G級別1級別2級別1OOMorReclaim容器Zlimit20GcgroupFcgroupClimit30G級別2通過合理配置memorycgrouppriority,可以確保關(guān)鍵業(yè)務(wù)的緩存不會優(yōu)先于普通業(yè)務(wù)的被回收走,同樣在發(fā)生OOM時(通常為內(nèi)存超賣時)可以一定程度上保護關(guān)鍵業(yè)務(wù)不先被殺死?;旌喜渴鹳Y源隔離的好壞對業(yè)務(wù)有著非常顯著的影響,偶發(fā)性的調(diào)度

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論