日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cat /proc/meminfo 各字段详解

發布時間:2024/10/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cat /proc/meminfo 各字段详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、cat /proc/meminfo 各字段詳解

/ $ cat /proc/meminfo MemTotal: 877368 kB :所有可用RAM大小(即物理內存減去一些預留位和內核的二進制代碼大小)(HighTotal + LowTotal),系統從加電開始到引導完成,BIOS等要保留一些內存,內核要保留一些內存,最后剩下可供系統支配的內存就是MemTotal。這個值在系統運行期間一般是固定不變的。 MemFree: 22516 kB :LowFree與HighFree的總和,被系統留著未使用的內存,MemFree是說的系統層面 MemAvailable: 470244 kB :應用程序可用內存數。系統中有些內存雖然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以MemFree不能代表全部可用的內存,這部分可回收的內存加上MemFree才是系統可用的內存,即:MemAvailable≈MemFree+Buffers+Cached,它是內核使用特定的算法計算出來的,是一個估計,MemAvailable是說的應用程序層面 Buffers: 1772 kB :用來給文件做緩沖大小 Cached: 459224 kB :被高速緩沖存儲器(cache memory)用的內存的大小(等于 diskcache minus SwapCache ) SwapCached: 16 kB :被高速緩沖存儲器(cache memory)用的交換空間的大小,已經被交換出來的內存,但仍然被存放在swapfile中。用來在需要的時候很快的被替換而不需要再次打開I/O端口 Active: 333148 kB :在活躍使用中的緩沖或高速緩沖存儲器頁面文件的大小,除非非常必要否則不會被移作他用. (Active(anon) + Active(file)) Inactive: 330384 kB :在不經常使用中的緩沖或高速緩沖存儲器頁面文件的大小,可能被用于其他途徑. (Inactive(anon) + Inactive(file)) Active(anon): 104368 kB :活躍的與文件無關的內存(比如進程的堆棧,用malloc申請的內存)(anonymous pages),anonymous pages在發生換頁時,是對交換區進行讀/寫操作 Inactive(anon): 104508 kB :非活躍的與文件無關的內存(比如進程的堆棧,用malloc申請的內存) Active(file): 228780 kB :活躍的與文件關聯的內存(比如程序文件、數據文件所對應的內存頁)(file-backed pages) File-backed pages在發生換頁(page-in或page-out)時,是從它對應的文件讀入或寫出 Inactive(file): 225876 kB :非活躍的與文件關聯的內存(比如程序文件、數據文件所對應的內存頁) Unevictable: 6708 kB : Mlocked: 1428 kB : HighTotal: 261888 kB :高位內存總大小(Highmem是指所有內存高于860MB的物理內存,Highmem區域供用戶程序使用,或用于頁面緩存。該區域不是直接映射到內核空間。內核必須使用不同的手法使用該段內存) HighFree: 5680 kB :未被使用的高位內存大小 LowTotal: 615480 kB :低位內存總大小,低位可以達到高位內存一樣的作用,而且它還能夠被內核用來記錄一些自己的數據結構 LowFree: 16836 kB :未被使用的低位大小 SwapTotal: 614396 kB :交換空間的總大小 SwapFree: 611044 kB :未被使用交換空間的大小 Dirty: 40 kB :等待被寫回到磁盤的內存大小 Writeback: 0 kB :正在被寫回到磁盤的內存大小 AnonPages: 209224 kB :未映射頁的內存大小 Mapped: 280668 kB :設備和文件等映射的大小 Shmem: 1084 kB : Slab: 59840 kB :內核數據結構緩存的大小,可以減少申請和釋放內存帶來的消耗 SReclaimable: 34196 kB :可收回Slab的大小 SUnreclaim: 25644 kB :不可收回Slab的大小(SUnreclaim+SReclaimable=Slab) KernelStack: 7504 kB :常駐內存,每一個用戶線程都會分配一個kernel stack(內核棧) PageTables: 15508 kB :管理內存分頁頁面的索引表的大小 NFS_Unstable: 0 kB :不穩定頁表的大小 Bounce: 0 kB : WritebackTmp: 0 kB : CommitLimit: 1053080 kB :根據超額分配比率('vm.overcommit_ratio'),這是當前在系統上分配可用的內存總量,這個限制只是在模式2('vm.overcommit_memory')時啟用。CommitLimit用以下公式計算:CommitLimit =('vm.overcommit_ratio'*物理內存)+交換例如,在具有1G物理RAM和7G swap的系統上,當`vm.overcommit_ratio` = 30時 CommitLimit =7.3G Committed_AS: 16368536 kB :目前在系統上分配的內存量。是所有進程申請的內存的總和,即時所有申請的內存沒有被完全使用,例如一個進程申請了1G內存,僅僅使用了300M,但是這1G內存的申請已經被 "committed"給了VM虛擬機,進程可以在任何時間使用。如果限制在模式2('vm.overcommit_memory')時啟用,分配超出CommitLimit內存將不被允許 VmallocTotal: 245760 kB :可以vmalloc虛擬內存大小 VmallocUsed: 0 kB :vmalloc已使用的虛擬內存大小 VmallocChunk: 0 kB :最大的連續未被使用的vmalloc區域

