數(shù)據(jù)中心應用的不斷增加和用戶數(shù)量的迅速增長,使得數(shù)據(jù)中心正面臨著一個嚴重的性能問題,而其中尤為嚴重的現(xiàn)象就是網(wǎng)絡擁塞。當網(wǎng)絡中存在過多的數(shù)據(jù)包時,性能就會下降,這種現(xiàn)象稱為擁塞。擁塞是一種持續(xù)過載的網(wǎng)絡狀態(tài),此時用戶對網(wǎng)絡資源的需求超過了固有的容量。近些年隨著云計算、大數(shù)據(jù)、搜索技術本身要消耗大量的網(wǎng)絡帶寬,所以在數(shù)據(jù)中心里網(wǎng)絡擁塞現(xiàn)象時有發(fā)生。
數(shù)據(jù)中心應用的不斷增加和用戶數(shù)量的迅速增長,使得數(shù)據(jù)中心正面臨著一個嚴重的性能問題,而其中尤為嚴重的現(xiàn)象就是網(wǎng)絡擁塞。當網(wǎng)絡中存在過多的數(shù)據(jù)包時,性能就會下降,這種現(xiàn)象稱為擁塞。擁塞是一種持續(xù)過載的網(wǎng)絡狀態(tài),此時用戶對網(wǎng)絡資源的需求超過了固有的容量。近些年隨著云計算、大數(shù)據(jù)、搜索技術本身要消耗大量的網(wǎng)絡帶寬,所以在數(shù)據(jù)中心里網(wǎng)絡擁塞現(xiàn)象時有發(fā)生。
網(wǎng)絡擁塞對數(shù)據(jù)中心帶來的危害有幾點:
一是導致包丟包率增加,端到端的延遲增長。如果是交換機設備,由于緩存較小,擁塞出現(xiàn)時將會進行報文丟棄。而很多業(yè)務都是TCP連接,出現(xiàn)丟包后將會引起重傳,反而更加加重了擁塞的狀況。如果是路由器設備,緩沖隊列長度增加,分組等待排隊輸出的時間變長,進而導致延遲的增加。在這種情況下,對業(yè)務的影響是顯而易見的。輕者訪問應用緩慢、掉線,嚴重者則長時間無法訪問,用戶的體驗感大大下降。我們平時上網(wǎng)時,在打開一個網(wǎng)頁頁面時,時有打不開或者鏈接彈出緩慢的情況,多半是網(wǎng)絡擁塞所致。
二是導致資源利用率降低,無效利用率增加。擁塞發(fā)生后,網(wǎng)絡設備通往鏈路的分組報文都被丟棄,造成這些鏈路得不到充分利用,降低了資源的有效利用率。
三是導致?lián)砣罎⒌陌l(fā)生,這是最嚴重的后果,當網(wǎng)絡處于擁塞崩潰狀態(tài)時,微小的負載增量都將使網(wǎng)絡的有效吞吐量急劇下降,此時的數(shù)據(jù)中心網(wǎng)絡無任何有效的數(shù)據(jù)傳輸。出現(xiàn)這種情況的可能是維護路由鄰居狀態(tài)、環(huán)網(wǎng)狀態(tài)的報文被丟棄,引發(fā)了路由震蕩長時間無法收斂,環(huán)網(wǎng)阻塞點放開,形成二層環(huán)路,導致整個網(wǎng)絡處于無序狀態(tài),整個數(shù)據(jù)中心陷入癱瘓之中??梢娋W(wǎng)絡擁塞的問題應該引起高度重視,當數(shù)據(jù)中心時有發(fā)生擁塞情況時,就應該及時排查,消除隱患,以免造成系統(tǒng)癱瘓。
既然網(wǎng)絡擁塞問題影響如此嚴重,就沒有什么辦法緩解嗎?網(wǎng)絡擁塞控制技術就是為了解決數(shù)據(jù)中心網(wǎng)絡出現(xiàn)擁塞時的問題。擁塞控制技術也有很多,在此僅從實現(xiàn)機理上做以闡述。打個形象的比喻,國家若遇到了洪澇災害,江河漲水,江河附近的城市與村莊就面臨被淹的危險,那么接下來國家會做什么呢?一定是抓緊時間將沿途的堤壩加固、修高,同時在上游關閘,減少洪水向下游沖擊。在下游開渠引流,進行泄洪。其實對于網(wǎng)絡擁塞,也是這樣的一些技術。通過在網(wǎng)絡入口進行限速(LR或CAR),同時啟動優(yōu)先級調(diào)度,將不重要的業(yè)務進行丟棄,保證在網(wǎng)絡擁塞時高優(yōu)先級的業(yè)務得到傳輸。增加網(wǎng)絡帶寬,將原來的千兆端口換為萬兆,將單端口換為聚合端口,將路由切換為等價路由,這樣就可以大大提升網(wǎng)絡帶寬。
在端口上開啟流控功能,當端口發(fā)生擁塞時,可以進行反壓,通知流量的入端口,這樣入端口將報文進行緩存,當流量實在太大,緩存不了時,再進行丟棄。這樣可以提升網(wǎng)絡設備的緩存能力,就可以增加對網(wǎng)絡擁塞的防御。這樣看這些網(wǎng)絡擁塞機制和生活中處理洪澇災害、交通擁塞都是一樣的。不管擁塞控制技術如何發(fā)展,根本點都是如上描述的幾條,再好的控制技術也只不過是將上面的方法做精做細而已。當我們看到一些晦澀難懂的擁塞控制技術概念時,令牌桶是做什么用的,F(xiàn)LOW-CONTROL 會什么特征,GTS只能基于隊列限速嗎?要把這些概念都當成是解決擁塞的工具而已,然后遵循著上面的說明機理就不難理解了,令牌桶就像我們車輛限行時的交警,滯留車輛多了就讓后面的車輛多等等,少了就讓更多的車輛行駛通過。FLOW-CONTROL就通告擁塞的消息,以便網(wǎng)絡設備知道哪里有了擁塞,怎么處理。GTS是基于某一特征流量進行限速的技術,我們對車輛進行分類,救護車,救火車可以優(yōu)先過,對別的車輛限行,在網(wǎng)絡世界里GTS就可以做到。
顯然以上提到的這些技術都是在擁塞發(fā)生后起作用的,俗話說 一份預防抵得上十分治療 ,在數(shù)據(jù)中心網(wǎng)絡中應該努力通過各種方法來避免或減少網(wǎng)絡擁塞情況的發(fā)生。首先合理設計網(wǎng)絡拓撲結構,對于某些重要節(jié)點,設計成網(wǎng)狀拓撲,增加冗余度。數(shù)據(jù)中心承載的應用業(yè)務要做精細劃分,避免過于集中于某些局部網(wǎng)絡環(huán)境中,均勻分布。其次合理設計網(wǎng)絡設備緩沖區(qū)大小,網(wǎng)絡擁塞并不是一個長時間持續(xù)的,是階段性的,具有突發(fā)性的特點,適當?shù)靥嵘W(wǎng)絡設備的緩存就可以減少擁塞。對于長時間的擁塞,比如淘寶網(wǎng),在每年的雙11都會迎來流量的噴井,而平時流量是比較均勻平穩(wěn)的,這就需要在雙11期間增加網(wǎng)絡帶寬,啟用備份設備,單純靠增加網(wǎng)絡設備緩存是無濟于事的。再次增加負載均衡設備,將突發(fā)流量引到負載均衡設備上進行整形,減少突發(fā)流量對網(wǎng)絡設備的沖擊,讓網(wǎng)絡設備接收到的流量都是平穩(wěn)、均勻的。
網(wǎng)絡擁塞問題的產(chǎn)生主要原因是網(wǎng)絡帶寬不足,網(wǎng)絡處理能力不夠造成的。還有存儲空間、服務器性能限制也會造成網(wǎng)絡的擁塞,這些都是現(xiàn)實情況,無法改變,網(wǎng)絡的帶寬和處理能力并不能無限制地增加,所以網(wǎng)絡擁塞是不可避免的,我們通過各種各樣的技術手段無非是希望將擁塞發(fā)生的概率最小化,未來的網(wǎng)絡擁塞控制技術會越來越多,更加精細和多樣,什么RED算法、PI算法、AVQ算法、AQM-REM算法等等,在網(wǎng)絡擁塞時,通過這些算法來決策丟包的選擇,諸多的算法讓人看得眼花繚亂,但這些算法歸根結底都肯定會遵循一條:就是想辦法按照數(shù)據(jù)中心的意圖去丟包,其遵循的基本原理不會改變,就和我們生活中解決交通擁塞、洪澇災害是一樣的。