一、基本知識
rdma(remote direct memory access)技術全稱遠端直接記憶體訪問,就是為了解決網路傳輸中客戶端與伺服器端資料處理的延遲而產生的。
它將資料直接從一台計算機的記憶體傳輸到另一台計算機,無需雙方作業系統的介入。這允許高吞吐、低延遲的網路通訊,尤其適合在大規模並行計算機集群中使用。rdma通過網路把資料直接傳入計算機的記憶體中,將資料從乙個系統快速移動到遠端系統記憶體中,而不對作業系統造成任何影響,這樣就不需要用到多少計算機的處理能力。它消除了資料報在使用者空間和核心空間複製移動和上下文切換的開銷,因而能解放記憶體頻寬和cpu週期用於改進應用系統效能。(注:原始的tcp/ip通過封裝資料報的形式,通過os與協議棧進行解析、處理資料,主機開銷變多
)
rdma網路的三個顯著特點:(1)低延時(2)低cpu開銷(3)高頻寬
二、rdma技術
目前rdma有三種不同的硬體實現。分別是infiniband、iwarp(internet wide area rdma protocol)、roce(rdma over converged ethernet)。目前,大致有三類rdma網路,分別是infiniband、roce、iwarp。其中,infiniband是一種專為rdma設計的網路,從硬體級別保證可靠傳輸 , 而roce 和 iwarp都是基於乙太網的rdma技術,支援相應的verbs介面。從圖中不難發現,roce協議存在rocev1和rocev2兩個版本,主要區別:rocev1是基於乙太網鏈路層來實現的rdma協議(交換機需要支援pfc等流控技術,在物理層保證可靠傳輸),而rocev2是乙太網tcp/ip協議中udp層實現(rocev2的最大改進是支援ip路由)
。從效能上,很明顯infiniband網路最好,但網絡卡和交換機是**也很高,然而rocev2和iwarp僅需使用特殊的網絡卡就可以。rdma網路目的就是把計算和儲存分開了。
三、rdma的工作過程與細節
rdma 的工作過程如下:
(1)當乙個應用執行rdma 讀或寫請求時,不執行任何資料複製.在不需要任何核心記憶體參與的條件下,rdma 請求從執行在使用者空間中的應用中傳送到本地nic( 網絡卡)。
(2)nic 讀取緩衝的內容,並通過網路傳送到遠端nic。
(3)在網路上傳輸的rdma 資訊包含目標虛擬位址、記憶體鑰匙和資料本身請求,既可以完全在使用者空間中處理(通過輪詢使用者級完成排列),又或者在應用一直睡眠到請求完成時的情況下通過系統中斷處理。rdma 操作使應用可以從乙個遠端應用的記憶體中讀資料或向這個記憶體寫資料。
(4)目標nic 確認記憶體鑰匙,直接將資料寫人應用快取中,用於操作的遠端虛擬記憶體位址包含在rdma 資訊中。
rdma操作細節
Struts 原理 之個人總結
控制器元件由actionservlet 和自定義action組成 那麼actionservlet在 呢?我做完了乙個struts的先demo 也沒看見啊 只有自定義的action 第一章中的自定義框架還是有的了 其實仔細想想不難發現,自定義框架中的操作已經全部被struts config.xml 配...
Lucene原理個人總結
傳統資料庫無法滿足的痛點 在mysql中,我們根據關鍵字去搜尋一般都是like 但是這樣搜尋的效能是很低的,因為沒有走索引。相關性搜尋,電商 中的根據瀏覽記錄做的商品推薦,在海量資料下直接查詢資料庫也是無法做到快速反應 倒排索引 類似這樣的資料結構,它是把值作為索引,比如說搜尋 我 的時候,在字典樹...
機器學習原理個人總結
1 用自己的話說明機器學習的四大分類 classification 分類 clustering 聚類 regression 回歸 dimensionality reduction 降維 1 回歸是對已有的資料樣本點進行擬合,再根據擬合出來的函式,對未來進行 商品 走勢的 就是回歸任務。2 分類需要先...