1、Inactive(anon) 和 Inactive(file),分別表示anonymous pages和mapped pages。

用戶進程的內存頁分為兩種:與文件關聯的內存(比如程序文件、數據文件所對應的內存頁)和與文件無關的內存(比如進程的堆棧,用malloc申請的內存),前者稱為file pages或mapped pages,后者稱為anonymous pages;其中LRU lists包括如下幾種,在/proc/meminfo中都有對應的統計值:

  LRU_INACTIVE_ANON ?– ?對應 Inactive(anon)
  LRU_ACTIVE_ANON ?– ?對應 Active(anon)
  LRU_INACTIVE_FILE ?– ?對應 Inactive(file)
  LRU_ACTIVE_FILE ?– ?對應 Active(file)
  LRU_UNEVICTABLE ?– ?對應?Unevictable

Inactive list里的是長時間未被訪問過的內存頁,Active list里的是最近被訪問過的內存頁,LRU算法利用Inactive list和Active list可以判斷哪些內存頁可以被優先回收。

2、MemAvailable

應用程序可用內存數。系統中有些內存雖然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以MemFree不能代表全部可用的內存,這部分可回收的內存加上MemFree才是系統可用的內存,即:MemAvailable≈MemFree+Buffers+Cached,它是內核使用特定的算法計算出來的,是一個估計值。

3、VmallocUsed

通過vmalloc分配的內存都統計在/proc/meminfo的 VmallocUsed 值中,但是要注意這個值不止包括了分配的物理內存,還統計了VM_IOREMAP、VM_MAP等操作的值,譬如VM_IOREMAP是把IO地址映射到內核空間、并未消耗物理內存,所以我們要把它們排除在外。從物理內存分配的角度,我們只關心VM_ALLOC操作,這可以從/proc/vmallocinfo中的vmalloc記錄看到。

4、KernelStack:

Kernel stack(內核棧)是常駐內存的,既不包括在LRU lists里,也不包括在進程的RSS/PSS內存里,所以我們認為它是kernel消耗的內存。統計值是/proc/meminfo的KernelStack。64bit 系統的 task_struct size 是16KB, ?32bit的系統task_struct size為 8KB,每一個用戶線程都會分配一個kernel stack(內核棧),內核棧雖然屬于線程,但用戶態的代碼不能訪問,只有通過系統調用(syscall)、自陷(trap)或異常(exception)進入內核態的時候才會用到,也就是說內核棧是給kernel code使用的。
?

內存黑洞:

進程通過將memoryinfo中的內存大小相加起來,發現總是比真實內存小,那是因為有內存黑洞的存在,我們知道,Kernel的動態內存分配通過以下幾種接口:

