女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

探究slab在內核內存管理和用戶態(tài)Memcached的雙重存在

B4Pb_gh_6fde77c ? 來源:Linux閱碼場 ? 作者: 宋寶華 ? 2021-08-13 14:55 ? 次閱讀

很多基礎的概念,將跨越軟件的層次而存在。比如slab,對于內核人員,我們都知道slab是buddy之上的一層。

因為buddy作為Linux內核最底層的內存管理器,它分配1頁,2頁,4頁,2^n頁,但是作為內核的堆用戶本身,經常只是調用kmalloc()申請一個小內存,或者調用kmem_cache_alloc()申請一個數(shù)據結構,2^n頁給它,會形成大量碎片浪費。所以slab找buddy要了2^n頁后,內部切割為同樣size的object,再給kmalloc和kmem_cache_alloc()拿走。

697d87de-fbba-11eb-9bcf-12bb97331649.png

它的邏輯如下:

6991d324-fbba-11eb-9bcf-12bb97331649.png

這樣一種軟件本質意義上的需求,不會因為只是內核就需要。比如同樣的slab算法,也被著名的用戶態(tài)軟件Memcached需要著。

Memcached是一種分布式內存對象緩存系統(tǒng),用于動態(tài)Web等應用以減輕數(shù)據庫的負載。它在內存中緩存數(shù)據和對象,使用key-value對形式存儲。它的網站首頁(https://memcached.org/)顯示了它的基本用法邏輯:

Memcached的原理也類似內核態(tài)page cache的原理:

69a6c658-fbba-11eb-9bcf-12bb97331649.jpg

比如你查詢一個數(shù)據庫,可以先看看Memcached里面有沒有命中,命中就直接從Memcached的內存里面拿到值了,沒有的時候才需要去查數(shù)據庫。查到后,可以把結果放入Memcached,這樣下次再訪問同樣數(shù)據,不再需要進行數(shù)據庫的查詢動作。

Memcached也同樣采用slab分配算法來組織數(shù)據的存放,里面可以組織不同大小的chunks:

正如Linux內核的每一種不同slab里面的object的大小不一樣。

我們安裝1個Memcached:

$ sudo apt-get install memcached

然后啟動起來,你馬上看到memcached打印說自己創(chuàng)建了各種不同chunk size的slab:

69d4799a-fbba-11eb-9bcf-12bb97331649.png

當然,還有更多的相似性,比如Memcached里面的對象,也是LRU算法替換。所以LRU這種,也是一種本質上的事情。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1281

    瀏覽量

    70790
  • Linux
    +關注

    關注

    87

    文章

    11456

    瀏覽量

    212756
  • 數(shù)據庫
    +關注

    關注

    7

    文章

    3900

    瀏覽量

    65761
  • 管理器
    +關注

    關注

    0

    文章

    252

    瀏覽量

    18930

原文標題:宋寶華:slab在內核內存管理和用戶態(tài)Memcached的雙重存在

文章出處:【微信號:gh_6fde77c41971,微信公眾號:FPGA干貨】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    harmony OS NEXT-通過用戶首選項實現(xiàn)數(shù)據持久化

    存儲的地方,可以采用用戶首選項來進行存儲。Preferences會將該數(shù)據緩存在內存中,當用戶讀取的時候,能夠快速從內存中獲取數(shù)據,當需要持久化時可以使用flush接口將
    的頭像 發(fā)表于 04-29 16:38 ?314次閱讀

    Linux系統(tǒng)中通過預留物理內存實現(xiàn)ARM與FPGA高效通信的方法

    管理子系統(tǒng)管理。因此,需要預留一部分物理內存,使其不被內核管理。接下來將為大家詳細介紹在 Linux 系統(tǒng)中通過預留物理
    的頭像 發(fā)表于 04-16 13:42 ?523次閱讀
    Linux系統(tǒng)中通過預留物理<b class='flag-5'>內存</b>實現(xiàn)ARM與FPGA高效通信的方法

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-內核空間與用戶空間的數(shù)據拷貝之數(shù)據拷貝介紹

    本帖最后由 jf_13411809 于 2025-3-20 14:10 編輯 在Linux系統(tǒng)中,內核空間和用戶空間是兩個獨立的地址空間,它們有不同的訪問權限和內存保護機制。在內核
    發(fā)表于 03-20 11:50

    飛凌嵌入式ElfBoard ELF 1板卡-內核空間與用戶空間的數(shù)據拷貝之數(shù)據拷貝介紹

    在Linux系統(tǒng)中,內核空間和用戶空間是兩個獨立的地址空間,它們有不同的訪問權限和內存保護機制。在內核空間和用戶空間之間進行數(shù)據傳輸時,需要
    發(fā)表于 03-19 08:55

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內核移植之內核啟動流程

    關于內核啟動流程涉及內容較多而且復雜,過度的分析意義不大,因此,這里不做詳細講解,只做一個大概的介紹。初學者只做了解,有一定基礎的可以深入理解。 內核鏡像被uboot加載到內存空間之后,獲得控制權
    發(fā)表于 01-06 09:51

    Redis緩存與Memcached的比較

    Redis和Memcached都是廣泛使用的內存數(shù)據存儲系統(tǒng),它們主要用于提高應用程序的性能,通過減少對數(shù)據庫的直接訪問來加速數(shù)據檢索。以下是對Redis和Memcached的比較,涵蓋了它們的一些
    的頭像 發(fā)表于 12-18 09:33 ?500次閱讀

    虛擬內存溢出該怎么處理 虛擬內存在服務器中的應用

    在現(xiàn)代計算機系統(tǒng)中,虛擬內存是一種重要的資源管理技術,它允許系統(tǒng)使用硬盤空間來擴展物理內存的容量。然而,當系統(tǒng)運行的程序和進程超出了物理內存和虛擬
    的頭像 發(fā)表于 12-04 09:49 ?693次閱讀

    Linux下如何管理虛擬內存 使用虛擬內存時的常見問題

    在Linux系統(tǒng)中,虛擬內存管理是操作系統(tǒng)內核的一個重要功能,負責管理物理內存和磁盤上的交換空間。以下是對Linux下如何
    的頭像 發(fā)表于 12-04 09:19 ?1227次閱讀

    嵌入式工程師都在找的【Linux內核調試技術】建議收藏!

    printk()調用,可以直接將關心的信息打印到屏幕上,從而觀察程序的執(zhí)行路徑和變量的變化情況。 printk()類似于用戶空間的printf(),但它在內核空間使用,并受到內核日志系統(tǒng)的
    發(fā)表于 11-28 15:37

    Linux內存管理中HVO的實現(xiàn)原理

    代碼閱讀工具:vim+ctags+cscope本文主要介紹內存管理中的HVO(HugeTLB Vmemmap Optimization)特性,通過HVO可以節(jié)省管理HugeTLB 頁面元數(shù)據
    的頭像 發(fā)表于 10-22 16:51 ?582次閱讀
    Linux<b class='flag-5'>內存</b><b class='flag-5'>管理</b>中HVO的實現(xiàn)原理

    Windows管理內存的三種主要方式

    Windows操作系統(tǒng)提供了多種方式來管理內存,以確保系統(tǒng)資源的有效利用和性能的優(yōu)化。以下是關于Windows管理內存的三種主要方式的詳細闡述,包括堆
    的頭像 發(fā)表于 10-12 17:09 ?2183次閱讀

    線上活動 | 新思科技 2024 內存用戶大會,專注于內存設計與開發(fā)!

    思科技?2024 內存用戶大會(線上活動) 新思科技內存用戶大會”是一場專注于內存設計與開發(fā)的線上盛會,匯聚
    發(fā)表于 09-26 14:36 ?180次閱讀
    線上活動 | 新思科技 2024 <b class='flag-5'>內存</b><b class='flag-5'>用戶</b>大會,專注于<b class='flag-5'>內存</b>設計與開發(fā)!

    內存管理的硬件結構

    常見的內存分配函數(shù)有malloc,mmap等,但大家有沒有想過,這些函數(shù)在內核中是怎么實現(xiàn)的?換句話說,Linux內核內存管理是怎么實現(xiàn)的
    的頭像 發(fā)表于 09-04 14:28 ?581次閱讀
    <b class='flag-5'>內存</b><b class='flag-5'>管理</b>的硬件結構

    Memcached介紹和詳解

    Memcached易于理解和維護,同時也保證了其高性能。 2. 高性能:Memcached采用基于Slab Allocator的內存管理機制
    發(fā)表于 07-17 15:58

    ESP-IDF內核中的內存管理如何驗證?

    請教一下,ESP-IDF 內核中的內存管理如何驗證
    發(fā)表于 06-19 06:30