OpenFlow的架構(gòu)是低效的,且限制了性能的改善,甚至還會(huì)造成不必要的功率損耗。
這是一串對(duì)比出來的結(jié)論,是來自澳大利亞brain box Data61和悉尼大學(xué)(Sydney University)的科研人員研究的結(jié)果,他們評(píng)估了四個(gè)主要的OpenFlow控制器NOX、Maestro、Floodlight、Beacon。論文發(fā)表在Arxiv平臺(tái)。
舊版本的OpenDaylight也進(jìn)行了測試,但是并沒有形成任何報(bào)告:“舊版本的OpenDaylight性能太低,不能提供任何有見地的比較。”
參與測試的控制器沒有一個(gè)能夠接近線速,無論是在網(wǎng)絡(luò)處理器上運(yùn)行(基于Tilera芯片),或基于Xeon E5-2450服務(wù)器(后期將在更高版本上測試)。
就CBench SDN控制器性能指標(biāo)而言,最佳Tilera設(shè)置僅僅勉強(qiáng)達(dá)到了每秒500萬個(gè)請(qǐng)求,與每秒2900萬請(qǐng)求的最高線速比不相去甚遠(yuǎn)。
由此可見Intel長期以來在數(shù)據(jù)包處理方面的工作卓有成效:在x86的設(shè)置下,Beacon能達(dá)到每秒2000萬請(qǐng)求;其他控制器最大值是每秒700萬請(qǐng)求。
Line rate? Forget it: the CSIRO/Data61/Sydney Uni benchmark results由于SDN控制器必須處理流量,這意味著他們必須記住MAC地址以便跟蹤通信,跟以太網(wǎng)交換機(jī)只需要知道轉(zhuǎn)發(fā)流量到哪個(gè)端口相比,其網(wǎng)絡(luò)的可擴(kuò)展性也是一個(gè)大問題。
在性能指標(biāo)里,沒有控制器能處理接近峰值的1000萬唯一MAC地址,基于Java語言的控制器(Beacon和Floodlight)在這方面的幾乎沒有創(chuàng)新。
該論文指出的問題是,OpenFlow本身的架構(gòu)效率極其低下。作者提到了序列化:I/O現(xiàn)成;學(xué)習(xí)交換機(jī)應(yīng)用的關(guān)鍵數(shù)據(jù)結(jié)構(gòu):哈希表。
序列化是迄今為止最大的支出:即使是最有效的控制器在處理數(shù)據(jù)包的序列化問題上也要花費(fèi)總時(shí)間的五分之一,這個(gè)限制是面向?qū)ο蟮目刂破髟O(shè)計(jì)原則固定的。他們都將每個(gè)單獨(dú)的數(shù)據(jù)包作為一個(gè)獨(dú)立的對(duì)象,這導(dǎo)致了每個(gè)數(shù)據(jù)包的開銷變得不可負(fù)擔(dān)。
作者的建議是謀求一個(gè)新的SDN控制器的設(shè)計(jì)方式,他們寫道:“將新到達(dá)的數(shù)據(jù)包設(shè)置預(yù)分配的緩沖區(qū)進(jìn)行處理,而不是作為新的對(duì)象來處理。”控制器應(yīng)該“在多核平臺(tái)中硬件特性的限制,或利用多核平臺(tái)的網(wǎng)絡(luò)級(jí)芯片。”
原文鏈接:http://www.theregister.co.uk/2016/08/22/sdncontrollerdesignsucksclaimnetworkboffins/