linux中rss是什么

linux中,rss全稱“Resident Set Size”,是指常駐內(nèi)存集,表示相應(yīng)進程在RAM中占用實際物理內(nèi)存的大小,并不包含在SWAP中占用的虛擬內(nèi)存。RSS不包括進入交換分區(qū)的內(nèi)存,但包括共享庫占用的內(nèi)存(只要共享庫在內(nèi)存中)。

linux中rss是什么

本教程操作環(huán)境:CentOS 6系統(tǒng)、Dell G3電腦。

Linux內(nèi)存管理中不管是top命令還是ps命令,都會有RSS和VSZ這兩個名詞。例:

[root@localhost?~]#?ps?aux #查看系統(tǒng)中所有的進程 USER?PID?%CPU?%MEM??VSZ??RSS???TTY?STAT?START?TIME?COMMAND root???1??0.0??0.2?2872?1416???????Ss???Jun04?0:02?/sbin/init root???2??0.0??0.0????0????0????????S???Jun04?0:00?[kthreadd] root???3??0.0??0.0????0????0????????S???Jun04?0:00?[migration/0] root???4??0.0??0.0????0????0????????S???Jun04?0:00?[ksoftirqd/0] …省略部分輸出…

這里帶大家了解一下RSS和VSZ。

linux RSS

RSS 是常駐內(nèi)存集(Resident Set Size),表示相應(yīng)進程在RAM中占用實際物理內(nèi)存的大小,并不包含在SWAP中占用的虛擬內(nèi)存。即使是在內(nèi)存中的使用了共享庫的內(nèi)存大小也一并計算在內(nèi),包含了完整的在stack和heap中的內(nèi)存。

  • RSS 不包括進入交換分區(qū)的內(nèi)存。

  • RSS 包括共享庫占用的內(nèi)存(只要共享庫在內(nèi)存中)

  • RSS 包括所有分配的棧內(nèi)存和堆內(nèi)存。

linux?VSZ

VSZ (Virtual Memory Size),表明是虛擬內(nèi)存大小,表明了該進程可以訪問的所有內(nèi)存,包括被交換的內(nèi)存和共享庫內(nèi)存。

VSZ 包括進程可以訪問的所有內(nèi)存,包括進入交換分區(qū)的內(nèi)容,以及共享庫占用的內(nèi)存。

示例:

如果進程A的二進制文件大小為500KB,并且鏈接到了2500KB的共享庫,有200KB的stack/heap大小,這200KB中又有100KB位于內(nèi)存中,100KB位于SWAP空間中,并且加載了1000KB的共享庫和400KB的自身二進制文件。則

RSS:?

400K?+?1000K?+?100K?=?1500K

VSZ

500K?+?2500K?+?200K?=?3200K

RSS 中有一部分來自共享庫,而共享庫可能被許多進程使用,所以如果把所有進程的 RSS 加起來,可能比系統(tǒng)內(nèi)存還要大。

有一個較新的參數(shù) PSS (proportional set size),它對于共享內(nèi)存的計算與 RSS 不同。參考前面的例子,如果有兩個進程使用同一個共享庫,那么:

PSS:?

400K + (1000K/2) + 100K = 400K + 500K + 100K = 1000K

線程共享同一個地址空間,所以一個進程內(nèi)部的所有線程有相同的 RSS, VSZ 和 PSS。可使用 ps 或者 top 命令觀察這些信息。

相關(guān)推薦:《Linux視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊5 分享