新手看招 詳細分析Linux作業系統的記憶體

2021-06-13 11:54:49 字數 1621 閱讀 8243

前言:在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目錄詳細分析

sbin是超級使用者名稱令儲存的地方,包括reboot,shutdowd等 bin是普通使用者命令儲存,包括常用的vim,ssh等 usr bin使用者安裝程式後命令的地方,例如,自帶的ls,cat,chmod,mv,cp,tar,python,pip等 usr sbin是網路管理的必備程式,例如,...

const詳細分析

最近在分析 linux 驅動的過程過程中遇到一些關於 const 的使用,現在在這裡詳細剖析一下 一,const int p 首先分析一下幾個概念 1 p 是乙個指標變數,因而它也是乙個變數,所謂變數就有變數的位址和變數的值,而這裡 p變數的值就是乙個位址,該位址下存放的是乙個整數,p的值等於這個整...

約數詳細分析

約數詳細分析 我們先來認識一下約數 約數分正約數和負約數兩種,我們一般只討論正約數。也就是說,接下來所提的約數,只考慮正約數。如果有乙個數k,滿足k n,那麼k就是n 的約數 因數 n是k的倍數。求乙個數的約數是資訊學競賽裡乙個基礎的不能再基礎的問題。如果只求乙個數,最容易想到的就是列舉。當然列舉也...