日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux free 命令详解

發布時間:2025/3/8 linux 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux free 命令详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux free 命令詳解

free 命令用來查看系統中已用的和可用的內存。

命令選項及輸出簡介

關于各種命令的功能和命令選項,還是推薦英語比較好的同學直接看手冊 RTFM:man free。這里簡單總結一下一些重點:

功能及輸出簡介

free 命令顯示系統中可用和使用的物理內存和交換內存的總量,以及內核所使用的緩沖區 (buffers) 和緩存 (caches) 。通過解析 /proc/meminfo 收集信息。顯示的列包括:

  • total:所有的內存
  • used:使用的內存
  • free:未使用的內存
  • shared:經常被 tmpfs 使用的內存
  • buffers:內存中被內核用作緩沖區(buffers)的部分
  • cache:內存中被用作頁緩存(page cache)和 slabs 的部分
  • buff/cache:buffers 和 cache 的和
  • available:估計的無需交換即可為新啟動的應用程序所用的內存量。

注意有這樣一個等式: used = total - free - buffers - cache

參數選項

常用的選項用紅色標出來了。

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

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

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

  • -h:以合適的單位顯示內存使用情況,最大為三位數,自動計算對應的單位值。單位有:

    B = bytes, K = kilos, M = megas, G = gigas, T = teras
  • -o: 不顯示緩沖區調節列。

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

  • -t :顯示內存總和列。

  • -V: 顯示版本信息。

一般就是 free -h:

total used free shared buff/cache available Mem: 46G 38G 400M 2.3G 7.4G 4.9G Swap: 2.0G 2.0G 0B

我想只有在理解了一些基本概念之后,上面的輸出才能幫助我們了解系統的內存狀況。

關于Linux內存的一些知識

以下內容參考自博客:https://www.cnblogs.com/ultranms/p/9254160.html

buff/cache

先來提一個問題: buffer 和 cache 應該是兩種類型的內存,但是 free 命令為什么會把它們放在一起呢?要回答這個問題需要我們做些準備工作。讓我們先來搞清楚 buffer 與 cache 的含義。

buffer 在操作系統中指 buffer cache, 中文一般翻譯為 “緩沖區”。要理解緩沖區,必須明確另外兩個概念:“扇區” 和 “塊”。扇區是設備的最小尋址單元,也叫 “硬扇區” 或 “設備塊”。塊是操作系統中文件系統的最小尋址單元,也叫 “文件塊” 或 “I/O 塊”。每個塊包含一個或多個扇區,但大小不能超過一個頁面,所以一個頁可以容納一個或多個內存中的塊。當一個塊被調入內存時,它要存儲在一個緩沖區中。每個緩沖區與一個塊對應,它相當于是磁盤塊在內存中的表示(下圖來自互聯網):

注意,buffer cache 只有塊的概念而沒有文件的概念,它只是把磁盤上的塊直接搬到內存中而不關心塊中究竟存放的是什么格式的文件。

cache 在操作系統中指 page cache,中文一般翻譯為 “頁高速緩存”。頁高速緩存是內核實現的磁盤緩存。它主要用來減少對磁盤的 I/O 操作。具體地講,是通過把磁盤中的數據緩存到物理內存中,把對磁盤的訪問變為對物理內存的訪問。頁高速緩存緩存的是內存頁面。緩存中的頁來自對普通文件、塊設備文件(這個指的就是 buffer cache 呀)和內存映射文件的讀寫

頁高速緩存對普通文件的緩存我們可以這樣理解:當內核要讀一個文件(比如 /etc/hosts)時,它會先檢查這個文件的數據是不是已經在頁高速緩存中了。如果在,就放棄訪問磁盤,直接從內存中讀取。這個行為稱為緩存命中。如果數據不在緩存中,就是未命中緩存,此時內核就要調度塊 I/O 操作從磁盤去讀取數據。然后內核將讀來的數據放入頁高速緩存中。這種緩存的目標是文件系統可以識別的文件(比如 /etc/hosts)。
頁高速緩存對塊設備文件的緩存就是我們在前面介紹的 buffer cahce。因為獨立的磁盤塊通過緩沖區也被存入了頁高速緩存(緩沖區最終是由頁高速緩存來承載的)。

到這里我們應該搞清楚了:無論是緩沖區還是頁高速緩存,它們的實現方式都是一樣的。緩沖區只不過是一種概念上比較特殊的頁高速緩存罷了。
那么為什么 free 命令不直接稱為 cache 而非要寫成 buff/cache? 這是因為緩沖區和頁高速緩存的實現并非天生就是統一的。在 linux 內核 2.4 中才將它們統一。更早的內核中有兩個獨立的磁盤緩存:頁高速緩存和緩沖區高速緩存。前者緩存頁面,后者緩存緩沖區。當你知道了這些故事之后,輸出中列的名稱可能已經不再重要了。

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

free 與 available

在 free 命令的輸出中,有一個 free 列,同時還有一個 available 列。這二者到底有何區別?

free 是真正尚未被使用的物理內存數量。至于 available 就比較有意思了,它是從應用程序的角度看到的可用內存數量。Linux 內核為了提升磁盤操作的性能,會消耗一部分內存去緩存磁盤數據,就是我們介紹的 buffer 和 cache。所以對于內核來說,buffer 和 cache 都屬于已經被使用的內存。當應用程序需要內存時,如果沒有足夠的 free 內存可以用,內核就會從 buffer 和 cache 中回收內存來滿足應用程序的請求。所以從應用程序的角度來說,available = free + buffer + cache。請注意,這只是一個很理想的計算方式,實際中的數據往往有較大的誤差。

