国产精品奶水无码视频免费|激情五月天深爱网|精品国产女主播一区在线观看|国产黄网一区二区

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

2017-04-13 10:03:25 熱度:
2017年4月12-13日,2017亞太CDN峰會(huì)在北京隆重召開(kāi)。在13日上午的視頻云論壇上,騰訊云研發(fā)總監(jiān)黃炳琪作了題為《騰訊云CDN全用戶(hù)態(tài)Server實(shí)踐》主題報(bào)告。
 

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

責(zé)任編輯:方珍