參考文章: **kafka的零拷貝技術
kafka高吞吐量的原因
1、磁碟順序寫: 磁碟的順序io速度遠大於固態硬碟隨機寫操作
2、訊息壓縮: 資料壓縮減少網路傳輸
3、分批傳送: kafka允許批量傳送訊息
4、分割槽: 多分割槽,並行消費
5、零拷貝機制
今天主要講講零拷貝機制與在kafka中的應用
傳統的檔案拷貝機制
傳統的檔案拷貝,從磁碟上再到網絡卡要經過四步
1、作業系統從磁碟將資料讀取到核心空間的頁快取
2、應用程式將資料從核心空間讀入使用者空間快取區
3、應用程式將讀到的資料寫回到socket緩衝區
4、作業系統將資料從socket緩衝區複製到網絡卡介面,進行資料傳送
dma技術(direct memory access)
一種可讓某些硬體子系統直接訪問系統主記憶體,不依賴cpu的計算機系統功能。
kafka中的應用
通常情況下,kafka會有多個訂閱者,生產者發布的訊息會被不同消費者多次消費。零拷貝機制將磁碟檔案資料複製到頁快取,然後直接傳送到網路中(不同消費者可以用乙個也快取)
例如: 10個消費者,傳統複製 4*10 = 40次,零拷貝機制,需要11次,一次從磁碟複製到頁快取,10次表示10個消費者各自讀取一次。
部落格369 kafka的零拷貝
內容 記錄kafka快的其中乙個原因 零拷貝 不使用零拷貝技術時 乙個程序讀取磁碟內容並傳送出去的過程如下 1 作業系統從磁碟讀取資料到核心空間的 pagecache 2 應用程式讀取核心空間的資料到使用者空間的緩衝區 3 應用程式將資料 使用者空間的緩衝區 寫回核心空間到套接字緩衝區 核心空間 4...
從辭職說起
20出頭的人是熱血青年,有夢想的人自然也是滿懷激情。願意呆在乙個地方是因為那個地方能讓我們憧景,離開乙個地方,自然也是因為那個地方我們再也沒有繼續呆下來的熱情。打 辭職了以後,不知是從哪來的一股輕鬆的感覺。當時,是由於 醫學影象 之於我是乙個非常敏感的詞眼,還有是創業的一種意念,我充滿激情地走進了公...
從read函式到零拷貝
作業系統分為 使用者態 和 核心態 檔案操作 網路 操作需要涉及這兩種形態的切換,免不了進行資料複製,一台伺服器把本機磁 盤檔案的內容傳送到客戶端 一般分為兩個步驟 1 read file,tmp buf,len 讀取本地檔案內容 2 write socket,tmp buf,len 將讀取的內容通...