国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kafka的零拷貝技術(shù)Zero-Copy

這篇具有很好參考價(jià)值的文章主要介紹了Kafka的零拷貝技術(shù)Zero-Copy。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

傳統(tǒng)的拷貝過程

Kafka的零拷貝技術(shù)Zero-Copy

流程步驟:
(1)操作系統(tǒng)將數(shù)據(jù)從磁盤文件中讀取到內(nèi)核空間的頁(yè)面緩存;
(2)應(yīng)用程序?qū)?shù)據(jù)從內(nèi)核空間讀入用戶空間緩沖區(qū);
(3)應(yīng)用程序?qū)⒆x到數(shù)據(jù)寫回內(nèi)核空間并放入socket緩沖區(qū);
(4)操作系統(tǒng)將數(shù)據(jù)從socket緩沖區(qū)復(fù)制到網(wǎng)卡接口,此時(shí)數(shù)據(jù)才能通過網(wǎng)絡(luò)發(fā)送。

read/write 屬于系統(tǒng)調(diào)用 syscall,每一次系統(tǒng)調(diào)用 ,發(fā)生兩次上下文切換

此過程涉及到4次上下文切換以及4次數(shù)據(jù)的復(fù)制,但是這些過程中cpu數(shù)據(jù)完全沒有進(jìn)行變化,僅僅是磁盤數(shù)據(jù)復(fù)制到了網(wǎng)卡的緩沖區(qū),在這種情況下,如果去掉流程2和3,減少用戶空間和內(nèi)核空間之間的切換,雖然減少了數(shù)據(jù)交換的次數(shù),但是仍然存在數(shù)據(jù)多次復(fù)制的情況。

:步驟1和4的數(shù)據(jù)傳輸是通過DMA引擎進(jìn)行拷貝的
步驟2和3的數(shù)據(jù)傳輸是通過cpu進(jìn)行拷貝的**

零拷貝技術(shù)

在DMA技術(shù)的基礎(chǔ)上,可以實(shí)現(xiàn)絕對(duì)的零拷貝,DMA技術(shù)為(Direct Memory Access,直接存儲(chǔ)器訪問),不需要依賴cpu的大量中斷負(fù)載,數(shù)據(jù)文件可以直接繞過CPU在各個(gè)層之間傳輸,外圍設(shè)備可以直接通過DMA控制器訪問內(nèi)存。通過零拷貝技術(shù),可以減去沒有必要的數(shù)據(jù)復(fù)制操作,同時(shí)也減少了上下文切換的次數(shù)。

可以看出,零拷貝技術(shù)只需要將數(shù)據(jù)從硬盤中將磁盤文件數(shù)據(jù)復(fù)制到頁(yè)面緩存一次,然后直接將數(shù)據(jù)才從頁(yè)面緩存直接發(fā)送到網(wǎng)絡(luò)中,避免了重復(fù)復(fù)制的操作

頁(yè)面緩存:存儲(chǔ)磁盤數(shù)據(jù)的內(nèi)核緩存區(qū)域,是操作系統(tǒng)內(nèi)核中的一部分,用于緩存從磁盤讀取的數(shù)據(jù),以提高文件系統(tǒng)的性能;由物理內(nèi)存中的頁(yè)面構(gòu)成的,每個(gè)頁(yè)面的大小通常為4KB或更大。當(dāng)內(nèi)核從磁盤讀取數(shù)據(jù)時(shí),它將數(shù)據(jù)存儲(chǔ)在頁(yè)面緩存中。如果其他進(jìn)程需要訪問相同的數(shù)據(jù),內(nèi)核可以直接從頁(yè)面緩存中讀取,而無需再次從磁盤讀取數(shù)據(jù),從而提高了讀取性能。在零拷貝技術(shù)中,頁(yè)面緩存是實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)囊徊糠帧.?dāng)數(shù)據(jù)需要從磁盤傳輸?shù)骄W(wǎng)絡(luò)或其他設(shè)備時(shí),內(nèi)核可以直接將頁(yè)面緩存中的數(shù)據(jù)發(fā)送到目標(biāo)設(shè)備,而無需將數(shù)據(jù)復(fù)制到用戶空間或其他中間緩沖區(qū)。這樣可以減少數(shù)據(jù)復(fù)制的次數(shù)和數(shù)據(jù)傳輸?shù)难舆t,提高數(shù)據(jù)傳輸?shù)男省?/p>