交換空間(swap space)

swap space 是磁盤上的一塊區域,可以是一個分區,也可以是一個文件。所以具體的實現可以是 swap 分區也可以是 swap 文件。當系統物理內存吃緊時,Linux 會將內存中不常訪問的數據保存到 swap 上,這樣系統就有更多的物理內存為各個進程服務,而當系統需要訪問 swap 上存儲的內容時,再將 swap 上的數據加載到內存中,這就是常說的換出和換入。交換空間可以在一定程度上緩解內存不足的情況,但是它需要讀寫磁盤數據,所以性能不是很高。

現在的機器一般都不太缺內存,如果系統默認還是使用了 swap 是不是會拖累系統的性能?理論上是的,但實際上可能性并不是很大。并且內核提供了一個叫做 swappiness 的參數,用于配置需要將內存中不常用的數據移到 swap 中去的緊迫程度。這個參數的取值范圍是 0~100,0 告訴內核盡可能的不要將內存數據移到 swap 中,也即只有在迫不得已的情況下才這么做,而 100 告訴內核只要有可能,盡量的將內存中不常訪問的數據移到 swap 中。在 ubuntu 系統中,swappiness 的默認值是 60。如果我們覺著內存充足,可以在 /etc/sysctl.conf 文件中設置 swappiness:

vm.swappiness=10

如果系統的內存不足,則需要根據物理內存的大小來設置交換空間的大小。具體的策略網上有很豐富的資料,這里筆者不再贅述。

/proc/meminfo 文件

其實 free 命令中的信息都來自于 /proc/meminfo 文件。/proc/meminfo 文件包含了更多更原始的信息,只是看起來不太直觀。

cat /proc/meminfo

輸出(輸出很長,這是一部分):

MemTotal: 49033996 kB MemFree: 381080 kB MemAvailable: 5110936 kB Buffers: 74580 kB Cached: 7273148 kB SwapCached: 591112 kB ... DirectMap1G: 0 kB

總結

free 命令是一個既簡單又復雜的命令。簡單是因為這個命令的參數少,輸出結果清晰。說它復雜則是因為它背后是比較晦澀的操作系統中的概念,如果不清楚這些概念,即便看了 free 命令的輸出也 get 不到多少有價值的信息。

Ref:

https://www.cnblogs.com/ultranms/p/9254160.html

https://blog.csdn.net/sunansheng/article/details/51942522

總結

以上是生活随笔為你收集整理的Linux free 命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本人妻一区 | 97av视频在线 | 熟女国产精品一区二区三 | 欧美视频在线观看视频 | 亚洲狼人色| www.88av| 天堂网成人 | 一区二区的视频 | 国产精品一区二区毛片 | 国产女人高潮时对白 | 久久久久成人网站 | 噼里啪啦国语高清 | 久久精品国产亚洲av成人 | 国产女主播一区 | 久久一区国产 | 天天网综合 | 欧美精品一区二区成人 | 调教女m荡骚贱淫故事 | 免费看片亚洲 | 国产内射合集颜射 | 亚洲精品系列 | 国产女主播福利 | 久久久久久99精品久久久 | 殴美一区二区 | 一道本在线视频 | 成人无码www在线看免费 | av资源吧首页 | 永久免费成人 | 亚洲色图视频在线观看 | 999久久久国产精品 韩国精品一区二区 | 成人综合激情网 | 成人激情开心 | 国产三级在线免费观看 | 丰满人妻一区二区三区免费视频 | 国产粉嫩在线观看 | 国产精品色网 | 性囗交免费视频观看 | 影音先锋亚洲一区 | 葵司在线视频 | 成人免费黄色大片 | 狂野少女电影在线观看国语版免费 | 国产亚洲精品成人av在线 | xxxx999| 秋霞影院一区二区 | 性感少妇av| 亚洲综合色婷婷 | 欧美四级在线观看 | 国产免费视频一区二区三区 | 欧亚av | 无码一区二区波多野结衣播放搜索 | 日日碰狠狠添天天爽无码av | 美景之屋电影免费高清完整韩剧 | 女生和男生一起插插插 | 在线观看三级网站 | 无码精品国产一区二区三区免费 | 国产又色又爽又黄又免费 | 午夜精品一区二区三区在线视频 | 久久精品亚洲天堂 | 国产剧情在线视频 | 黄色网址视频 | 美女打屁股网站 | 欧美视频一区二区在线 | 99在线精品视频免费观看软件 | 无码人妻精品一区二区三区在线 | 日本视频中文字幕 | 日韩黄色小视频 | 日韩操操| 天堂伊人网 | 超碰c | 黄色大尺度视频 | 久久久久久99精品久久久 | 极品国产一区 | 久久久国产亚洲 | 久久久经典 | 久色影视 | 四虎成人免费视频 | 国产高清一区二区三区四区 | www.黄色 | 免费国产一区二区 | 黄色录像二级片 | 日本一区二区三区在线播放 | 日韩精品免费一区二区在线观看 | 亚洲国产黄色 | 精品亚洲一区二区三区四区五区 | 污污动态图 | 超碰蜜桃| 奇米久久| 欧美日韩一区二区三区在线 | 免费看黄在线观看 | 欧美乱视频 | 免费色播 | 136福利视频导航 | 韩国裸体网站 | 国产不卡视频一区二区三区 | 国产精品美女久久久久图片 | 国外精品视频 | 捆绑无遮挡打光屁股 | 亚洲欧美在线视频 | 牛人盗摄一区二区三区视频 |