本周寫(xiě)篇輕松的話(huà)題,注意信息傳輸?shù)某叨群涂s放比例,寫(xiě)篇隨筆。
控制面和數(shù)據(jù)面隨規(guī)模縮放的影響,舉幾個(gè)例子就能說(shuō)明白。
CSMA/CD,控制面和數(shù)據(jù)面在一起,控制信息交互時(shí)延和數(shù)據(jù)面時(shí)延在同一尺度時(shí),就到了極限,因?yàn)榭刂平换r(shí)延相對(duì)數(shù)據(jù)面時(shí)延更大的話(huà),便可以反過(guò)來(lái)用了,如果一個(gè)胖經(jīng)理跑 100 步等于一個(gè)工人走 1 步,為什么不換個(gè)瘦經(jīng)理或者讓工人命令經(jīng)理呢,因此它們趨向最多收斂到一致??刂泼婧蛿?shù)據(jù)面合而為一的另一個(gè)例子是 TCP,帶內(nèi)控制協(xié)議典范。
翻轉(zhuǎn)時(shí)延分配的經(jīng)典例子是非對(duì)稱(chēng)加密和對(duì)稱(chēng)加密,時(shí)延更大的 RSA 可用的理由是它更安全更方便解決對(duì)稱(chēng)密鑰分發(fā)和認(rèn)證問(wèn)題,但更大的理由是這些需求相對(duì)于對(duì)稱(chēng)加密更不頻繁,否則人們肯定會(huì)想辦法組合對(duì)稱(chēng)加密算法來(lái)滿(mǎn)足。
交換式以太網(wǎng)脫胎于總線(xiàn)是從 CSMA/CD 逐步將控制面抽離并將控制面信息交互時(shí)延不斷壓縮的過(guò)程,最終控制信息交互時(shí)延足夠短,幾乎就有了全局視圖,用 crossbar 類(lèi)交換設(shè)施取代統(tǒng)計(jì)仲裁變得可行。但 rfc2544 的要求指出控制時(shí)延依然存在,它并沒(méi)有消失,只是和傳播時(shí)延相比,低到足以忽略了。
接著看另一個(gè)時(shí)延尺度問(wèn)題從而揭示根本。
提到 rtt,它指主機(jī)時(shí)延,傳播時(shí)延,排隊(duì)時(shí)延之和,整個(gè)網(wǎng)絡(luò)的控制面開(kāi)銷(xiāo)被所有流量的轉(zhuǎn)發(fā)過(guò)程分擔(dān)。注意到這些時(shí)延在整體 rtt 中的占比以及影響非常重要。
對(duì)不同尺度的網(wǎng)絡(luò),主機(jī)時(shí)延和排隊(duì)時(shí)延的占比存在根本區(qū)別,問(wèn)題解法也根本不同。網(wǎng)絡(luò)規(guī)模越小,主機(jī)時(shí)延和排隊(duì)時(shí)延占比越大,而排隊(duì)時(shí)延影響越大,詳細(xì)分析這事能指導(dǎo)我們做正確的事。
注意兩個(gè)變量,一個(gè)是光速傳播時(shí)延隨網(wǎng)絡(luò)規(guī)模線(xiàn)性變化,即 proprt = d/c,一個(gè)是 buffer 排空時(shí)間隨網(wǎng)絡(luò)規(guī)模以 根號(hào)n 變化,依據(jù)是 buffer_size = bdp/根號(hào)n。兩個(gè)變量表現(xiàn)為兩個(gè)不同伸縮速率,圍繞這兩個(gè)伸縮速率的其它時(shí)延伸縮是根本:
在數(shù)據(jù)中心,rtt 的主機(jī)分量和傳播分量在同一 us 尺度,排隊(duì)分量要高一兩個(gè)數(shù)量級(jí)在 ms 尺度,以應(yīng)對(duì)隨機(jī)而頻繁的 incast。三者占比類(lèi)似,主機(jī)時(shí)延增加一倍,rtt 至少增加 1/3,而一旦遭遇 buffer queuing,rtt 至少增加 10 倍,這指明兩個(gè)明確的方向,降低主機(jī)時(shí)延,減少 incast。大多數(shù)互聯(lián)網(wǎng)廠商的伙計(jì)們都在干這兩件事,DPDK,XDP 等 bypass,F(xiàn)PGA,DPU 等研發(fā)均旨在降低主機(jī)時(shí)延,而包括 SRD,F(xiàn)alcon 等 transport protocol,以及 SDN 技術(shù)旨在緩解甚至消除排隊(duì)時(shí)延,而 Swift cc 則旨在明確區(qū)分勢(shì)均力敵的主機(jī)和傳播/排隊(duì)網(wǎng)絡(luò)時(shí)延,以更精確進(jìn)行擁塞識(shí)別。
數(shù)據(jù)中心內(nèi)部,SDN 控制器作為控制面,它本身與傳統(tǒng)路由協(xié)議工作在同一時(shí)間尺度(參考南北向流量的生成過(guò)程),與 CSMA/CD 一樣已到規(guī)模極限,但這并不是摒棄它的理由,相反,它是從多個(gè)盒子里故意抽拉出來(lái)的,因?yàn)樗艽蟠鬁p少甚至消除排隊(duì)時(shí)延,而排隊(duì)時(shí)延在數(shù)據(jù)中心影響巨大。
而 SDN 控制器在廣域網(wǎng)上的作用卻是另一個(gè)故事,反在相反的路上越走越遠(yuǎn)。廣域網(wǎng)的排隊(duì)時(shí)延小于傳播時(shí)延且隨規(guī)模增加而差距漸大(參見(jiàn)根號(hào)關(guān)系),控制信息交互時(shí)延與傳播時(shí)延仍在同一尺度,嘗試用它稍微降低一個(gè)很重要但并不那么重要的排隊(duì)時(shí)延,反過(guò)來(lái)可能引入控制器凈時(shí)延,因?yàn)閺V域網(wǎng)是異步統(tǒng)計(jì)的,完全消除排隊(duì)肯定需要同步仲裁,這本身反而會(huì)加重排隊(duì)(比較有趣的矛盾)。
總之,排隊(duì)時(shí)延的廣域網(wǎng)的影響不如在數(shù)據(jù)中心的影響大,為降低(但不能消除)排隊(duì)時(shí)延在廣域網(wǎng)引入 SDN 的 ROI 太低甚至帶來(lái)凈虧損。
整個(gè)互聯(lián)網(wǎng)即使一開(kāi)始不是脫胎于應(yīng)對(duì)核打擊而采用分布式架構(gòu),僅僅在知道中心化如此低效后,也還會(huì)轉(zhuǎn)向分布式架構(gòu)。
如果SDN 控制信息交互時(shí)延不低于數(shù)據(jù)通信本身甚至阻滯(比如指令尚未下發(fā))數(shù)據(jù)通信時(shí),它都有收縮趨勢(shì),只有在它能實(shí)際降低凈時(shí)延時(shí),比如數(shù)據(jù)中心場(chǎng)景,才能抵抗這種收縮趨勢(shì),所以不可能存在全球 SDN 控制器,它只能存在于數(shù)據(jù)中心,局域網(wǎng)。就像大帝國(guó)達(dá)到一定疆域必定收縮一樣,而像希臘城邦則對(duì)CSMA/CD更包容。
至于 SDWAN 的意義,單獨(dú)抽出這張 overlay,它就是個(gè)小規(guī)模網(wǎng)絡(luò),不得不說(shuō)的是,這涉及到分形或同構(gòu)性,只要在同一個(gè)層次上說(shuō)事,就要在這個(gè)層次上談規(guī)模,規(guī)??s放的原則依然是普適的同一個(gè)原則,因此,全球 overlay 上的 SDN 就可以,但全球 underlay 上 SDN 就不行,但如果規(guī)模擴(kuò)展到太陽(yáng)系,overlay 的 SDN 也不行了。
一個(gè)和 SDWAN 規(guī)模相關(guān)的例子是,假設(shè)選擇一條更好的路徑的開(kāi)銷(xiāo)為 1ms,在數(shù)據(jù)中心,這 1ms 的選路開(kāi)銷(xiāo)避開(kāi) 5ms 排隊(duì)延時(shí)或許看起來(lái)挺值,但在廣域網(wǎng)上,1ms 的選路開(kāi)銷(xiāo)可能減少 50ms 的傳播時(shí)延(比如一個(gè)節(jié)點(diǎn)比另一個(gè)節(jié)點(diǎn)近 10000 公里),并且減少了 10ms 的排隊(duì)時(shí)延,同樣的選路開(kāi)銷(xiāo)卻帶來(lái)相差 10 倍的增益,這就是規(guī)模非線(xiàn)性效應(yīng)。另一方面,數(shù)據(jù)中心抖動(dòng) 100us 可能造成總 rtt 相差一倍,但對(duì)于廣域網(wǎng),100us 微不足道,因此對(duì)于 cc 中的 bdp 計(jì)算,顯然對(duì)規(guī)模越小的網(wǎng)絡(luò)越敏感,一個(gè)看得見(jiàn)的結(jié)果是 bbr 在小規(guī)模網(wǎng)絡(luò)中侵占性太強(qiáng)(rtt 陡一下,bdp 差很多)而不實(shí)用。
指導(dǎo)性很明確,大規(guī)模網(wǎng)絡(luò)選路收益大,小規(guī)模網(wǎng)絡(luò)時(shí)延敏感性高。用什么不用什么,怎么做,現(xiàn)成的東西怎么改,自己定。
現(xiàn)在談下傳播時(shí)延。
傳播時(shí)延看起來(lái)是一個(gè)受光速制約的倔強(qiáng)變量,我們無(wú)法做任何事情。但當(dāng)它真成為瓶頸,唯一選擇就是繞開(kāi)它。典型的例子是多核處理器和邊緣計(jì)算,看起來(lái)不相干的東西,實(shí)際是一回事。
處理器實(shí)際上就是用導(dǎo)線(xiàn)連接的不同計(jì)算組件總體,每個(gè)組件完成部分計(jì)算,將結(jié)果通過(guò)導(dǎo)線(xiàn)傳輸?shù)搅硪粋€(gè)組件繼續(xù)。傳播時(shí)延不變,但組件的計(jì)算速度卻在變快,直到它超過(guò)了傳播速率,導(dǎo)線(xiàn)成了瓶頸。
讓導(dǎo)線(xiàn)變短是好辦法,而摩爾定律讓這可行。處理器發(fā)展方向不是不斷增強(qiáng)計(jì)算組件,而是不斷把所有組件縮小,把整個(gè)處理器縮小,同一空間部署多個(gè)更小的處理器,這就是多核。
邊緣計(jì)算則更直接,其不變量是一些硬需求,比如剎車(chē)時(shí)間,卡頓感知時(shí)間,分幀感知時(shí)間,唯一的方式就是將計(jì)算搬到離自己足夠近到傳播時(shí)延滿(mǎn)足這些要求的地方。由此計(jì)算彈性可以衍生出 CDN,在邊緣計(jì)算資源閑置時(shí)可緩存內(nèi)容資源供就近下載,但有趣的是,這個(gè)順序是反著的,CDN 更早一些,后來(lái)才有了邊緣計(jì)算,可見(jiàn)時(shí)間不耐古已有之。
我舉個(gè)例子結(jié)束關(guān)于傳播時(shí)延的討論,半徑 200 米的圓形社區(qū),圓心處有一家大型超市,別墅圍繞在圓周,居民幸福感很強(qiáng),半徑 200 公里的圓形社區(qū),別墅圍繞在圓周,圓心處即使有座城市,居民便感受不到便利了。因?yàn)閺牟叫械狡?chē)速度的縮放相對(duì)距離縮放太慢了。
最后,談?wù)?TCP。所有 TCP 失效的問(wèn)題幾乎都是規(guī)模問(wèn)題。
上周寫(xiě)過(guò)一篇文章,談?wù)勗絹?lái)越無(wú)效的擁塞控制 提到隨著帶寬的提高,擁塞信號(hào)越發(fā)不準(zhǔn)確,傳統(tǒng)的長(zhǎng)肥管道問(wèn)題也是一個(gè)規(guī)模問(wèn)題,兩個(gè)其實(shí)也是一回事,網(wǎng)絡(luò)規(guī)模變大了,速度變快了,可擁塞的事實(shí)并沒(méi)變,傳達(dá)這個(gè)事實(shí)必然不能再用老方法了。
生活在越來(lái)越大的城市里的人們直接串門(mén)越來(lái)越少,事前都要先約一下,跑空的概率增加,代價(jià)增大,規(guī)??s放會(huì)改變信息交互方式。
長(zhǎng)肥管道中丟包后 cwnd 張開(kāi)慢只是表象,認(rèn)識(shí)不到本質(zhì)只會(huì)被這些表面現(xiàn)象牽著鼻子走,就算不用 cwnd 控制你也搞不定。你想想任何信號(hào)包括電力在長(zhǎng)距離傳輸中也會(huì)衰減就明白本質(zhì)了,這其實(shí)是成功概率是與關(guān)系很快趨近 0,失敗概率是或關(guān)系的問(wèn)題很快到 100%,這概率計(jì)算隨著規(guī)模擴(kuò)展迅速非線(xiàn)性地拉大成功和失敗之間的距離,這就是本質(zhì)。解法自然就是不要搞長(zhǎng)肥管道,別跟自然律對(duì)抗。
長(zhǎng)肥管道問(wèn)題,其它行業(yè)早就有解法,信號(hào)傳輸用中繼補(bǔ)償衰減,長(zhǎng)距離輸電升壓減少熱耗,TCP 你就不搞個(gè)代理 or SDWAN 隧道模仿一下信號(hào)中繼,你就不用 pacing 模仿一下升壓減少對(duì) buffer 的沖擊(bdp 很大,burst 對(duì) buffer 沖擊大,類(lèi)似大電流的熱耗)?固有損耗只能通過(guò)中繼,比如電線(xiàn)漏電是沒(méi)法通過(guò)升壓解決的,但自身行為導(dǎo)致的損耗是可通過(guò)調(diào)節(jié)自身行為彌補(bǔ)的,比如升壓輸電,pacing 發(fā)送,一個(gè) 100MB 的 buffer 一窗發(fā) 110MB 就會(huì)丟包,但 pacing 就能順利通過(guò),這就是為什么轉(zhuǎn)發(fā)節(jié)點(diǎn)都 pacing 的原因,網(wǎng)絡(luò)傳輸也有歐姆定律。
成天想著怎么往長(zhǎng)肥管道里猛灌增加 cwnd,除非你有物理專(zhuān)線(xiàn),否則灌得多丟得多。
so?線(xiàn)性系統(tǒng)不好玩,純內(nèi)卷看不到岸。只有指數(shù)(無(wú)論指數(shù)是否大于 1)系統(tǒng)才有趣,才能在縮放中讓各組分以不同比例的速度達(dá)到極限,優(yōu)化明顯落后的,或者砍掉明顯靠前的,就有了看得見(jiàn)的收益,而工作的意義就在于,你要敏銳地發(fā)現(xiàn)哪些組分縮放地更快或者更慢。
希望本文對(duì)你有所啟發(fā)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-752071.html
浙江溫州皮鞋濕,下雨進(jìn)水不會(huì)胖。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-752071.html
到了這里,關(guān)于網(wǎng)絡(luò)規(guī)模與性能優(yōu)化的一篇隨筆的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!