您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“linux中rss的概念是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“linux中rss的概念是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
linux中,rss全稱“Resident Set Size”,是指常駐內存集,表示相應進程在RAM中占用實際物理內存的大小,并不包含在SWAP中占用的虛擬內存。RSS不包括進入交換分區的內存,但包括共享庫占用的內存(只要共享庫在內存中)。
本教程操作環境:CentOS 6系統、Dell G3電腦。
Linux內存管理中不管是top命令還是ps命令,都會有RSS和VSZ這兩個名詞。例:
[root@localhost ~]# ps aux #查看系統中所有的進程 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 是常駐內存集(Resident Set Size),表示相應進程在RAM中占用實際物理內存的大小,并不包含在SWAP中占用的虛擬內存。即使是在內存中的使用了共享庫的內存大小也一并計算在內,包含了完整的在stack和heap中的內存。
RSS 不包括進入交換分區的內存。
RSS 包括共享庫占用的內存(只要共享庫在內存中)
RSS 包括所有分配的棧內存和堆內存。
linux VSZ
VSZ (Virtual Memory Size),表明是虛擬內存大小,表明了該進程可以訪問的所有內存,包括被交換的內存和共享庫內存。
VSZ 包括進程可以訪問的所有內存,包括進入交換分區的內容,以及共享庫占用的內存。
示例:
如果進程A的二進制文件大小為500KB,并且鏈接到了2500KB的共享庫,有200KB的stack/heap大小,這200KB中又有100KB位于內存中,100KB位于SWAP空間中,并且加載了1000KB的共享庫和400KB的自身二進制文件。則
RSS:
400K + 1000K + 100K = 1500K
VSZ
500K + 2500K + 200K = 3200K
RSS 中有一部分來自共享庫,而共享庫可能被許多進程使用,所以如果把所有進程的 RSS 加起來,可能比系統內存還要大。
有一個較新的參數 PSS (proportional set size),它對于共享內存的計算與 RSS 不同。參考前面的例子,如果有兩個進程使用同一個共享庫,那么:
PSS:
400K + (1000K/2) + 100K = 400K + 500K + 100K = 1000K
線程共享同一個地址空間,所以一個進程內部的所有線程有相同的 RSS, VSZ 和 PSS。可使用 ps 或者 top 命令觀察這些信息。
讀到這里,這篇“linux中rss的概念是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。