亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

linux free命令詳解

2024-09-01 13:53:55
字體:
來源:轉載
供稿:網友

本文介紹了linux free命令詳解,分享給大家,具體如下:

free 命令顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩沖區內存。

linux,free命令,linux的free命令

如果加上 -h 選項,輸出的結果會友好很多:

linux,free命令,linux的free命令

有時我們需要持續的觀察內存的狀況,此時可以使用 -s 選項并指定間隔的秒數:

$ free -h -s 3

linux,free命令,linux的free命令

上面的命令每隔 3 秒輸出一次內存的使用情況,直到你按下 ctrl + c。
(Ubuntu 16.04 中默認的 free 版本有 bug,使用 -s 選項時報錯,所以這張圖是在 CentOS 中截的。)

由于 free 命令本身比較簡單,所以本文的重點會放在如何通過 free 命令了解系統當前的內存使用狀況。

輸出簡介

下面先解釋一下輸出的內容:
Mem 行(第二行)是內存的使用情況。
Swap 行(第三行)是交換空間的使用情況。
total 列顯示系統總的可用物理內存和交換空間大小。
used 列顯示已經被使用的物理內存和交換空間。
free 列顯示還有多少物理內存和交換空間可用使用。
shared 列顯示被共享使用的物理內存大小。
buff/cache 列顯示被 buffer 和 cache 使用的物理內存大小。
available 列顯示還可以被應用程序使用的物理內存大小。

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

buff/cache

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

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

linux,free命令,linux的free命令

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

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

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

頁高速緩存對塊設備文件的緩存就是我們在前面介紹的 buffer cahce。因為獨立的磁盤塊通過緩沖區也被存入了頁高速緩存(緩沖區最終是由頁高速緩存來承載的)。

到這里我們應該搞清楚了:無論是緩沖區還是頁高速緩存,它們的實現方式都是一樣的。緩沖區只不過是一種概念上比較特殊的頁高速緩存罷了。

那么為什么 free 命令不直接稱為 cache 而非要寫成 buff/cache? 這是因為緩沖區和頁高速緩存的實現并非天生就是統一的。在 linux 內核 2.4 中才將它們統一。更早的內核中有兩個獨立的磁盤緩存:頁高速緩存和緩沖區高速緩存。前者緩存頁面,后者緩存緩沖區。當你知道了這些故事之后,輸出中列的名稱可能已經不再重要了。

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

linux,free命令,linux的free命令

有興趣的同學可以直接查看這個文件。

