色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用eBPF優(yōu)化內(nèi)存存儲(chǔ)功能

Linux閱碼場(chǎng) ? 來(lái)源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2022-08-09 11:43 ? 次閱讀

1.背景

1212be9c-1793-11ed-ba43-dac502259ad0.png

隨著存儲(chǔ)設(shè)備的升級(jí)與發(fā)展,當(dāng)代的存儲(chǔ)設(shè)備性能越來(lái)越高,延遲也越來(lái)越低。對(duì)于內(nèi)核而言,Linux I/O 存儲(chǔ)棧的軟件所帶來(lái)的性能開(kāi)銷(xiāo)已經(jīng)越來(lái)越不可忽視。同樣在 512B 的隨機(jī)讀條件下,在采用二代 Optane SSD 作為存儲(chǔ)設(shè)備的測(cè)試?yán)?中,內(nèi)核軟件( Linux 存儲(chǔ)棧)所帶來(lái)的性能開(kāi)銷(xiāo)已經(jīng)?達(dá) 50%。

2.傳統(tǒng)方式與XRP

12273d40-1793-11ed-ba43-dac502259ad0.png

我們來(lái)看?個(gè)實(shí)際的例?,假設(shè)現(xiàn)在有?棵樹(shù)?為 4 的 B+ tree 存儲(chǔ)于存儲(chǔ)設(shè)備當(dāng)中。當(dāng)我們從根節(jié)點(diǎn)出發(fā),?共需要經(jīng)過(guò)三次訪盤(pán)才能獲得最終的葉?節(jié)點(diǎn),?中間的索引節(jié)點(diǎn)對(duì)于?戶??沒(méi)有意義,但也需要經(jīng)過(guò)?個(gè)完整的存儲(chǔ)棧路徑。?每次訪盤(pán)的過(guò)程中,存儲(chǔ)棧所花費(fèi)的開(kāi)銷(xiāo)就要整個(gè)存儲(chǔ)路徑的 48.6%。

1246a842-1793-11ed-ba43-dac502259ad0.png

顯然,冗?的存儲(chǔ)棧路徑鉗制了?性能存儲(chǔ)設(shè)備的發(fā)揮,那么?個(gè)直觀的優(yōu)化思路便是通過(guò) Kernel Bypass 的?式,繞開(kāi)內(nèi)核中存儲(chǔ)棧,以提升存儲(chǔ)性能。?前在學(xué)術(shù)界中,對(duì)于這??的?作有 Demikernel、Shenango、Snap 等,??業(yè)界中最為?泛使?的則是 Intel 的 SPDK。

126e8e8e-1793-11ed-ba43-dac502259ad0.png

然?,Kernel Bypass 技術(shù)并?銀彈,它雖然能夠降低內(nèi)核存儲(chǔ)棧的開(kāi)銷(xiāo),但也存在著如下缺點(diǎn):

1. 沒(méi)有適當(dāng)粒度的訪問(wèn)控制

2. 需要采? polling ?式來(lái)判斷 I/O 是否完成,這會(huì)導(dǎo)致在 I/O 利?率低時(shí),Polling 進(jìn)程所在的 CPU ?部分情況下只是在空轉(zhuǎn),浪費(fèi) CPU 周期,同時(shí) CPU 資源不能?效地在多進(jìn)程中共享。

1284b696-1793-11ed-ba43-dac502259ad0.png

所謂 XRP 的全稱(chēng)是 eXpress Resubmission Path(快速重提交路徑)。與 SPDK 完全繞開(kāi)內(nèi)核存儲(chǔ)棧,采? polling的?式來(lái)訪問(wèn)存儲(chǔ)的?式不同,XRP 則是通過(guò)將中間請(qǐng)求直接在 NVMe 驅(qū)動(dòng)層進(jìn)? resubmission,從?避免讓中間請(qǐng)求通過(guò)冗?的存儲(chǔ)棧后再提交,從?達(dá)到加速的?的。反映到上?的例?當(dāng)中,可以明顯地看到使? XRP 存儲(chǔ)訪問(wèn)?式中,只有第?次請(qǐng)求和最后?次響應(yīng)會(huì)經(jīng)過(guò)?個(gè)完整的存儲(chǔ)棧路徑。顯然,在允許范圍內(nèi),B+ tree的樹(shù)?越?,XRP 的加速效果也就越明顯。

