歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux內存管理-free學習心得

Linux內存管理-free學習心得

日期:2017/2/28 14:22:36   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved