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

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

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

3天內不再提示

Linux資料匯總之內存管理

Linux閱碼場 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-27 11:39 ? 次閱讀

網絡上面有很多坑爹的文章,誤導不少人,很多人對Linux的很多誤解可能來自于這些廣泛流傳的技術文章。下面我們推出一個系列來總結。先從內存管理開始。

1. compact_memory

網上常見文字:

compact_memory

只有在啟用了CONFIG_COMPACTION選項才有效。當向該文件(/proc/sys/vm/compact_memory)寫入1時,所有的內存域都會被壓縮,使空閑的內存盡可能形成連續的內存塊。

”“

當內核編譯參數設置了CONFIG_COMPACTION,就會在/proc/sys/vm/compact_memory有入口文件。將1寫入到這個文件,則所有的zones就會進行壓縮,以便能夠盡可能地提供連續內存塊。對于需要分配大頁的時候這個功能非常重要,不過,進程會在需要時直接進行內存壓縮(compact memory)。

修正

這里的compact與"壓縮(compress)"沒有半毛錢關系,compact是使得空閑內存更加緊湊的內存遷移技術。實現的效果如下:

假設紅色和白色分別是空閑和被占用的頁面,經過內存compaction之前的狀態為:

那么內存的compact行為可以達到如下目的,空閑內存被扎堆了,這樣如果要申請更大的連續內存,則可以滿足:

如果要直譯,compact memory可以翻譯為“內存緊湊”。但是絕對不是壓縮,因為zRAM之類的才是采用了壓縮技術。

2. cached和buffers的區別

網上常見文字:

Buffers與cached啥區別

A buffer is something that has yet to be “written” to disk.

A cache is something that has been “read” from the disk and stored for later use

對于應用程序來說,buffers/cached 是等于可用的,因為buffer/cached是為了提高文件讀取的性能,當應用程序需在用到內存的時候,buffer/cached會很快地被回收。

所以從應用程序的角度來說,可用內存=系統free memory+buffers+cached.

修正

此處極容易讓人產生誤解,以為free命令里面的buffers是為了寫而產生,而cached是為了讀而產生。

真實情況下,cached和buffers與讀寫沒有半毛錢關系,它們都是緩存,唯一的區別是,如果你cat /dev/sda1 > /dev/null,這樣/dev/sda1內容進入buffers,如果你cat /mnt/aaa/bbb.c > /dev/null,則/mnt/aaa/bbb.c的內容進入cached。所以,這兩種cache,一個以裸設備或分區為背景,一個以文件系統里面的文件為背景,無論讀寫皆然。

buffers主要有2個用戶:

  1. 應用直接訪問裸分區

  2. 文件系統本身的實現,會認為/dev/sda1是個裸設備,因此文件系統的metadata會緩存到buffers

3. PSS

許多人引用了關于pss的這個解釋:

https://yq.aliyun.com/articles/24048

“PSS - Proportional Set Size 實際使用的物理內存(比例分配共享庫占用的內存)USS - Unique Set Size 進程獨自占用的物理內存(不包含共享庫占用的內存)

修正

這個文檔有3個問題:

  1. 兩個進程共享的部分,遠遠不是只有共享庫,比如我們在Linux里面開2個bash進程,那么這2個bash,實際是共享1個代碼段;其他的mmap()的時候shared的映射當然也是。

  2. 共享庫里面的內存,也不是都共享,只是代碼段等不會做CoW(寫時拷貝)的內存才會跨進程共享。

  3. USS去掉的是所有跨進程共享的內存,不是只去掉了共享庫。

上圖中的4這片內存,是libc的代碼段在內存駐留的部分,被3個進程共享;5這段內存,是bash的代碼段,被2個進程(1044和1045)指向。在計算PSS的時候,這些都需要被比例化。


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

    關注

    87

    文章

    11292

    瀏覽量

    209331
  • 內存管理
    +關注

    關注

    0

    文章

    168

    瀏覽量

    14134

