linux下VIRT,RES,SHR的含義(轉(zhuǎn))
如題的三個字段雖說在man top下面都有解釋,但感覺有些含糊,看后難以理解它們對進程資源占用的具體情況是如何的。查閱資料后,歸納一下。
VIRT:
1、進程“需要的”虛擬內(nèi)存大小,包括進程使用的庫、代碼、數(shù)據(jù)等
2、假如進程申請100m的內(nèi)存,但實際只使用了10m,那么它會增長100m,而不是實際的使用量
RES:
1、進程當(dāng)前使用的內(nèi)存大小,但不包括swap out
2、包含其他進程的共享
3、如果申請100m的內(nèi)存,實際使用10m,它只增長10m,與VIRT相反
4、關(guān)于庫占用內(nèi)存的情況,它只統(tǒng)計加載的庫文件所占內(nèi)存大小
SHR:
1、除了自身進程的共享內(nèi)存,也包括其他進程的共享內(nèi)存
2、雖然進程只使用了幾個共享庫的函數(shù),但它包含了整個共享庫的大小
3、計算某個進程所占的物理內(nèi)存大小公式:RES – SHR
4、swap out后,它將會降下來