欧美色图 亚洲|野外口爆视频国产|久久精品视频观看|97精品人人抽插

騰訊云黃炳琪:騰訊云如何通過F-Stack項(xiàng)目解決內(nèi)核擁堵

2017年4月12-13日,2017亞太CDN峰會在北京隆重召開。在13日上午的視頻云論壇上,騰訊云研發(fā)總監(jiān)黃炳琪作了題為《騰訊云CDN全用戶態(tài)Server實(shí)踐》主題報告。
 
騰訊云黃炳琪:騰訊云如何通過F-Stack項(xiàng)目解決內(nèi)核擁堵-DVBCN
圖為:騰訊云研發(fā)總監(jiān)黃炳琪
 
“長胖的Linux”:騰訊云操作短板
 
演講開頭,黃炳琪總監(jiān)向我們普及了一個“J型曲線”的概念。他認(rèn)為盡管最近幾年帶寬、流量型業(yè)務(wù)的翻番式的增長和如影隨形、愈演愈烈的DDOS攻擊和CC攻擊對CDN的技術(shù)體系提出來越來越多的挑戰(zhàn),但是面對這些挑戰(zhàn),騰訊云手里也有不少重武器來應(yīng)對,比如網(wǎng)卡和交換機(jī)容量的不斷提升、CPU核心數(shù)也水漲船高、NVMe和NVDIMM的應(yīng)用也越來越廣。
 
從硬件層面來看,黃炳琪認(rèn)為騰訊云有足夠的裝備來打贏這場戰(zhàn)爭,截至目前,騰訊云的網(wǎng)卡容量從25GbE升級到40GbE再到100GbE;CPU核數(shù)也從24Core升級到48Core,直至56Core。騰訊云還擁有“NVDIMM NVMe”。不過在實(shí)操過程中騰訊云發(fā)現(xiàn)現(xiàn)有的體系中有一個特別大的短板,黃炳琪將這個短板(Linux太臃腫)生動的形容為“Linux太胖了”,任何一個數(shù)據(jù)包從網(wǎng)絡(luò)上過來到達(dá)用戶層,都會經(jīng)過上下文切換,內(nèi)存分配和拷貝,鎖,局部性失效的問題。黃炳琪認(rèn)為,其實(shí)這些機(jī)制本身并沒有錯,這是幾十年來軟件工程領(lǐng)域的精華,只不過是linux是通用操作系統(tǒng)。他說“一個通用操作遇到這么特定的、極端的業(yè)務(wù)要求,的確是老干部遇到了新問題。”
 
問題是什么呢?黃炳琪說是“內(nèi)核擁堵”。一個數(shù)據(jù)從包網(wǎng)絡(luò)上過來,通過硬中斷、軟中斷或是NAPI把數(shù)據(jù)收到內(nèi)核里,然后經(jīng)歷內(nèi)存cp、各種各樣的鎖、線程喚醒、內(nèi)核通知鏈,然后到用戶空間線程來讀取,這個時候的線程還指不定在哪個CPU上跑。一套機(jī)制如若很復(fù)雜,做內(nèi)核開發(fā)的時候常常拿其中內(nèi)核鎖一項(xiàng)就問倒一大片面試者。因?yàn)檫@個問題的存在,業(yè)界逐漸出現(xiàn)了業(yè)務(wù)數(shù)據(jù)繞過內(nèi)核的呼聲,就是所謂的kernel bypass。
 
業(yè)界解決內(nèi)核擁堵:kernel bypass
 
黃炳琪從四個方面解釋了kernel bypass:
 
其一:kernel bypass重新定義的內(nèi)核空間和用戶空間的分工。內(nèi)核主要做高優(yōu)先級,高權(quán)限的控制信令的操作。而用戶空間主要關(guān)注于大流量,高并發(fā)的數(shù)據(jù)流收發(fā)。在實(shí)踐上,一般kernel bypass是一個網(wǎng)卡隊(duì)列對應(yīng)一個用戶空間進(jìn)程,對應(yīng)一個綁定的CPU,形成一個邏輯單元。所有的數(shù)據(jù)和計(jì)算都在這個單元里面閉環(huán),每個邏輯單元之間不共享任何數(shù)據(jù)。
 
其二:這個架構(gòu)如何解決4個問題。由于全部是用戶空間,自然不存在硬中斷,軟中斷,用戶態(tài)和內(nèi)核態(tài)的切換,由于線程綁定在特定的CPU上,全異步執(zhí)行,所以沒有進(jìn)程的上下文切換。從設(shè)備DMA出來的內(nèi)存一直可以用到死,不需要內(nèi)核空間和用戶空間拷來拷去。
 
