首頁 > 軟體

Linux記憶體管理-free學習心得

2020-06-16 18:08:12

free命令可以顯示Linux系統中空閒的、已用的實體記憶體及swap記憶體,及被核心使用的buffer。在Linux系統監控的工具中,free命令是最經常使用的命令之一。下面給出一個free命令的例子:

1 [root@linuxidc ~]# free
2              total       used       free     shared    buffers     cached
3 Mem:       8062392    2092832    5969560          0     187132    1498832
4 -/+ buffers/cache:     406868    7655524
5 Swap:      2097148          0    2097148

  下面介紹一下這個命令的輸出結果資訊:

  第一行:顯示了記憶體的詳細資訊,比如說總記憶體、已用的記憶體、空閒的記憶體、多個進程共用的記憶體、用於緩衝區的記憶體以及用於快取的記憶體。

  第二行:顯示了總的緩衝區記憶體/快取的記憶體使用以及空閒的情況。使用的是第二行used總記憶體(2092832)-used緩衝區記憶體(187132)-used快取區記憶體(1498832)=406868.空閒的是total的(8062392)-used的快取/緩衝區記憶體(406868)=7655524.

  第三行:顯示了總的交換區總記憶體、已用的以及空閒的記憶體。交換區的就是在HDD上建立的用來增加虛擬的增加記憶體大小的虛擬記憶體。那麼問題來了:

緩衝區和快取有什麼區別呢?

  緩衝區是針對特定的應用臨時儲存資料的地方,而且這些資料不能被其它應用使用。這和頻寬的概念比較相似。當你嘗試通過網路來傳輸突發性的資料時,如果你的網絡卡只能傳送少量的資料時,它能把這些大量的資料存在緩衝區中,以便它能以較低的網絡卡能接受的速度來傳送這些資料。在另一方面,快取是為了更快的存取而儲存一些被頻繁使用的資料的東西。其它的不同就是快取能被多次使用而緩衝區只能被用一次。但是它們都為你的資料處理提供一個臨時儲存。下面舉些栗子來說下使用方法。

free命令使用的栗子

  1.以兆位元組為單位顯示記憶體(常用)

  這個是很好記的,就是-m:

1 [root@linuxidc ~]# free -m
2              total       used       free     shared    buffers     cached
3 Mem:          7873       2043       5829          0        182       1463
4 -/+ buffers/cache:        397       7476
5 Swap:         2047          0       2047

  2.還有以位元組、千位元組、千兆為單位顯示記憶體(不常用)

  使用-b、-k、-g引數,即可以位元組、千位元組、千兆位元組為單位顯示記憶體的大小:

1 [root@linuxidc ~]# free -b
2              total       used       free     shared    buffers     cached
3 Mem:    8255889408 2142736384 6113153024          0  191623168 1534803968
4 -/+ buffers/cache:  416309248 7839580160
5 Swap:   2147479552          0 2147479552

  3.顯示總計使用情況

  使用-t引數,將會多一行total用於顯示總的使用量:

1 [root@linuxidc ~]# free -t
2              total       used       free     shared    buffers     cached
3 Mem:       8062392    2092516    5969876          0     187132    1498832
4 -/+ buffers/cache:     406552    7655840
5 Swap:      2097148          0    2097148
6 Total:    10159540    2092516    8067024

  4.關閉顯示緩衝區那一行

  使用-o引數,即可關閉第二行的顯示:

1 [root@linuxidc ~]# free -o
2              total       used       free     shared    buffers     cached
3 Mem:       8062392    2092764    5969628          0     187132    1498832
4 Swap:      2097148          0    2097148

  5.以一個固定的時間間隔更新當前記憶體使用情況

  加上-s引數,然後在-s引數後加上一個整數便會在定期的時間間隔中更新記憶體的使用情況,下面我將舉個栗子,湊個整數吧,在1024s內更新一次:

1 [root@linuxidc ~]# free -o
2              total       used       free     shared    buffers     cached
3 Mem:       8062392    2092764    5969628          0     187132    1498832
4 Swap:      2097148          0    2097148

  6.額外顯示低以及高的記憶體的統計資料

  使用-l引數額外顯示低以及高的記憶體大小統計資料:

 
1 [root@linuxidc ~]# free -l
2              total       used       free     shared    buffers     cached
3 Mem:       8062392    2092516    5969876          0     187132    1498832
4 Low:       8062392    2092516    5969876
5 High:            0          0          0
6 -/+ buffers/cache:     406552    7655840
7 Swap:      2097148          0    2097148
 

  7.檢視free命令的版本

  使用-V引數顯示版本資訊:

1 [root@linuxidc ~]# free -V
2 procps version 3.2.8

  以上。

Linux記憶體管理-free命令  http://www.linuxidc.com/Linux/2013-08/88289.htm


IT145.com E-mail:sddin#qq.com