首頁  >  文章  >  運維  >  linux中rss是什麼

linux中rss是什麼

青灯夜游
青灯夜游原創
2022-04-14 16:15:205195瀏覽

linux中,rss全名為“Resident Set Size”,是指常駐記憶體集,表示相應進程在RAM中佔用實際實體記憶體的大小,並不包含在SWAP中佔用的虛擬記憶體。 RSS不包括進入交換分區的內存,但包括共享庫佔用的內存(只要共享庫在內存中)。

linux中rss是什麼

本教學操作環境:CentOS 6系統、Dell G3電腦。

Linux記憶體管理中不管是top指令還是ps指令,都會有RSS和VSZ這兩個名詞。例:

[root@localhost ~]# ps aux
#查看系统中所有的进程
USER PID %CPU %MEM  VSZ  RSS   TTY STAT START TIME COMMAND
root   1  0.0  0.2 2872 1416   ?   Ss   Jun04 0:02 /sbin/init
root   2  0.0  0.0    0    0   ?    S   Jun04 0:00 [kthreadd]
root   3  0.0  0.0    0    0   ?    S   Jun04 0:00 [migration/0]
root   4  0.0  0.0    0    0   ?    S   Jun04 0:00 [ksoftirqd/0]
…省略部分输出…

這裡帶大家了解一下RSS和VSZ。

linux RSS

RSS 是常駐記憶體集(Resident Set Size),表示對應程序在RAM中佔用實際實體記憶體的大小,並且不包含在SWAP中佔用的虛擬記憶體。即使是記憶體中的使用了共享庫的記憶體大小也一併計算在內,包含了完整的在stack和heap中的記憶體。

  • RSS 不包含進入交換分割區的記憶體。

  • RSS 包含共享庫所佔用的記憶體(只要共享庫在記憶體中)

  • RSS 包含所有分配的堆疊記憶體和堆疊記憶體。

linux VSZ

VSZ (Virtual Memory Size),表明是虛擬記憶體大小,表明了該進程可以存取的所有內存,包括被交換的記憶體和共享庫記憶體。

VSZ 包括進程可以存取的所有內存,包括進入交換分區的內容,以及共享庫佔用的內存。

範例:

如果進程A的二進位檔案大小為500KB,並且連結到了2500KB的共享庫,有200KB的stack/heap大小,這200KB中又有100KB位於記憶體中,100KB位於SWAP空間中,並且載入了1000KB的共享庫和400KB的自身二進位。則

RSS: 

400K + 1000K + 100K = 1500K

VSZ

500K + 2500K + 200K = 3200K

RSS 中有一部分來自共享庫,而共享庫可能被許多進程使用,所以如果把所有進程的RSS 加起來,可能比系統記憶體還要大。

有一個較新的參數 PSS (proportional set size),它對於共享記憶體的計算與 RSS 不同。參考前面的例子,如果有兩個行程使用同一個共享函式庫,那麼:

PSS: 

400K (1000K/2) 100K = 400K 500K 100K = 1000K

執行緒共用同一個位址空間,所以一個行程內部的所有執行緒有相同的RSS, VSZ 和PSS。可使用 ps 或 top 指令觀察這些資訊。

相關推薦:《Linux影片教學

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

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