Java采用的零拷貝技術(shù)TransferTo方法底層也是調(diào)用sendfile(),Kafka的零拷貝技術(shù)可以直接將直接從它被調(diào)用的通道上傳輸?shù)搅硪粋€(gè)可寫字節(jié)通道,數(shù)據(jù)無需流經(jīng)用戶空間的應(yīng)用程序;在Linux系統(tǒng)中零拷貝是基于sendfile()系統(tǒng)調(diào)用實(shí)現(xiàn)的,sendfile()實(shí)現(xiàn)的是讀到內(nèi)核空間的數(shù)據(jù)轉(zhuǎn)到socket buffer,最后復(fù)制到協(xié)議引擎。

點(diǎn)擊查看代碼
mmap和sendfile都是零拷貝的實(shí)現(xiàn)方案,只不過不同的場(chǎng)景使用不同的方案;
mmap其實(shí)本質(zhì)就是物理上磁盤文件的地址和頁(yè)面緩存的地址進(jìn)行映射,完成映射后對(duì)物理內(nèi)存的操作會(huì)同步到硬盤上,用戶通過修改內(nèi)存就可以修改磁盤文件。Kafka生產(chǎn)的數(shù)據(jù)持久化到Broker里采用的是**mmap**文件映射的方式,實(shí)現(xiàn)順序的快速寫入
sendfile就是將讀到內(nèi)核空間的數(shù)據(jù)轉(zhuǎn)到Socket Buffer,最后復(fù)制到協(xié)議引擎,相較于mmap又節(jié)省了一次cpu拷貝;
消費(fèi)者從 broker 讀取數(shù)據(jù),采用sendfile,將磁盤文件讀到內(nèi)核緩沖區(qū)后,直接轉(zhuǎn)到socket buffer進(jìn)行網(wǎng)絡(luò)發(fā)送

Kafka的零拷貝技術(shù)Zero-Copy文章來源地址http://www.zghlxwxcb.cn/news/detail-709787.html

