從kafka說起零拷貝機制的運用

2021-10-09 03:26:35 字數 795 閱讀 3817

參考文章: **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 將讀取的內容通...