alloc_pages/__get_free_page: 以頁為單位分配

vmalloc: 以字節為單位分配虛擬地址連續的內存塊

slab allocator

vmalloc和slab分配的內存都會被記錄在meminfo中,但通過alloc_pages/__get_free_page分配的內存,沒有在/proc/meminfo中統計,不知道有多少,就像個黑洞。

參考博客《android cat /proc/meminfo 字段分析》

總結

以上是生活随笔為你收集整理的cat /proc/meminfo 各字段详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一区二区三区免费视频 | 国产精品久久久久久久久久久新郎 | 精品久久久中文字幕 | 国产精品极品白嫩在线 | 天堂av最新网址 | 最近日韩中文字幕 | 亚洲色图第一页 | 欧美三级在线看 | 三年中文在线观看免费观看 | 最好看的mv中文字幕国语电影 | 超碰在线看 | 床戏高潮做进去大尺度视频 | 女人做爰全过程免费观看美女 | av字幕网| 欧洲性生活片 | 韩国av一区二区三区 | a√在线观看 | 中文字幕亚洲日本 | 免费观看污网站 | 精品国产乱码久久久久久蜜臀 | 欧美黑人欧美精品刺激 | 一个人看的www日本高清视频 | 精品亚洲一区二区三区 | 欧美精品久久久久久久久 | jzzjzzjzz亚洲成熟少妇 | 中文字幕女同 | 黄色网免费观看 | 国产裸体网站 | 国产人人爽 | 欧美一区二区三区免费观看 | 青草视频免费在线观看 | 国产精品黄色片 | 九月婷婷 | 131mm少妇做爰视频 | 粗大的内捧猛烈进出在线视频 | 日本变态折磨凌虐bdsm在线 | 人人九九| 2025国产精品| 午夜视频在线免费观看 | 亚洲精品国产一区二区 | 色欧美亚洲 | 艹男人的日日夜夜 | 夜色视频网站 | 男女视频在线观看免费 | 中文字幕一区二区三区四区五区 | 制服丝袜av在线播放 | 91国模 | 一区二区日韩 | 欧美日本一区 | 午夜aaa片一区二区专区 | 精品久久久久久久久久久久 | www.xxx日韩| 国产精品视频导航 | 亚洲男人天堂网站 | 精品一区二区av | 成av人在线观看 | 99久久精品国产成人一区二区 | 亚洲风情av| 九九在线精品 | 小泽玛利亚一区二区三区视频 | 欧美一级特黄aaaaaa大片在线观看 | 日本一区二区三区在线看 | 亚洲无码精品一区二区三区 | av不卡一区二区 | 亚洲中文字幕97久久精品少妇 | 丰满人妻一区二区三区免费视频棣 | 国内精品一区二区 | 99久久精品免费看国产 | 国内自拍在线观看 | 亚洲欧美日韩在线看 | 国产欧美日韩综合精品一区二区 | 亚洲天堂性 | 毛片av网址 | 色撸撸在线 | 亚洲第一视频在线播放 | 在线观看成人一区 | 成人免费毛片高清视频 | 91av在线免费观看 | 91亚洲国产成人精品一区 | 欧美你懂的 | 国产午夜电影在线观看 | 亚洲特黄| 精品国产亚洲一区二区麻豆 | 环太平洋3:泰坦崛起 | 国产成人av免费看 | 大象传媒成人在线观看 | 超碰最新上传 | 女人的天堂网站 | 中国挤奶哺乳午夜片 | 欧美一区二区三区免费观看 | 精品久久无码中文字幕 | 黄色香蕉网 | 色小说综合 | 国产视频播放 | 91中文字日产乱幕4区 | 国产精品美女久久久久图片 | 免费麻豆国产一区二区三区四区 | 丝袜一区二区三区四区 | 国产精品呦呦 |