共計 1147 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要介紹“linux 中 vsz 和 rss 有哪些區別”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“linux 中 vsz 和 rss 有哪些區別”文章能幫助大家解決問題。
linux 中 vsz 和 rss 的區別:1、rss 是“Resident Set Size”的縮寫,表示常駐內存大小,而 vsz 是“Virtual Memory Size”的縮寫,表示虛擬內存大小;2、rss 用于表示進程使用了多少內存,并且不包含已經被換出的內存,而 vsz 包含了進程所能訪問的所有內存,包括了被換出的內存。
本教程操作環境:linux7.3 系統、Dell G3 電腦。
linux 中 vsz 和 rss 有什么區別
RSS 是 Resident Set Size(常駐內存大小)的縮寫,用于表示進程使用了多少內存(RAM 中的物理內存),RSS 不包含已經被換出的內存。RSS 包含了它所鏈接的動態庫并且被加載到物理內存中的內存。RSS 還包含棧內存和堆內存。
VSZ 是 Virtual Memory Size(虛擬內存大小)的縮寫。它包含了進程所能訪問的所有內存,包含了被換出的內存,被分配但是還沒有被使用的內存,以及動態庫中的內存。
示例如下
假設進程 A 的二進制文件是 500K,并且鏈接了一個 2500K 的動態庫,堆和棧共使用了 200K,其中 100K 在內存中(剩下的被換出或者不再被使用),一共加載了動態庫中的 1000K 內容以及二進制文件中的 400K 內容至內存中,那么:
RSS: 400K + 1000K + 100K = 1500K
VSZ: 500K + 2500K + 200K = 3200K
由于部分內存是共享的,被多個進程使用,所以如果將所有進程的 RSS 值加起來可能會大于系統的內存總量。
申請過的內存如果程序沒有實際使用,則可能不顯示在 RSS 里。比如說一個程序,預先申請了一大批內存,過了一段時間才使用,你會發現 RSS 會增長而 VSZ 保持不變。
還有一個概念是 PSS,它是 proportional set size(proportional 是成比例的意思)的縮寫。這是一種新的度量方式。它將動態庫所使用的內存按比例劃分。比如我們前面例子中的動態庫如果是被兩個進程使用,那么:
PSS: 400K + (1000K/2) + 100K = 400K + 500K + 100K = 1000K
一個進程中的多個線程共享同樣的地址空間。所以一個進程中的多個線程的 RSS,VSZ,PSS 是完全相同的。linux 下可以使用 ps 或者 top 命令查看這些信息。
關于“linux 中 vsz 和 rss 有哪些區別”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。