首頁  >  文章  >  運維  >  linux中vsz和rss有什麼差別

linux中vsz和rss有什麼差別

WBOY
WBOY原創
2022-07-14 16:27:035754瀏覽

linux中vsz和rss的差異:1、rss是「Resident Set Size」的縮寫,表示常駐記憶體大小,而vsz是「Virtual Memory Size」的縮寫,表示虛擬記憶體大小;2、 rss用於表示進程使用了多少內存,並且不包含已經被換出的內存,而vsz包含了進程所能訪問的所有內存,包括了被換出的內存。

linux中vsz和rss有什麼差別

本教學操作環境: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影片教學

#

以上是linux中vsz和rss有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn