[譯] linux內(nèi)存管理之RSS和VSZ的區(qū)別

RSS是Resident Set Size(常駐內(nèi)存大小)的縮寫,用于表示進(jìn)程使用了多少內(nèi)存(RAM中的物理內(nèi)存),RSS不包含已經(jīng)被換出的內(nèi)存。RSS包含了它所鏈接的動(dòng)態(tài)庫(kù)并且被加載到物理內(nèi)存中的內(nèi)存。RSS還包含棧內(nèi)存和堆內(nèi)存。

VSZ是Virtual Memory Size(虛擬內(nèi)存大小)的縮寫。它包含了進(jìn)程所能訪問的所有內(nèi)存,包含了被換出的內(nèi)存,被分配但是還沒有被使用的內(nèi)存,以及動(dòng)態(tài)庫(kù)中的內(nèi)存。

假設(shè)進(jìn)程A的二進(jìn)制文件是500K,并且鏈接了一個(gè)2500K的動(dòng)態(tài)庫(kù),堆和棧共使用了200K,其中100K在內(nèi)存中(剩下的被換出或者不再被使用),一共加載了動(dòng)態(tài)庫(kù)中的1000K內(nèi)容以及二進(jìn)制文件中的400K內(nèi)容至內(nèi)存中,那么:

RSS: 400K + 1000K + 100K = 1500K
VSZ: 500K + 2500K + 200K = 3200K

由于部分內(nèi)存是共享的,被多個(gè)進(jìn)程使用,所以如果將所有進(jìn)程的RSS值加起來可能會(huì)大于系統(tǒng)的內(nèi)存總量。

申請(qǐng)過的內(nèi)存如果程序沒有實(shí)際使用,則可能不顯示在RSS里。比如說一個(gè)程序,預(yù)先申請(qǐng)了一大批內(nèi)存,過了一段時(shí)間才使用,你會(huì)發(fā)現(xiàn)RSS會(huì)增長(zhǎng)而VSZ保持不變。

還有一個(gè)概念是PSS,它是proportional set size(proportional是成比例的意思)的縮寫。這是一種新的度量方式。它將動(dòng)態(tài)庫(kù)所使用的內(nèi)存按比例劃分。比如我們前面例子中的動(dòng)態(tài)庫(kù)如果是被兩個(gè)進(jìn)程使用,那么:

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

一個(gè)進(jìn)程中的多個(gè)線程共享同樣的地址空間。所以一個(gè)進(jìn)程中的多個(gè)線程的RSS,VSZ,PSS是完全相同的。linux下可以使用ps或者top命令查看這些信息。

如果想了解更多,可參考下面的鏈接:

英文原文: What is RSS and VSZ in Linux memory management

原文鏈接: https://pengrl.com/p/21292/
原文出處: yoko blog (https://pengrl.com)
原文作者: yoko
版權(quán)聲明: 本文歡迎任何形式轉(zhuǎn)載,轉(zhuǎn)載時(shí)完整保留本聲明信息(包含原文鏈接、原文出處、原文作者、版權(quán)聲明)即可。本文后續(xù)所有修改都會(huì)第一時(shí)間在原始地址更新。

本篇文章由一文多發(fā)平臺(tái)ArtiPub自動(dòng)發(fā)布

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

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

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