日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Vmstat命令中活躍內(nèi)存和非活躍內(nèi)存

vmstat -a 命令能看到active memory 和 inactive memory:

創(chuàng)新互聯(lián)建站專注于容縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。容縣網(wǎng)站建設(shè)公司,為容縣等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

但它們的含義在manpage中只給了簡單的說明,并未詳細(xì)解釋:

inact: the amount of inactive memory. (-a option)active: the amount of active memory. (-a option)

在此我們試圖準(zhǔn)確理解它的含義。通過閱讀vmstat的源代碼(vmstat.c和proc/sysinfo.c)得知,vmstat命令是直接從/proc/meminfo中獲取的數(shù)據(jù):

而/proc/meminfo的數(shù)據(jù)是在以下內(nèi)核函數(shù)中生成的:

這段代碼的意思是統(tǒng)計(jì)所有的LRU list,其中Active Memory等于ACTIVE_ANON與ACTIVE_FILE之和,Inactive Memory等于INACTIVE_ANON與INACTIVE_FILE之和。

LRU list是Linux kernel的內(nèi)存頁面回收算法(Page Frame Reclaiming Algorithm)所使用的數(shù)據(jù)結(jié)構(gòu),LRU是Least Recently Used的縮寫詞。這個(gè)算法的核心思想是:回收的頁面應(yīng)該是最近使用得最少的,為了實(shí)現(xiàn)這個(gè)目標(biāo),最理想的情況是每個(gè)頁面都有一個(gè)年齡項(xiàng),用于記錄最近一次訪問頁面的時(shí)間,可惜x86 CPU硬件并不支持這個(gè)特性,x86 CPU只能做到在訪問頁面時(shí)設(shè)置一個(gè)標(biāo)志位Access Bit,無法記錄時(shí)間,所以Linux Kernel使用了一個(gè)折衷的方法:它采用了LRU list列表,把剛訪問過的頁面放在列首,越接近列尾的就是越長時(shí)間未訪問過的頁面,這樣,雖然不能記錄訪問時(shí)間,但利用頁面在LRU list中的相對位置也可以輕松找到年齡最長的頁面。Linux kernel設(shè)計(jì)了兩種LRU list: active list 和 inactive list, 剛訪問過的頁面放進(jìn)active list,長時(shí)間未訪問過的頁面放進(jìn)inactive list,這樣從inactive list回收頁面就變得簡單了。內(nèi)核線程kswapd會周期性地把a(bǔ)ctive list中符合條件的頁面移到inactive list中,這項(xiàng)轉(zhuǎn)移工作是由refill_inactive_zone()完成的。

LRU list 示意圖

vmstat看到的active/inactive memory就分別是active list和inactive list中的內(nèi)存大小。如果inactive list很大,表明在必要時(shí)可以回收的頁面很多;而如果inactive list很小,說明可以回收的頁面不多。

Active/inactive memory是針對用戶進(jìn)程所占用的內(nèi)存而言的,內(nèi)核占用的內(nèi)存(包括slab)不在其中。

至于在源代碼中看到的ACTIVE_ANON和ACTIVE_FILE,分別表示anonymous pages和file-backed pages。用戶進(jìn)程的內(nèi)存頁分為兩種:與文件關(guān)聯(lián)的內(nèi)存(比如程序文件、數(shù)據(jù)文件所對應(yīng)的內(nèi)存頁)和與文件無關(guān)的內(nèi)存(比如進(jìn)程的堆棧,用malloc申請的內(nèi)存),前者稱為file-backed pages,后者稱為anonymous pages。File-backed pages在發(fā)生換頁(page-in或page-out)時(shí),是從它對應(yīng)的文件讀入或?qū)懗觯籥nonymous pages在發(fā)生換頁時(shí),是對交換區(qū)進(jìn)行讀/寫操作。


分享名稱:Vmstat命令中活躍內(nèi)存和非活躍內(nèi)存
轉(zhuǎn)載來于:http://m.5511xx.com/article/cdpdjph.html