時(shí)延是數(shù)據(jù)中心以太網(wǎng)" title="以太網(wǎng)">以太網(wǎng)的一個(gè)關(guān)鍵性能指標(biāo)。這是因?yàn)樵诟哳l率金融交易(HFT)、高性能計(jì)算(HPC)和類似的性能敏感型環(huán)境中,超低時(shí)延10GbE交換功能是處理巨大網(wǎng)絡(luò)流量的關(guān)鍵,這常常意味著每天上百萬次的交易。電子交易中價(jià)格和交易數(shù)據(jù)速率的不斷攀升以及保持競爭力的需求推動(dòng)著金融市場股東們投資最新技術(shù),以便支持螺旋式上升的帶寬要求,并降低數(shù)據(jù)流時(shí)延。
因此,現(xiàn)在時(shí)延測量已經(jīng)成為數(shù)據(jù)中心以太網(wǎng)交換機(jī)供應(yīng)商測試報(bào)告的一個(gè)重要部分。在評估這些系統(tǒng)所用的交換IC時(shí),設(shè)計(jì)師需要明白時(shí)延測量方法有好多種,采用不正確的方法可能是一種錯(cuò)誤,因?yàn)橛行┓椒ú⒉荒軠y出真實(shí)性能。
近來在測試中使用的其中一些測量方法使得LAN交換芯片供應(yīng)商聲稱具有超低時(shí)延。這是怎么做到的呢?使用末位進(jìn)、首位出(LIFO" title="LIFO">LIFO)方法,存儲(chǔ)轉(zhuǎn)發(fā)交換機(jī)確實(shí)可以報(bào)告亞微秒的時(shí)延。然而,這不符合RFC1242,該文檔建議優(yōu)先采用首位進(jìn)到首位出(FIFO" title="FIFO">FIFO)方法:“理想情況下所有設(shè)備的測量都應(yīng)從幀前導(dǎo)位之后的第一個(gè)實(shí)際位開始。”這種方法能夠更精確地測量數(shù)據(jù)包穿透交換機(jī)時(shí)遇到的任何存儲(chǔ)或處理時(shí)間。
交換機(jī)架構(gòu)和時(shí)延
2006年推出的第一臺(tái)低時(shí)延10GbE交換機(jī)使用直通工作模式取得了十分優(yōu)異的時(shí)延性能,這種模式下交換機(jī)可以在幀被完整接收之前就開始發(fā)送。而存儲(chǔ)轉(zhuǎn)發(fā)交換機(jī)不能取得低時(shí)延,這是因?yàn)閿?shù)據(jù)包在從出口發(fā)送出去之前必須完全存儲(chǔ)在內(nèi)存中。但并不是所有直通交換機(jī)都有相同的時(shí)延性能,因?yàn)樗鼈儾捎玫慕粨Q架構(gòu)有很大的區(qū)別。
存儲(chǔ)器存取帶寬一直是交換芯片架構(gòu)師心頭的痛。在使用傳統(tǒng)的交叉開關(guān)矩陣和內(nèi)存設(shè)計(jì)時(shí),將沒有足夠的片上帶寬允許每個(gè)輸入端口同時(shí)寫入相同的輸出隊(duì)列。為了解決這種阻塞問題,芯片架構(gòu)可以在每個(gè)交換輸入端使用虛擬輸出隊(duì)列,即所謂的組合式輸入/輸出隊(duì)列(CIQQ)架構(gòu)(圖1)。
圖1 組合式輸入/輸出隊(duì)列(CIQQ)架構(gòu)
虛擬輸出隊(duì)列可以在每個(gè)輸入端口為每個(gè)交換輸出端口(出口)提供一個(gè)隊(duì)列。如果某個(gè)特定的出口隊(duì)列臨時(shí)受阻,那么與之對應(yīng)的入口隊(duì)列將實(shí)行流控,而以其它出口為目的地的數(shù)據(jù)包可以避過這個(gè)受阻隊(duì)列,將數(shù)據(jù)發(fā)送給其它無阻塞的出口。然而,對于一個(gè)N端口交換機(jī)而言,這意味著N*N輸入隊(duì)列和關(guān)聯(lián)調(diào)度器,從而增加了很大的復(fù)雜性。同時(shí)還會(huì)增加數(shù)據(jù)包時(shí)延,因?yàn)槊總€(gè)數(shù)據(jù)包通過交換機(jī)時(shí)必須排隊(duì)兩次。鑒于VOQ和關(guān)聯(lián)調(diào)度器的復(fù)雜性,許多交換機(jī)設(shè)計(jì)通過一定程度的內(nèi)部阻塞來降低復(fù)雜性,這將進(jìn)一步增加時(shí)延。
新的共享式內(nèi)存交換技術(shù)第一次通過SRAM IP實(shí)現(xiàn)性能提升,使交換機(jī)能夠支持具有特別低時(shí)延、完全無阻塞輸出排隊(duì)、共享的內(nèi)存架構(gòu),見圖2。通過使用專有的高帶寬內(nèi)存結(jié)構(gòu),交換架構(gòu)可以做得更簡單,進(jìn)而消除入口VoQ的復(fù)雜性和所需的額外內(nèi)存。另外,組播數(shù)據(jù)包只需存儲(chǔ)一次,從而進(jìn)一步降低了對片上內(nèi)存的要求。由于只有一次內(nèi)存入隊(duì)/出隊(duì)和非常低的內(nèi)部阻塞,因此這種技術(shù)可以提供最低的時(shí)延。
圖2 具有特別低時(shí)延的輸出排隊(duì)、共享內(nèi)存架構(gòu)
時(shí)延測量方法
測量通過交換機(jī)的時(shí)延有多種方法:首位進(jìn)到末位出(FILO)、末位進(jìn)到首位出(LIFO)、首位進(jìn)到首位出(FIFO)和末位進(jìn)到末位出(LILO)。每種方法的時(shí)延測量都是在交換機(jī)入口和出口進(jìn)行的。
這種方法測量的是交換機(jī)的時(shí)延加上數(shù)據(jù)包從出口發(fā)送出來的時(shí)間。雖然這種方法對于服務(wù)器群集中的應(yīng)用到應(yīng)用時(shí)延等的測量足夠了,但不是一種非常好的交換機(jī)時(shí)延測量方法。為了更好地表明這個(gè)觀點(diǎn),可以想像一個(gè)電氣連接器。FILO方法意味著連接器具有與數(shù)據(jù)包大小相關(guān)的時(shí)延,但事實(shí)上連接器具有零時(shí)延。
大數(shù)據(jù)包會(huì)給這些測量結(jié)果增加較大的時(shí)延,使得提取實(shí)際交換機(jī)時(shí)延變得更加困難。最后,考慮兩個(gè)串聯(lián)的直通交換機(jī)。當(dāng)使用FILO方法時(shí),通過兩個(gè)交換機(jī)的時(shí)延不能通過累加單個(gè)交換機(jī)的測量時(shí)延計(jì)算得到。鑒于這些因素,這種方法并不是測量交換機(jī)時(shí)延的正確方法。
LIFO方法在20世紀(jì)80年代晚期和90年代早期用于測量傳輸單元大小固定的電信網(wǎng)絡(luò)中的時(shí)延。一些測試報(bào)告仍參考1991年發(fā)表的RFC 1242,這個(gè)時(shí)間比直通交換技術(shù)的發(fā)明早很多。對于只提供存儲(chǔ)和轉(zhuǎn)發(fā)交換機(jī)的供應(yīng)商來說,這種測量方法可以使結(jié)果看起來更好,因?yàn)檫@種方法不考慮數(shù)據(jù)包在轉(zhuǎn)發(fā)之前被完整存儲(chǔ)在交換機(jī)中的時(shí)間。從圖3可以看出,直通交換機(jī)的時(shí)延不能用這種方法精確測量。
圖3 使用FIFO和LIFO方法的測量結(jié)果
這兩種方法從效果上看是相同的,是正確測量通過直通交換機(jī)的時(shí)延的唯一方法。為了說明這些方法的工作原理以及與LIFO測試的區(qū)別,讓我們對最近使用Fulcrum“Monaco”10GE交換機(jī)做的現(xiàn)場測試結(jié)果做一下評估。
FIFO與LIFO實(shí)際測試結(jié)果
Monaco參考平臺(tái)例子包含有一個(gè)交換芯片,在1U外形尺寸內(nèi)提供24個(gè)SFP+端口。這個(gè)平臺(tái)中的時(shí)延包含了通過交換機(jī)的時(shí)延和通過SFP+ PHY的時(shí)延。這張圖顯示了交換機(jī)工作在直通模式時(shí)使用FIFO和LIFO方法的時(shí)延測量結(jié)果。
從圖中可以看到,F(xiàn)IFO結(jié)果表明了交換機(jī)的實(shí)際直通時(shí)延,而LIFO數(shù)值是人工減去了完整接收一個(gè)幀所需的時(shí)間。對10GbE鏈路來說,這兩種測量方法之間的關(guān)系可以用以下等式描述:
LIFO時(shí)延=FIFO時(shí)延-(幀長度+20)*0.8nS
由于LIFO測量方法可能導(dǎo)致像Monaco這樣的直通交換機(jī)出現(xiàn)負(fù)時(shí)延,因此測試儀器將這種情況報(bào)告為“零”時(shí)延。這意味著在較大數(shù)據(jù)包情況下比較直通交換機(jī)將是無意義的,因?yàn)樗鼈兌硷@示為零時(shí)延。
結(jié)論
在為數(shù)據(jù)中心選擇網(wǎng)絡(luò)設(shè)備時(shí)時(shí)延是一個(gè)關(guān)鍵參數(shù)。網(wǎng)絡(luò)設(shè)計(jì)師可能使用測試報(bào)告比較不同供應(yīng)商的交換機(jī),但必須仔細(xì)檢查這些報(bào)告,因?yàn)闇y試時(shí)延有多種方法,而只有比較使用相同的方法測量競爭性芯片得到的時(shí)延才有意義。直通交換機(jī)可以為數(shù)據(jù)中心提供最低時(shí)延的網(wǎng)絡(luò)解決方案。本文明確了測量直通交換機(jī)時(shí)延的唯一正確方法是首位進(jìn)至首位出(FIFO)方法。