在linux中,vsz是指虛擬記憶體大小,代表了行程所擁有的虛擬位址空間的大小,這個位址空間可以是實際分配的實體內存,也可以是交換空間。 SZ大小通常不是一個進程正在使用多少記憶體的精確度量,而是一個進程在將其所有函數和庫裝入物理記憶體時可以使用的最大記憶體量和指示。
本教學操作環境:linux7.3系統、Dell G3電腦。
ps命令是linux系統上一個預設的命令列工具,它可以讓我們深入了解正在運行的進程。它給我們提供了關於這些進程的許多有用的信息,包括它們的PID(process ID),TTY,運行命令或運行程式的用戶,等等。
ps指令輸出中有兩列欄位沒有被太多的討論過,它們是VSZ(Virtual Memory Size)和RSS (Resident Set Size)欄位。這兩列都提供了關於進程使用多少記憶體的資訊。
VSZ和RSS列出現在ps命令行的輸出中, 如下面的截圖所示。系統上運行的每個進程的值以kb為單位。
VSZ是虛擬記憶體大小,這是linux給進程的記憶體大小,換句話說,VSZ代表了進程所擁有的虛擬位址空間的大小,這個位址空間可以是實際分配的實體內存,也可以是交換空間。但這並不一定意味著這個進程使用了所有的記憶體。例如,許多應用程式具有執行某些任務的功能,但可能在需要之前不會將它們載入到記憶體中。 Linux利用了請求分頁,它只在應用程式嘗試使用頁面時才將頁面載入到記憶體中。
您看到的VSZ大小已經考慮了所有這些頁面,但這並不意味著它們已經載入到實體記憶體中。因此,VSZ大小通常不是一個進程正在使用多少記憶體的精確度量,而是一個進程在將其所有函數和函式庫裝入物理記憶體時可以使用的最大記憶體量和指示。
RSS是駐留集合大小(Resident Set Size),這是進程目前載入其所有頁面的記憶體大小。乍一看,RSS數字似乎是系統進程使用的實際實體記憶體量。然而,每個進程的共享庫也會被計算進去,這使得報告的實體記憶體使用量不那麼準確。
這裡有一個例子。如果你的Linux系統上有兩個影像編輯程序,它們可能會使用許多相同的影像處理庫。如果你打開其中一個應用程序,必要的函式庫將會載入到RAM中。當你打開第二個應用程序,它將避免重新加載庫的副本到RAM中,並共享第一個應用程式使用的相同副本。對於這兩個應用程序,RSS列將計算共享庫的大小,儘管它只加載了一次。這意味著RSS大小通常高估了進程實際使用的物理記憶體量。
如果你試圖監視Linux系統上的記憶體使用情況,有比RSS和VSZ數字更準確的方法。這些方法對於某些目的是很方便的。
相關推薦:《Linux影片教學》
以上是linux vsz是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!