資料平面開發套件,說白了就是做資料通訊的sdk。以前傳統的資料平面實現主要是以一下幾種形態出現;
1、早期linux核心**;使用linux核心協議棧實現二三層**。使用netfiter來實現報文過濾;
2、使用網路處理器+網路加速器,把二三層的表通過微指令的的方式寫入到硬體的記憶體中,用硬體實現**;
3、使用多個mips處理,用多核心實現效能,自己實現協議棧,直接跑在cpu裸核上;
4、使用dpdk在傳統的通用cpu上實現報文**;
dpdk優勢:
1、用x86通用處理器就可以玩了,再也不用擔心cpu停產或者硬體廠商不生成硬體了。x86的優勢就不多說了;
2、linux應用空間開發協議棧**程式,應用空間的程式除錯起來方便;比裸核上和什麼硬體上方便多了;
3、intel大廠商,開源社群活躍,從剛開始只有個dpdk(core庫)到現在什麼虛擬化支援,ovs支援,什麼acl庫,什麼lpm(路由)庫都有啦~~
4、效能上已經被證實了可以達到很不錯的效能~~然後例子很多,文件健全,自學相對容易;
5、nfv/sdn大趨勢下,裝置x86資源池化大勢所趨,而效能問題逐漸凸顯,dpdk可有效解決該類效能問題,具有重大意義。
講dpdk不得不講的幾個技術;
1.大頁記憶體實現kernel到使用者態資料0 copy;
使用預先留的huge page來分給網絡卡收發包,以及應用空間資料結構+報文使用;
2.pmd 輪訓模式驅動;
以前是網絡卡產生中斷來接收報文(10g報文的中斷誰受得了)~~現在dpdk通過自己的ko把原來的網絡卡驅動給接管;然後應用空間輪循接收報文,+第一項技術,完全是它的技術核心呀;所以也是放到它的core庫裡面的;
3.無鎖的佇列~支援多中模型,多生產多消費者模型、高效率演算法,吊炸天。。
4.人性化的執行緒建立+繫結cpu。。其實這個對intel來講不算啥高科技了
其實核心技術就是上面幾個了。
總體總結出來:
大頁記憶體0拷貝。
用輪循取網絡卡資料;
先進資料結構保證效率;其實就是官網說的
dpdk基礎教程 框架簡介
一 dpdk是什麼 dpdk是專為快速收發包所開發的一系列的庫檔案和驅動 dpdk最初的動機很簡單,為了證明intel架構多核處理器能夠支撐高效能資料報處理,現在dpdk逐漸成為通用多核處理器高效能資料報處理的業界標桿。可以用來 1 在極短的時間裡面完成收發包 2 開發快速的抓包演算法。3 執行第三...
timesten系列一 簡介
為什麼現在記憶體型資料庫越來越流行,關注者和使用者越來越多呢?關鍵原因就是大家對隨著it系統的逐漸大規模使用,資料量越來越大,支撐的使用者也越來越多,導致系統越來越慢,使用者不滿意!如果你在去網上銀行做乙個轉賬操作,折騰了2分鐘後,告訴你,無法轉賬,然後你在執行一次,還是2分鐘後,告訴你系統無法完成...
Hadoop系列一HDFS簡介
namenode nn namenode的metadata資訊在啟動後會載入到記憶體中,metadata資訊儲存在磁碟檔案fsimage,edits檔案記錄對metadata的操作日誌,block位置資訊只存在記憶體,不儲存到fsimage。secondarynamenode snn 不是nn的備份...