Linux下檢視記憶體

2021-06-17 16:34:31 字數 1622 閱讀 9293

前言:在linux上不像在windows上看記憶體那樣方便,而且還有swap這個新的概念,所以知道如何來看linux記憶體還是有一定意義的.

在linux下檢視記憶體我們一般用command free

[root@nonamelinux ~]# free

total used free shared buffers cached

mem: 386024 377116 8908 0 21280 155468

-/+ buffers/cache: 200368 185656

swap: 393552 0 393552

下面是對這些數值的解釋:

第二行(mem):

total:總計物理記憶體的大小。

used:已使用多大。

free:可用有多少。

shared:多個程序共享的記憶體總額。

buffers/cached:磁碟快取的大小。

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

第四行就不多解釋了。

區別:第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別。

第三行所指的是從應用程式角度來看,對於應用程式來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高檔案讀取的效能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被**。

所以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached.

如上例:

185656=8908+21280+155468

接下來解釋什麼時候記憶體會被交換,以及按什麼方交換。

當可用記憶體少於額定值的時候,就會開會進行交換.

如何看額定值(rhel4.0):

#cat /proc/meminfo

交換將通過三個途徑來減少系統中使用的物理頁面的個數: 

1.減少緩衝與頁面cache的大小,

2.將系統v型別的記憶體頁面交換出去, 

事實上,少量地使用swap是不是影響到系統效能的。

下面是buffers與cached的區別。

buffers是指用來給塊裝置做的緩衝大小,他只記錄檔案系統的metadata以及 tracking in-flight pages.

cached是用來給檔案做緩衝。

那就是說:buffers是用來儲存,目錄裡面有什麼內容,許可權等等。

而cached直接用來記憶我們開啟的檔案,如果你想知道他是不是真的生效,你可以試一下,先後執行兩次命令#man x ,你就可以明顯的感覺到第二次的開打的速度快很多。

實驗:在一台沒有什麼應用的機器上做會看得比較明顯。記得實驗只能做一次,如果想多做請換乙個檔名。

#free

#man x

#free

#man x

#free

你可以先後比較一下free後顯示buffers的大小。

另乙個實驗:

#free

#ls /dev

#free

你比較一下兩個的大小,當然這個buffers隨時都在增加,但你有ls過的話,增加的速度會變得快,這個就是buffers/chached的區別。

Linux下檢視記憶體資訊

在linux下檢視記憶體我們一般用free命令 root scs 2 tmp free total used free shared buffers cached mem 3266180 3250004 16176 0 110652 2668236 buffers cache 471116 2795...

linux下的記憶體檢視

下面是自己的一些嘗試。首先是top命令 其中,virt是程序1虛擬記憶體 virt 的大小 實際需要的記憶體容量?為48428kb 約50mb 實際占用的記憶體 res,resident的縮寫 為5612kb 約5mb 共享記憶體 shr 為3720kb 約3mb 然後再看一下ps命令 ps u p...

Linux下檢視程式記憶體占用

使用ps命令檢視記憶體是不準確的,因為其返回的是乙個程序所用的所有空間,而由於linux的共享記憶體機制,乙個資源可能並非乙個程式所獨佔。詳見 使用pmap命令。usage pmap options pid pid options x,extended show details x show eve...