12ae9ed4-1793-11ed-ba43-dac502259ad0.png

既然優(yōu)化思路有了,那么應(yīng)當(dāng)如何才能將請(qǐng)求重提交于 NVMe 驅(qū)動(dòng)層呢?這?可以借鑒 XDP 的實(shí)現(xiàn)思路。XDP 通過(guò) eBPF 來(lái)實(shí)現(xiàn)對(duì)每個(gè)數(shù)據(jù)包進(jìn)?獨(dú)?的操作(數(shù)據(jù)包過(guò)濾、數(shù)據(jù)包轉(zhuǎn)發(fā)、數(shù)據(jù)包追蹤、?絡(luò)調(diào)度)。XRP 也可以通過(guò) BPF 程序來(lái)實(shí)現(xiàn)。

12c0f4ee-1793-11ed-ba43-dac502259ad0.png

12ceabb6-1793-11ed-ba43-dac502259ad0.png

XRP 是?個(gè)使? eBPF 來(lái)降低內(nèi)核存儲(chǔ)軟件開(kāi)銷(xiāo)的系統(tǒng)。它所?臨的挑戰(zhàn)主要有:

1. 如何在 NVMe 驅(qū)動(dòng)層實(shí)現(xiàn)對(duì)?件偏移的翻譯

2. 如何強(qiáng)化 eBPF verifier 以?持存儲(chǔ)應(yīng)?場(chǎng)景

3. 如何重新提交 NVMe 請(qǐng)求

4. 如何與應(yīng)?層 Cache 進(jìn)?交互

12db1978-1793-11ed-ba43-dac502259ad0.png

XRP 引?了?種新的 BPF 類(lèi)型(BPF_PROG_TYPE_XRP),包含了 5 個(gè)字段,分別是

1. char* data:?個(gè)緩沖區(qū),?于緩沖從磁盤(pán)中讀取出來(lái)的數(shù)據(jù)

2. int done:布爾語(yǔ)意,表示 resubmission 邏輯是否應(yīng)當(dāng)返回給 user,還是應(yīng)當(dāng)繼續(xù) resubmitting I/O 請(qǐng)求

3. uint64_t next_addr[16]:邏輯地址數(shù)組,存放的是下次 resubmission 的邏輯地址

4. uint64_t size[16]:存放的是下次 resubmission 的請(qǐng)求的??5. char* scratch:user 和 BPF 函數(shù)的私有空間,?來(lái)傳遞從 user 到 BPF 函數(shù)的參數(shù)。BPF 函數(shù)也可以?這段

空間來(lái)保存中間數(shù)據(jù)。處于簡(jiǎn)單考慮,默認(rèn) scratch 的??是 4KB。

同時(shí),為了避免因存在?限循環(huán)?導(dǎo)致 BPF Verifier 驗(yàn)證失敗,代碼中指定了 B+ tree 的最?扇出數(shù)為

MAX_FANOUT,其值為 16。

12f357a4-1793-11ed-ba43-dac502259ad0.png

1302c298-1793-11ed-ba43-dac502259ad0.png

?前,最常?鏈?zhǔn)阶x請(qǐng)求主要有 B-Tree 和 LSM Tree 兩種,? XRP 分別繼承了 BPF-KV(?個(gè)簡(jiǎn)易的基于 B+ Tree的鍵值存儲(chǔ)引擎) 和 WIREDTIGER(mongoDB 的后端鍵值存儲(chǔ)引擎)。

3.實(shí)驗(yàn)測(cè)試

13253e5e-1793-11ed-ba43-dac502259ad0.png

上圖為在 512B 隨機(jī)讀測(cè)試中,標(biāo)準(zhǔn) read 和 XRP 之間的性能對(duì)?測(cè)試。可以看到隨著線程數(shù)的增加,XRP 的吞吐保持線性增?的態(tài)勢(shì),同時(shí) XRP 通過(guò)降低每次 I/O 請(qǐng)求時(shí)的 CPU 開(kāi)銷(xiāo),從?緩解了 CPU 爭(zhēng)?問(wèn)題。

133de4a4-1793-11ed-ba43-dac502259ad0.png

134b9856-1793-11ed-ba43-dac502259ad0.png