到了這里,關(guān)于Kafka的零拷貝技術(shù)Zero-Copy的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 知物由學(xué) | “群控軟件”助長(zhǎng)黑灰產(chǎn)套利的零和游戲,硬核技術(shù)打擊隱秘的不公

    知物由學(xué) | “群控軟件”助長(zhǎng)黑灰產(chǎn)套利的零和游戲,硬核技術(shù)打擊隱秘的不公

    導(dǎo)讀:群控系統(tǒng)一般由多個(gè)部分組成,例如在手機(jī)端運(yùn)行的服務(wù)、在手機(jī)端用于模擬輸入的輸入法、在 PC 端用來對(duì)所有設(shè)備操作與監(jiān)控的中控臺(tái)、在服務(wù)器中運(yùn)行的連接所有設(shè)備的服務(wù)端等。本文主要介紹對(duì)群控軟件技術(shù)的相關(guān)研究與實(shí)踐。 文|李伊洋 網(wǎng)易易盾 Android 安全

    2024年02月11日
    瀏覽(18)
  • kafka偽集群部署,使用docker環(huán)境拷貝模式
  • 深入理解零拷貝技術(shù)

    深入理解零拷貝技術(shù)

    注意事項(xiàng):除了 Direct I/O,與磁盤相關(guān)的文件讀寫操作都有使用到 page cache 技術(shù)。 很多應(yīng)用程序在面臨客戶端請(qǐng)求時(shí),可以等價(jià)為進(jìn)行如下的系統(tǒng)調(diào)用: File.read(file, buf, len); Socket.send(socket, buf, len); 例如消息中間件 Kafka 就是這個(gè)應(yīng)用場(chǎng)景,從磁盤中讀取一批消息后原封不動(dòng)地

    2024年02月10日
    瀏覽(17)
  • 聊聊transformers庫(kù); 微軟推出ZeRO++技術(shù):優(yōu)化大型AI模型訓(xùn)練時(shí)間和成本

    聊聊transformers庫(kù); 微軟推出ZeRO++技術(shù):優(yōu)化大型AI模型訓(xùn)練時(shí)間和成本

    ?? AI新聞 ?? 微軟推出ZeRO++技術(shù):優(yōu)化大型AI模型訓(xùn)練時(shí)間和成本 摘要 :據(jù)報(bào)道,微軟研究人員最近發(fā)布了一項(xiàng)名為ZeRO++的新技術(shù),旨在優(yōu)化訓(xùn)練大型AI模型時(shí)常遇到的數(shù)據(jù)傳輸成本和帶寬限制問題,可大幅減少訓(xùn)練時(shí)間和成本。ZeRO++建立在現(xiàn)有的ZeRO傳輸技術(shù)基礎(chǔ)上,并通

    2024年02月13日
    瀏覽(22)
  • Linux-I/O機(jī)制-零拷貝技術(shù)

    ????????外設(shè)(磁盤)-- 內(nèi)核緩沖區(qū) -- 用戶緩沖區(qū) ????????外設(shè)(磁盤)數(shù)據(jù)到內(nèi)核的這個(gè)過程解放了CPU,CPU只需要給信號(hào)到DMA控制器即可,DMA自動(dòng)完成數(shù)據(jù)拷貝然后觸發(fā)中斷通知CPU。 傳輸方向: 1)外設(shè)到內(nèi)存(例如:ADC) 2)內(nèi)存到外設(shè)(例如:串口發(fā)送) 3)內(nèi)

    2024年02月10日
    瀏覽(17)
  • 零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(下)

    零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(下)

    在前一章節(jié)中,我們了解了DMA技術(shù)在文件傳輸中的重要性,并簡(jiǎn)要介紹了零拷貝技術(shù)。為了提高文件傳輸?shù)男阅埽覀冃枰獪p少用戶態(tài)與內(nèi)核態(tài)之間的上下文切換次數(shù)以及內(nèi)存拷貝次數(shù)。本章將深入探討零拷貝技術(shù)的優(yōu)化方法,讓我們一起走進(jìn)零拷貝的優(yōu)化之路! 當(dāng)我們意識(shí)

    2024年02月08日
    瀏覽(25)
  • 零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(上)

    零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(上)

    當(dāng)涉及到網(wǎng)絡(luò)傳輸中的零拷貝技術(shù)時(shí),它在提高性能和效率方面扮演著重要的角色。在之前我們已經(jīng)討論了磁盤設(shè)備管理中的零拷貝技術(shù),其中涉及到了DMA技術(shù)?,F(xiàn)在,讓我們來深入探討一下網(wǎng)絡(luò)傳輸中零拷貝技術(shù)的實(shí)現(xiàn)方式以及它的重要性。 在沒有DMA(直接內(nèi)存訪問)技術(shù)

    2024年02月08日
    瀏覽(17)
  • H.266/VVC SCC技術(shù)學(xué)習(xí):幀內(nèi)塊拷貝(Intra block copy, IBC)

    H.266/VVC SCC技術(shù)學(xué)習(xí):幀內(nèi)塊拷貝(Intra block copy, IBC)

    幀內(nèi)塊拷貝 (Intra block copy, IBC) 是 HEVC 針對(duì)屏幕內(nèi)容編碼(Screen content coding)序列的擴(kuò)展工具,它顯著提高了屏幕內(nèi)容序列的編碼效率。 IBC 是一種塊級(jí)編碼模式, IBC 編碼的 CU 被視為除幀內(nèi)或幀間預(yù)測(cè)模式之外的第三預(yù)測(cè)模式。和幀間技術(shù)類似,編碼端執(zhí)行運(yùn)動(dòng)搜索( 塊匹

    2023年04月22日
    瀏覽(20)
  • 馬云說的AI電商真的要來了?AR技術(shù)虛擬試穿公司ZERO10引入AI人工智能模型,未來試衣間就應(yīng)這樣!

    馬云說的AI電商真的要來了?AR技術(shù)虛擬試穿公司ZERO10引入AI人工智能模型,未來試衣間就應(yīng)這樣!

    ZERO10 是一家提供虛擬試穿體驗(yàn)的公司,他們基于自家的 AR 技術(shù),提供高度逼真且頂尖的虛擬試穿體驗(yàn)。與現(xiàn)有的技術(shù)不同,他們的生成式人工智能試穿技術(shù)只需要 1-5 張用戶照片,就可以實(shí)現(xiàn)虛擬試穿。這種方法為規(guī)?;瘧?yīng)用提供了巨大機(jī)會(huì)。 虛擬試穿的問題可以看作是生

    2024年02月03日
    瀏覽(20)
  • 理解Go中的零值

    理解Go中的零值

    在 Go 語(yǔ)言中,零值(Zero Value)是指在聲明變量但沒有顯式賦值的情況下,變量會(huì)被自動(dòng)賦予一個(gè)默認(rèn)值。這個(gè)默認(rèn)值取決于變量的類型,不同類型的變量會(huì)有不同的零值。零值是 Go 語(yǔ)言中的一個(gè)重要概念,因?yàn)樗_保了變量在聲明后具有一個(gè)可預(yù)測(cè)的初始狀態(tài),減少了未初

    2024年02月05日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包