• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 操作系統 > Linux教程 > linux的free命令

    linux的free命令

    時間: 佳洲1085 分享

    linux的free命令

      free命令在linux系統中主要是顯示系統使用和空閑的內存情況。下面由學習啦小編為大家整理了linux的free命令的相關知識,希望大家喜歡!

      Linux的free命令詳解

      語法

      free(選項)

      1.命令格式:

      free [參數]

      2.命令功能:

      free 命令顯示系統使用和空閑的內存情況,包括物理內存、交互區內存(swap)和內核緩沖區內存。共享內存將被忽略

      3.命令參數:

      -b  以Byte為單位顯示內存使用情況。

      -k  以KB為單位顯示內存使用情況。

      -m  以MB為單位顯示內存使用情況。

      -g 以GB為單位顯示內存使用情況。

      -o  不顯示緩沖區調節列。

      -s<間隔秒數>  持續觀察內存使用狀況。

      -t  顯示內存總和列。

      -V  顯示版本信息。

      上面是free的運行結果,一共有4行。為了方便說明,我加上了列號。這樣可以把free的輸出看成一個二維數組FO(Free Output)。例如:

      FO[2][1] = 790920 FO[3][2] = 55000

      free的輸出一共有四行,第四行為交換區的信息,分別是交換的總量(total),使用量(used)和有多少空閑的交換區(free),這個比較清楚,不說太多。

      free輸出地第二行和第三行是比較讓人迷惑的。這兩行都是說明內存使用情況的。第一列是總量(total),第二列是使用量(used),第三列是可用量(free)。

      第一行的輸出是從操作系統(OS)來看的。也就是說,從OS的角度來看,計算機上一共有:

      - 790920KB(缺省時free的單位為KB)物理內存,即FO[2][1];

      - 在這些物理內存中有93200KB(即FO[2][2])被使用了;

      - 還用697720KB(即Mem/free)是可用的;

      Men:tootal=used+free

      Mem/shared:表示被幾個進程共享的內存的,現在已經deprecated,其值總是0(當然在一些系統上也可能不是0,主要取決于free命令是怎么實現的)。

      Mem/buffers:表示被OS buffer住的內存。Mem/cached表示被OS cache的內存。在有些時候buffer和cache這兩個詞經常混用。不過在一些比較低層的軟件里是要區分這兩個詞的,看老外的洋文:

      A buffer is something that has yet to be "written" to disk. (緩沖區是一個尚未被“寫入”到磁盤的東西。)

      A cache is something that has been "read" from the disk and stored for later use.(緩存是從磁盤上被“讀”的東西,并存儲為以后使用。)

      也就是說buffer是用于存放要輸出到disk(塊設備)的數據的,而cache是存放從disk上讀出的數據。這二者是為了提高IO性能的,并由OS管理。

      Linux和其他成熟的操作系統(例如windows),為了提高IO read的性能,總是要多cache一些數據,這也就是為什么FO[2][6](cached memory)比較大,而FO[2][3]比較小的原因。我們可以做一個簡單的測試:

      1.釋放掉被系統cache占用的數據;

      echo 3>/proc/sys/vm/drop_caches

      2.讀一個大文件,并記錄時間;

      3.關閉該文件;

      4.重讀這個大文件,并記錄時間;

      第二次讀應該比第一次快很多。原來我做過一個BerkeleyDB的讀操作,大概要讀5G的文件,幾千萬條記錄。在我的環境上,第二次讀比第一次大概可以快9倍左右。

      free輸出的第二行是從一個應用程序的角度看系統內存的使用情況。

      對于FO[3][2],即-buffers/cache,表示一個應用程序認為系統被用掉多少內存;

      對于FO[3][3],即+buffers/cache,表示一個應用程序認為系統還有多少內存;

      因為被系統cache和buffer占用的內存可以被快速回收,所以通常FO[3][3]比FO[2][3]會大很多。

      這里還用兩個等式:

      FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]

      FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]

      這二者都不難理解。

      free命令由procps.*.rpm提供(在Redhat系列的OS上)。free命令的所有輸出值都是從/proc/meminfo中讀出的。

      在系統上可能有meminfo(2)這個函數,它就是為了解析/proc/meminfo的。procps這個包自己實現了meminfo()這個函數。可以下載一個procps的tar包看看具體實現,現在最新版式3.2.8。

      linux的free命令實例

      1.顯示內存使用情況

      # free //顯示內存使用信息

      total used free shared buffers cached

      Mem: 254772 184568 70204 0 5692 89892

      -/+ buffers/cache: 88984 165788

      Swap: 524280 65116 459164

      2.以總和的形式顯示內存的使用信息

      # free -t //以總和的形式查詢內存的使用信息

      total used free shared buffers cached

      Mem: 254772 184868 69904 0 5936 89908

      -/+ buffers/cache: 89024 165748

      Swap: 524280 65116 459164

      Total: 779052 249984 529068

      3.周期性的查詢內存使用信息

      # free -s 10 //每10s 執行一次命令

      total used free shared buffers cached

      Mem: 254772 187628 67144 0 6140 89964

      -/+ buffers/cache: 91524 163248

      Swap: 524280 65116 459164

      total used free shared buffers cached

      Mem: 254772 187748 67024 0 6164 89940

      -/+ buffers/cache: 91644 163128

      Swap: 524280 65116 459164

    3623130 主站蜘蛛池模板: 免费播放特黄特色毛片| 天堂中文8资源在线8| 国产偷久久久精品专区| 九位美女尿撒尿11分钟| 亚洲人成网男女大片在线播放| 欧美日韩国产精品自在自线| 在线免费观看色片| 亚洲精品无码久久| 97高清国语自产拍中国大陆| 欧美黑人疯狂性受xxxxx喷水| 大学生美女毛片免费视频| 人人爽人人爽人人片av免费| 99精品国产在热久久无毒不卡| 狠狠穞老司机的福67194| 夜天干天干啦天干天天爽| 亚洲精品福利你懂| 91国内揄拍国内精品对白| 欧美日韩国产一区二区三区在线观看| 国产精品李雅在线观看| 亚洲人成无码网站在线观看| 男女一进一出无遮挡黄| 日韩高清在线免费观看| 国产又黄又大又粗的视频| 丰满少妇高潮惨叫久久久一| 精品福利一区二区三区| 好妈妈5高清中字在线观看| 亚洲老熟女@TubeumTV| 69av免费视频| 最近中文字幕2019国语3| 国产免费的野战视频| 中文字幕不卡在线播放| 男人让女人桶爽30分钟| 国产麻豆精品免费密入口| 亚洲av无码专区在线观看成人| 国产精品三级视频| 挺进白嫩老师下面视频| 免费在线视频a| 69老湿机体验区手机| 最新中文字幕电影免费观看| 国产乱在线观看完整版视频| 一区二区在线视频免费观看|