總結

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品视频在线免费观看| 亚洲精品视频在线播放| 操日韩av在线电影| 亚洲国产精品专区久久| 免费不卡在线观看av| 国产精品久久久av| 欧美精品在线观看91| 精品久久久免费| 日韩成人激情在线| 欧美电影免费观看网站| 久久久国产在线视频| 亚洲第一精品夜夜躁人人爽| 91精品国产高清自在线看超| 欧美高清无遮挡| 91av在线播放| 久久久久久久成人| 欧美日韩爱爱视频| 国产成一区二区| 久久精品视频中文字幕| 欧美一级电影在线| 国产精品扒开腿爽爽爽视频| 国产精品高清网站| 色多多国产成人永久免费网站| 久久精品国亚洲| 亚洲精品色婷婷福利天堂| 欧美午夜精品久久久久久人妖| 麻豆国产精品va在线观看不卡| 亚洲国产91精品在线观看| 欧美高清视频在线| 国产91免费观看| 欧美诱惑福利视频| 精品丝袜一区二区三区| 人人爽久久涩噜噜噜网站| 5566日本婷婷色中文字幕97| 日韩免费av一区二区| 亚洲精品国产精品国自产在线| 91国产美女在线观看| 久久成人精品视频| 久久久久一本一区二区青青蜜月| 色综合久久天天综线观看| 亚洲精品欧美一区二区三区| 在线视频一区二区| 久久天天躁狠狠躁老女人| 国内精品400部情侣激情| 欧美午夜性色大片在线观看| 亚洲电影在线观看| 狠狠干狠狠久久| 欧美性猛交xxxx乱大交极品| 欧美最猛性xxxxx亚洲精品| 日韩成人网免费视频| 色播久久人人爽人人爽人人片视av| 欧美黑人视频一区| 日韩在线观看免费全集电视剧网站| 亚洲精品www久久久| 国产日韩精品入口| 日本精品视频在线观看| 亚洲国产精品久久久久| 久久久在线观看| 九九热99久久久国产盗摄| 久久大大胆人体| 日产日韩在线亚洲欧美| 日韩成人激情在线| 最好看的2019的中文字幕视频| 久久精品成人一区二区三区| 91免费看片在线| 欧美激情精品久久久久久| 久久久精品中文字幕| 精品亚洲男同gayvideo网站| 夜夜狂射影院欧美极品| 欧美成人精品一区| 亚洲自拍偷拍色片视频| 欧美一区亚洲一区| 久久久午夜视频| 国产精品r级在线| 午夜精品福利电影| 亚洲人成在线观看网站高清| 97久久精品人人澡人人爽缅北| 国产精品狼人色视频一区| 午夜精品三级视频福利| 国产免费成人av| 国产精品中文字幕在线观看| 2020久久国产精品| 欧美制服第一页| 在线观看国产成人av片| 亚洲色图18p| www.亚洲男人天堂| 中文字幕亚洲欧美日韩2019| 亚洲人成伊人成综合网久久久| 91精品国产91久久久| 日韩电影中文字幕在线| www.欧美三级电影.com| 日韩美女免费观看| 久久99久久久久久久噜噜| 久久九九热免费视频| 在线观看久久av| 久久精品久久久久电影| 夜夜嗨av一区二区三区免费区| 在线视频欧美日韩| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲综合色激情五月| 亚洲国产成人久久| 日韩精品在线观看视频| 91精品中文在线| 国产精品久久久久久亚洲影视| 国产噜噜噜噜久久久久久久久| 夜色77av精品影院| 亚洲第一二三四五区| 国模叶桐国产精品一区| 国产精品麻豆va在线播放| 日韩黄色高清视频| 久久久亚洲影院| 欧美在线视频一区二区| 欧美性猛交xxxx黑人| 国产精品永久免费| 国产精品成人一区二区| 亚洲欧洲免费视频| 欧美性开放视频| 在线播放国产一区二区三区| 国产欧美精品久久久| 插插插亚洲综合网| 久久夜色精品国产| 亚洲女成人图区| 国产精品白嫩美女在线观看| 久热精品视频在线观看一区| 国产一区二区三区免费视频| 欧美国产日韩一区| 亚洲人成电影在线观看天堂色| 日韩美女福利视频| 日韩av电影手机在线观看| 黑人与娇小精品av专区| 日韩美女主播视频| 高清在线视频日韩欧美| 久久久久久久久久久国产| 亚洲欧美日韩高清| 亚洲精品久久久久| 久热99视频在线观看| 日韩av色综合| 成人h猎奇视频网站| 奇米4444一区二区三区| 久久久精品影院| 亚洲美腿欧美激情另类| 欧美丝袜一区二区三区| 伊人av综合网| 色偷偷偷综合中文字幕;dd| 国产日韩欧美自拍| 91久久精品视频| 日韩激情在线视频| 欧美福利小视频| 欧美一级淫片丝袜脚交| 91伊人影院在线播放| 欧美精品在线极品| 成人观看高清在线观看免费| 久久艹在线视频| 欧美久久久精品| 在线看片第一页欧美| 日韩精品在线电影| 久久久久久久久91| 一区三区二区视频| 欧美激情18p| 久久亚洲精品成人| 日韩精品在线免费观看视频| 成人在线免费观看视视频| 精品国产一区二区三区久久久| www.99久久热国产日韩欧美.com|