上?兩幅圖中,同樣表示了在 512B 隨機(jī)讀測(cè)試中(CPU 核?數(shù)為 6),標(biāo)準(zhǔn) read、XRP 和 SPDK 之間的吞吐量以及尾延遲的對(duì)?。在線程數(shù)?于等于 CPU 核?數(shù)時(shí),三者性能變化穩(wěn)定,從?到低依次為 SPDK > XRP >read。?當(dāng)線程數(shù)超過(guò)了核?數(shù)時(shí),SPDK 性能開(kāi)始出現(xiàn)嚴(yán)重的下跌,標(biāo)準(zhǔn) read 性能輕微下滑,? XRP 依然保持著穩(wěn)定的線性增?。這主要是因?yàn)?SPDK 采? polling 的?式訪問(wèn)存儲(chǔ)設(shè)備的完成隊(duì)列,當(dāng)線程數(shù)超過(guò)核?數(shù),線程之間對(duì) CPU 的爭(zhēng)奪加上缺乏同步性,會(huì)導(dǎo)致所有線程都經(jīng)歷尾部延遲顯著提升和整體吞吐量的顯著下降。

4.總結(jié)

137f2edc-1793-11ed-ba43-dac502259ad0.png

XRP 是?個(gè)將 BPF 應(yīng)?來(lái)通?存儲(chǔ)函數(shù)的加速上的系統(tǒng),它既能享受到 kernel bypass 的性能優(yōu)勢(shì),同時(shí)??須犧牲 CPU 的使?率和訪問(wèn)控制。?前,XRP 團(tuán)隊(duì)依然在積極地將 XRP 與其他?些流?的鍵值存儲(chǔ)引擎,如 RocksDB進(jìn)?集成。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10872

    瀏覽量

    211996
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4320

    瀏覽量

    85901
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3028

    瀏覽量

    74098