內(nèi)核中大量鎖的出現(xiàn),是因?yàn)閘inux作為搶占式的內(nèi)核,會在代碼不受控制的情況下在多個上下文中來回串,還會共享很多數(shù)據(jù)。比如說同一個端口號,google也出了一個補(bǔ)丁muti port來降低端口鎖的影響,DNS端口分發(fā)。
 
其三:kernel bypass的難度。業(yè)界要一直大規(guī)模的用起來,主要在二層、三層做網(wǎng)關(guān)路由轉(zhuǎn)發(fā)等工作,最多玩玩簡單的UDP協(xié)議。因?yàn)楸緛沓恋碓诓僮飨到y(tǒng)內(nèi)的功能和機(jī)制已經(jīng)發(fā)展了幾十年,外圍的軟件生態(tài)也是圍繞其建設(shè)的。要重新在用戶空間復(fù)制一套的難度和工作量其實(shí)都不是一般得大。
 
其四:為什么要投入kernel bypass。黃炳琪解釋,業(yè)務(wù)的壓力其實(shí)并不是一天兩天的事情了,從web2.0開始,互聯(lián)網(wǎng)的爆發(fā)式增長,迫使業(yè)界必須從這條路上趟一趟。所以從幾年前騰訊云在從簡到易的實(shí)踐by kernel的方案,時至今日,已經(jīng)形成完整的、成熟的、易用的一個開發(fā)工具棧。
 
F-Stack項(xiàng)目——騰訊云如何解決內(nèi)核擁堵
 
F-Stack是基于kernel bypass的理念的完整的、成熟的、易用的、高性能server技術(shù)?!,F(xiàn)代的操作系統(tǒng)和軟件架構(gòu)是幾十年來人類智慧的結(jié)晶,騰訊云的實(shí)現(xiàn)理念是:把這個星球最優(yōu)秀的軟件和代碼粘合起來。在此之前,騰訊云也走過彎路,開發(fā)了一個能用的TCP/IP協(xié)議棧,發(fā)現(xiàn)走不通以后就放棄了。
 
F-Stack的特點(diǎn):1、全用戶態(tài)。用戶態(tài)開發(fā)簡單、安全;拒絕四個上下文切換;拒絕內(nèi)存拷貝;拒絕中斷和中斷風(fēng)暴。2、網(wǎng)卡隊(duì)列每CPU每進(jìn)程。線性能力擴(kuò)展;拒絕調(diào)度;拒絕鎖;拒絕破壞局部性。黃炳琪解釋道:由于全部是用戶空間,自然不存在硬中斷,軟中斷,用戶態(tài)和內(nèi)核態(tài)的切換,由于線程綁定在特定的CPU上,全異步執(zhí)行,所以沒有進(jìn)程 的上下文切換。從設(shè)備DMA出來的內(nèi)存一直可以用到死,不需要內(nèi)核空間和用戶空間考來考去。
 
F-Stack在騰訊云CDN的應(yīng)用:1、直播異常不斷流;2、CDN安全防攻擊;3、CDN TCP協(xié)議加速;4、CDN性能提升。
 
演講最后一部分,黃炳琪向我們展示了F-Stack性能測試,由于他的團(tuán)隊(duì)做了大量的努力大量的優(yōu)化,F(xiàn)-Stack的性能測試從短連接測試到長連接測試再到混合連接測試,F(xiàn)-Stack都表現(xiàn)完美。
相關(guān)文章
北京商務(wù)局發(fā)實(shí)施方案:取消IDC、CDN、ISP等電信領(lǐng)域外資股比限制,積極推動外資企業(yè)申請資質(zhì)
北京商務(wù)局發(fā)實(shí)施方案:取消IDC、CDN、I…
騰訊云入選2023 Gartner分布式云報告 【附下載】
騰訊云入選2023 Gartner分布式云報告 【…
阿里云容蓓:DCDN助力云原生時代的應(yīng)用構(gòu)建及最佳實(shí)踐
阿里云容蓓:DCDN助力云原生時代的應(yīng)用…
騰訊云程文杰:全球數(shù)字化深度發(fā)展? Tencent Cloud EdgeOne乘風(fēng)而上
騰訊云程文杰:全球數(shù)字化深度發(fā)展? Ten…
中國廣電省網(wǎng)公司罕見取得全國范圍的內(nèi)容分發(fā)(CDN)、互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)資質(zhì)為哪般?
中國廣電省網(wǎng)公司罕見取得全國范圍的內(nèi)…
騰訊云黃平中:TDSQL助力政企核心系統(tǒng)國產(chǎn)化 | GDCC 最強(qiáng)音
騰訊云黃平中:TDSQL助力政企核心系統(tǒng)國…
我還沒有學(xué)會寫個人說明!

24小時排行

  • 暫無文章