Linux 內存中VSS、RSS、PSS、USS 介紹

參考:linux中top命令 VSS,RSS,PSS,USS 四個內存字段的解讀linux

當咱們在使用 Linux 機器時,有時候須要查看機器內存的使用狀況,在列出來的數據列中有這麼幾列數據是須要咱們關注的,這有助於咱們查看進程的內存使用狀況頗有幫助。ide

VSS(Virtual Set Size)
是進程向系統申請的虛擬內存(包含共享庫內存總數),即單個進程所有可訪問的地址空間,其大小可能包括還還沒有在內存中駐留的部分。
RSS(Resident Set Size)

是進程在 RAM 中實際保存的總內存(包含共享庫佔用的共享內存總數)。spa

即單個進程實際佔用內存大小,RSS 可能會產生誤導,由於包含了共享庫佔用的共享內存總數。然而實際上一個共享庫僅會被加載到內存中一次,不管被多少個進程使用。.net

因此,RSS 不能準確的表示單個進程的內存佔用狀況。blog

PSS(Proportional Set Size)

是單個進程運行時實際佔用的物理內存(包含比例分配共享庫佔用的內存)。進程

對比 RSS 來講,PSS 中的共享庫內存是按照比例計算的。一個共享庫有 N 個進程使用,那麼該庫比例分配給 PSS 的大小爲:1/N;內存

PSS 明確的表示了單個進程在系統總內存中的實際使用量。get

USS(Unique Set Size)

是進程實際獨自佔用的物理內存(不包含共享庫佔用的內存)。USS 揭示了單個進程運行中真實的內存增量大小。若是單個進程終止,USS 就是實際返還給系統的內存大小。it

當懷疑某個進程中內存泄漏時,能夠查看 USS 的數值。io

大小狀況
VSS >= RSS >= PSS >= USS
詳情圖

VSS-RSS-PSS-USS.png

相關文章
相關標籤/搜索