原文標(biāo)題:XRP:用eBPF優(yōu)化內(nèi)存存儲(chǔ)功能

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于ebpf的性能工具-bpftrace腳本語(yǔ)法

    bpftrace 通過(guò)高度抽象的封裝來(lái)使用 eBPF,大多數(shù)功能只需要寥寥幾筆就可以運(yùn)行起來(lái),可以很快讓我們搞清楚 eBPF 是什么樣的,而暫時(shí)不關(guān)心 eBPF 復(fù)雜的內(nèi)部機(jī)理。由于
    的頭像 發(fā)表于 09-04 16:04 ?1054次閱讀
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace腳本語(yǔ)法

    內(nèi)存優(yōu)化

    軟件簡(jiǎn)介:      內(nèi)存優(yōu)化王 能夠有效釋放應(yīng)用程序在運(yùn)行時(shí)未能及時(shí)釋放的內(nèi)存資源,并提供給需要使用大量內(nèi)存的程序使用。它在
    發(fā)表于 09-05 14:57

    內(nèi)存分配及Cache優(yōu)化

    內(nèi)存分配及Cache優(yōu)化   與PC機(jī)相比,DSP的程序數(shù)據(jù)存儲(chǔ)空間非常有限。因此,對(duì)于視頻編碼這種需要處理大量數(shù)據(jù)的程序而言,必須合理安排數(shù)據(jù)和程序的存儲(chǔ)方式,實(shí)現(xiàn)對(duì)
    發(fā)表于 08-10 14:54

    嵌入式系統(tǒng)內(nèi)存優(yōu)化使用

    嵌入式系統(tǒng)功能的提高,占用了較大內(nèi)存空間,繼而時(shí)常出現(xiàn)運(yùn)行無(wú)響應(yīng)。基于用戶方面看,由于系統(tǒng)內(nèi)存問(wèn)題影響運(yùn)行,針對(duì)系統(tǒng)內(nèi)存與進(jìn)程應(yīng)用狀態(tài)研究,可以調(diào)整系統(tǒng)數(shù)值與執(zhí)行文件elf分析,進(jìn)行系
    發(fā)表于 11-04 06:23

    關(guān)于 eBPF 安全可觀測(cè)性,你需要知道的那些事兒

    離不開(kāi)安全模式的 eBPF Verifier(其中最重要的是邊界檢查):擁有加載 eBPF 程序的流程所需的特權(quán)無(wú) crash 或其他異常導(dǎo)致系統(tǒng)崩潰的情況程序可以正常結(jié)束,無(wú)死循環(huán)檢查內(nèi)存越界檢查
    發(fā)表于 09-08 15:31

    openEuler 倡議建立 eBPF 軟件發(fā)布標(biāo)準(zhǔn)

    擴(kuò)展到了網(wǎng)絡(luò)、內(nèi)核、安全、跟蹤等,而且它的功能特性還在快速發(fā)展中,早期的 BPF 被稱(chēng)為經(jīng)典 BPF,簡(jiǎn)稱(chēng) cBPF,正是這種功能擴(kuò)展,使得現(xiàn)在的 BPF 被稱(chēng)為擴(kuò)展 BPF,簡(jiǎn)稱(chēng) eBPF。如今
    發(fā)表于 12-23 16:21

    何用全波段測(cè)試法優(yōu)化光器件性能

    何用全波段測(cè)試法優(yōu)化光器件性能 通信界的最近進(jìn)展主要集中于城域網(wǎng)和接入網(wǎng),因?yàn)樗鼈兛梢越鉀Q存儲(chǔ)局域網(wǎng)絡(luò)(SAN)、視頻
    發(fā)表于 03-17 11:26 ?747次閱讀

    基于小文件的內(nèi)存存儲(chǔ)優(yōu)化策略

    由于內(nèi)存云RAMCloud采用日志段的方式存儲(chǔ)數(shù)據(jù),因此當(dāng)大量小文件存儲(chǔ)于RAMCloud集群時(shí),每個(gè)小文件獨(dú)占整個(gè)段,會(huì)產(chǎn)生較多的段內(nèi)碎片,從而導(dǎo)致內(nèi)存的有效利用率較低以及大量的
    發(fā)表于 01-24 13:55 ?0次下載
    基于小文件的<b class='flag-5'>內(nèi)存</b>云<b class='flag-5'>存儲(chǔ)</b><b class='flag-5'>優(yōu)化</b>策略

    何用eBPF寫(xiě)TCP擁塞控制算法?

    其實(shí)不想用這個(gè)題目的,只因?yàn)門(mén)CP相關(guān)的東西比較吸引人的眼球,這篇文章的主題還是eBPF,而不是TCP。 用eBPF寫(xiě)TCP擁塞控制算法只是本文所講內(nèi)容的一個(gè)再平凡不過(guò)的例子。 先看兩個(gè)問(wèn)題,或者說(shuō)
    的頭像 發(fā)表于 12-26 09:44 ?1678次閱讀

    eBPF是什么以及eBPF能干什么

    規(guī)則使用基于寄存器的虛擬機(jī)來(lái)描述包過(guò)濾的行為。比較常用的功能是通過(guò)過(guò)濾來(lái)統(tǒng)計(jì)流量,tcpdump工具就是基于BPF實(shí)現(xiàn)的。而eBPF對(duì)它進(jìn)行了擴(kuò)展來(lái)實(shí)現(xiàn)更多的功能。 主要區(qū)別如下: 1)允許使用C 語(yǔ)言編寫(xiě)
    的頭像 發(fā)表于 07-05 15:17 ?1.2w次閱讀
    <b class='flag-5'>eBPF</b>是什么以及<b class='flag-5'>eBPF</b>能干什么

    美光推出一系列優(yōu)化解決方案應(yīng)對(duì)智能邊緣復(fù)雜內(nèi)存存儲(chǔ)需求

    內(nèi)存存儲(chǔ)解決方案領(lǐng)先供應(yīng)商 Micron Technology, Inc.(美光科技股份有限公司,納斯達(dá)克代碼:MU)近日宣布擴(kuò)展旗下嵌入式產(chǎn)品組合與生態(tài)系統(tǒng)合作伙伴陣容,推出一系列功能強(qiáng)大的
    的頭像 發(fā)表于 06-27 15:31 ?1296次閱讀
    美光推出一系列<b class='flag-5'>優(yōu)化</b>解決方案應(yīng)對(duì)智能邊緣復(fù)雜<b class='flag-5'>內(nèi)存</b>與<b class='flag-5'>存儲(chǔ)</b>需求

    openEuler倡議建立eBPF軟件發(fā)布標(biāo)準(zhǔn)

    擴(kuò)展到了網(wǎng)絡(luò)、內(nèi)核、安全、跟蹤等,而且它的功能特性還在快速發(fā)展中,早期的 BPF 被稱(chēng)為經(jīng)典 BPF,簡(jiǎn)稱(chēng) cBPF,正是這種功能擴(kuò)展,使得現(xiàn)在的 BPF 被稱(chēng)為擴(kuò)展 BPF,簡(jiǎn)稱(chēng) eBPF
    的頭像 發(fā)表于 12-06 10:29 ?569次閱讀

    基于ebpf的性能工具-bpftrace

    運(yùn)行情況對(duì)于診斷問(wèn)題、優(yōu)化性能以及進(jìn)行安全監(jiān)控至關(guān)重要。bpftrace作為一款強(qiáng)大的跟蹤工具,為開(kāi)發(fā)人員和系統(tǒng)管理員提供了一種獨(dú)特的方式來(lái)監(jiān)視和分析Linux系統(tǒng)的內(nèi)部運(yùn)行。本文描述bpftrace的原理和使用。 bpftrace 「bpftrace是基于eBPF和BB
    的頭像 發(fā)表于 09-04 16:02 ?686次閱讀
    基于<b class='flag-5'>ebpf</b>的性能工具-bpftrace

    ebpf的快速開(kāi)發(fā)工具--libbpf-bootstrap

    基于ubuntu22.04-深入淺出 eBPF 基于ebpf的性能工具-bpftrace 基于ebpf的性能工具-bpftrace腳本語(yǔ)法 基于ebpf的性能工具-bpftrace實(shí)戰(zhàn)
    的頭像 發(fā)表于 09-25 09:04 ?1021次閱讀
    <b class='flag-5'>ebpf</b>的快速開(kāi)發(fā)工具--libbpf-bootstrap

    eBPF動(dòng)手實(shí)踐系列三:基于原生libbpf庫(kù)的eBPF編程改進(jìn)方案簡(jiǎn)析

    在上一篇文章《eBPF動(dòng)手實(shí)踐系列二:構(gòu)建基于純C語(yǔ)言的eBPF項(xiàng)目》中,我們初步實(shí)現(xiàn)了脫離內(nèi)核源碼進(jìn)行純C語(yǔ)言eBPF項(xiàng)目的構(gòu)建。libbpf庫(kù)在早期和內(nèi)核源碼結(jié)合的比較緊密,如今的libbpf庫(kù)更加成熟,已經(jīng)完全脫離內(nèi)核源碼
    的頭像 發(fā)表于 03-19 14:19 ?855次閱讀
    <b class='flag-5'>eBPF</b>動(dòng)手實(shí)踐系列三:基于原生libbpf庫(kù)的<b class='flag-5'>eBPF</b>編程改進(jìn)方案簡(jiǎn)析
    主站蜘蛛池模板: 日本妈妈xxxx| 在线亚洲97se| 性色欲情网站IWWW| 伊人久久中文大香线蕉综合| 6080yy奇领电影在线看| 扒开老师大腿猛进AAA片| 国产看午夜精品理论片| 久久这里只有精品国产99| 日韩中文欧美在线视频| 亚洲中文字幕日产乱码2020 | 人人啪日日观看在线| 亚洲AV成人无码网天堂| 16女下面流水不遮图免费观看| 打扑克床上视频不用下载免费观看| 国语自产精品一区在线视频观看 | 国产日韩久久久精品影院首页| 久久婷婷久久一区二区三区| 日韩爽爽影院在线播放| 一本色道久久综合一区 | 成年视频国产免费观看| 好男人好资源在线观看| 秋霞成人午夜鲁丝一区二区三区 | 世界上第一个得抑郁症的人是谁| 又大又硬又爽免费视频| 国产Av男人的天堂精品良久| 玖玖爱在线播放| 午夜福利免费0948视频| 99精品欧美一区二区三区美图| 国产在线精品亚洲| 日本久久中文字幕精品| 中文字幕在线视频网站| 国产精品无码久久久久不卡| 欧美疯狂做受xxxxx喷水| 亚洲伊人精品| 国产高清视频在线观看不卡v| 男人天堂2018亚洲男人天堂| 亚洲国产亚综合在线区尤物| 超嫩校花被灌醉在线观看| 老汉老太bbbbbxxxxx| 亚洲高清免费在线观看| 妇少水多18P蜜泬17P亚洲乱|