原文標題:宋寶華:網上坑爹的Linux資料匯總之內存管理

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux內存管理是什么,Linux內存管理詳解

    Linux內存管理 Linux內存管理是一個非常復雜的過程,主要分成兩個大的部分:內核的
    的頭像 發表于 05-11 17:54 ?6039次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>內存</b><b class='flag-5'>管理</b>是什么,<b class='flag-5'>Linux</b>的<b class='flag-5'>內存</b><b class='flag-5'>管理</b>詳解

    深度解析Linux內存管理體系

    Linux內存管理的整體模式是虛擬內存管理(分頁內存管理
    發表于 08-06 16:55 ?1733次閱讀

    走進Linux內存系統探尋內存管理的機制和奧秘

    Linux 內存是后臺開發人員,需要深入了解的計算機資源。合理的使用內存,有助于提升機器的性能和穩定性。本文主要介紹Linux 內存組織結構
    的頭像 發表于 01-05 09:47 ?1624次閱讀

    關于Linux內存管理的詳細介紹

    Linux內存管理是指對系統內存的分配、釋放、映射、管理、交換、壓縮等一系列操作的管理。在
    發表于 03-06 09:28 ?1064次閱讀

    Linux內核的內存管理詳解

    內存管理的主要工作就是對物理內存進行組織,然后對物理內存的分配和回收。但是Linux引入了虛擬地址的概念。
    發表于 08-31 14:46 ?779次閱讀
    <b class='flag-5'>Linux</b>內核的<b class='flag-5'>內存</b><b class='flag-5'>管理</b>詳解

    linux最全的資料匯總

    linux最全的資料匯總
    發表于 12-03 13:43

    linux內存管理機制淺析

    本內容介紹了arm linux內存管理機制,詳細說明了linux內核內存管理,
    發表于 12-19 14:09 ?73次下載
    <b class='flag-5'>linux</b><b class='flag-5'>內存</b><b class='flag-5'>管理</b>機制淺析

    程序設計之內存管理

    使用C語言編程時,關于程序設計之內存管理
    發表于 05-20 17:01 ?0次下載

    linux內存管理

    linux內存管理
    發表于 10-24 11:12 ?3次下載
    <b class='flag-5'>linux</b><b class='flag-5'>內存</b><b class='flag-5'>管理</b>

    Linux磁盤存儲區管理原理分析及技巧匯總

    Linux管理磁盤貯存區算的上一個技巧,很多朋友在這上面常常問我,今天我就把這方面的東西匯總一下,從Linux特有的交換分區的原理開始介紹Lin
    發表于 11-07 10:14 ?0次下載

    嵌入式Linux內存管理的知識匯總

    這個內存管理的知識點還真的需要我們專門的去理解一下,今天大家一起來學習學習嵌入式Linux內存管理的知識。 1.不涉及
    發表于 04-09 05:58 ?1023次閱讀
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>內存</b><b class='flag-5'>管理</b>的知識<b class='flag-5'>匯總</b>

    你知道linux內存管理基礎及方法?

    linux內存管理采取的分頁存取機制,會將內存中不經常使用的數據塊交換到虛擬內存中。linux
    發表于 04-28 17:12 ?1155次閱讀

    Linux內核開發框架學習資料匯總

    Linux內核開發框架學習資料匯總
    發表于 06-17 09:29 ?24次下載

    Linux內存管理的基礎知識科普

    Linux內存管理可謂是學好Linux的必經之路,也是Linux的關鍵知識點,有人說打通了內存
    的頭像 發表于 06-08 15:24 ?2108次閱讀

    Linux 內存管理總結

    一、Linux內存管理概述 Linux內存管理是指對系統內存
    的頭像 發表于 11-10 14:58 ?525次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>內存</b><b class='flag-5'>管理</b>總結
    主站蜘蛛池模板: 亚洲欧美日本国产在线观18| 玩两个少妇女邻居| 蜜臀久久99精品久久久久久做爰 | 国产亚洲精品线观看不卡| 果冻传媒在线播放 免费观看| 久久久无码AV精品亚洲A片软件| 亲胸吻胸添奶头GIF动态图免费| 天堂岛www天堂资源在线| 亚洲AV午夜福利精品香蕉麻豆| 97在线视频免费人妻| 俄罗斯xxxxxbbbbb| 国产美熟女乱又伦AV| 久久黄色免费网站| 青柠在线观看免费完整版| 亚洲欧美强伦一区二区另类| 99热久久视频只有精品6国产| 超碰免费视频公开97| 精品日产1区2卡三卡麻豆| 女教师公车痴汉在线播放| 亚洲AV日韩AV欧美在线观看网| 91久久精一区二区三区大全| 儿子操妈妈视频| 米奇在线8888在线精品视频| 色中色辩论区| 亚洲中文字幕欧美自拍一区 | 超碰97人在线视频| 精品国产乱码久久久久久夜深人妻 | 把英语老师强奷到舒服动态图 | 热综合一本伊人久久精品| 亚洲AV无码影院在线播放| 99青草青草久热精品视频| 国语自产一区第二页| 三叶草未满十八岁| 999精品免费视频| 久久aa毛片免费播放嗯啊| 神马影院午夜伦理限级| 99久久综合精品免费| 久久久精品日本一区二区三区| 午夜性爽视频男人的天堂在线| xhameter中国| 免费黄色网址在线观看|