Linux 內(nèi)存占用分析

linux 下面查看內(nèi)存有多種渠道,比如通過命令 ps ,top,free, pmap 等,或者通過/proc系統(tǒng)。一般情況下,ps,top,pmap,free可以滿足要求,如果需要比較詳細(xì)和精確地知道整機(jī)內(nèi)存或者某個(gè)進(jìn)程內(nèi)存的使用情況,可以通過/proc 系統(tǒng)。

使用命令

free?: 顯示系統(tǒng)可用內(nèi)存以及已經(jīng)使用的內(nèi)存的信息

ps:?查看進(jìn)程信息,靜態(tài),即當(dāng)前狀態(tài)

top:?查看進(jìn)程信息,動態(tài)

pstree:?查看進(jìn)程樹

pmap:?根據(jù)進(jìn)程ID查看進(jìn)程信息

ps命令–提供系統(tǒng)過去信息的一次性快照,也就是說ps命令能夠查看剛剛系統(tǒng)的進(jìn)程信息。

top命令反應(yīng)的是系統(tǒng)進(jìn)程動態(tài)信息,默認(rèn)10s更新一次。

ps和top都是從/proc目錄下讀取進(jìn)程的狀態(tài)信息,內(nèi)核把當(dāng)前系統(tǒng)進(jìn)程的各種有用信息都放在這個(gè)偽目錄下。

VSZ & VIRT

進(jìn)程使用的虛擬內(nèi)存值總量,包括所有代碼,數(shù)據(jù),共享庫已經(jīng)被swapped out的。VIRT = SWAP + RES。

VSZ來自ps命令, VIRT來自top命令,二者均表示進(jìn)程占用的虛擬內(nèi)存大小。

假如進(jìn)程申請100m的內(nèi)存,但實(shí)際只使用了10m,那么它會增長100m,而不是實(shí)際的使用量

RES & RSS

進(jìn)程當(dāng)前使用的內(nèi)存大小,但不包括swap out. RES = CODE +DATA。

包含其他進(jìn)程的共享

RES 來自?top?命令, RSS 來自?ps?命令,兩者在表示意義上沒有區(qū)別,都是從?/cat/proc/[pid]/stat?文件中讀取的信息。

ps -o comm,rss 獲取說有進(jìn)程的rss占用大小

如果申請100m的內(nèi)存,實(shí)際使用10m,它只增長10m,與VIRT相反

關(guān)于庫占用內(nèi)存的情況,它只統(tǒng)計(jì)加載的庫文件所占內(nèi)存大小

CODE

可執(zhí)行代碼占用的物理內(nèi)存大小

DATA

物理內(nèi)存中存放數(shù)據(jù)的大小,在程序運(yùn)行中需要用到

如果top命令沒有顯示, 按f鍵顯示

SHR

共享內(nèi)存大小

除了自身進(jìn)程的共享內(nèi)存,也包含其他進(jìn)程的共享內(nèi)存

計(jì)算某個(gè)進(jìn)程所占用物理內(nèi)存的大小: RES - SHR

swap out后,該值會下降

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容