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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

腾讯面试题 linux下free命令详解

發(fā)布時間:2025/3/21 linux 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 腾讯面试题 linux下free命令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

free 命令顯示系統(tǒng)內(nèi)存的使用情況,包括物理內(nèi)存、交換內(nèi)存(swap)和內(nèi)核緩沖區(qū)內(nèi)存

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

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


上面的命令每隔 3 秒輸出一次內(nèi)存的使用情況,直到你按下 ctrl + c。

由于 free 命令本身比較簡單,所以本文的重點會放在如何通過 free 命令了解系統(tǒng)當(dāng)前的內(nèi)存使用狀況。

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

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

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

buffer 在操作系統(tǒng)中指 buffer cache, 中文一般翻譯為 “緩沖區(qū)”。要理解緩沖區(qū),必須明確另外兩個概念:“扇區(qū)” 和 “塊”。扇區(qū)是設(shè)備的最小尋址單元,也叫 “硬扇區(qū)” 或 “設(shè)備塊”。塊是操作系統(tǒng)中文件系統(tǒng)的最小尋址單元,也叫 “文件塊” 或 “I/O 塊”。每個塊包含一個或多個扇區(qū),但大小不能超過一個頁面,所以一個頁可以容納一個或多個內(nèi)存中的塊。當(dāng)一個塊被調(diào)入內(nèi)存時,它要存儲在一個緩沖區(qū)中。每個緩沖區(qū)與一個塊對應(yīng),它相當(dāng)于是磁盤塊在內(nèi)存中的表示(下圖來自互聯(lián)網(wǎng)):在這里插入圖片描述

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

cache 在操作系統(tǒng)中指 page cache,中文一般翻譯為 “頁高速緩存”。頁高速緩存是內(nèi)核實現(xiàn)的磁盤緩存。它主要用來減少對磁盤的 I/O 操作。具體地講,是通過把磁盤中的數(shù)據(jù)緩存到物理內(nèi)存中,把對磁盤的訪問變?yōu)閷ξ锢韮?nèi)存的訪問。頁高速緩存緩存的是內(nèi)存頁面。緩存中的頁來自對普通文件、塊設(shè)備文件(這個指的就是 buffer cache 呀)和內(nèi)存映射文件的讀寫。
頁高速緩存對普通文件的緩存我們可以這樣理解:當(dāng)內(nèi)核要讀一個文件(比如 /etc/hosts)時,它會先檢查這個文件的數(shù)據(jù)是不是已經(jīng)在頁高速緩存中了。如果在,就放棄訪問磁盤,直接從內(nèi)存中讀取。這個行為稱為緩存命中。如果數(shù)據(jù)不在緩存中,就是未命中緩存,此時內(nèi)核就要調(diào)度塊 I/O 操作從磁盤去讀取數(shù)據(jù)。然后內(nèi)核將讀來的數(shù)據(jù)放入頁高速緩存中。這種緩存的目標(biāo)是文件系統(tǒng)可以識別的文件(比如 /etc/hosts)。
頁高速緩存對塊設(shè)備文件的緩存就是我們在前面介紹的 buffer cahce。因為獨(dú)立的磁盤塊通過緩沖區(qū)也被存入了頁高速緩存(緩沖區(qū)最終是由頁高速緩存來承載的)。

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

free 與 available
在 free 命令的輸出中,有一個 free 列,同時還有一個 available 列。這二者到底有何區(qū)別?
free 是真正尚未被使用的物理內(nèi)存數(shù)量。至于 available 就比較有意思了,它是從應(yīng)用程序的角度看到的可用內(nèi)存數(shù)量。Linux 內(nèi)核為了提升磁盤操作的性能,會消耗一部分內(nèi)存去緩存磁盤數(shù)據(jù),就是我們介紹的 buffer 和 cache。所以對于內(nèi)核來說,buffer 和 cache 都屬于已經(jīng)被使用的內(nèi)存。當(dāng)應(yīng)用程序需要內(nèi)存時,如果沒有足夠的 free 內(nèi)存可以用,內(nèi)核就會從 buffer 和 cache 中回收內(nèi)存來滿足應(yīng)用程序的請求。所以從應(yīng)用程序的角度來說,available = free + buffer + cache。請注意,這只是一個很理想的計算方式,實際中的數(shù)據(jù)往往有較大的誤差。

交換空間(swap space)

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

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

vm.swappiness=10
如果系統(tǒng)的內(nèi)存不足,則需要根據(jù)物理內(nèi)存的大小來設(shè)置交換空間的大小。具體的策略網(wǎng)上有很豐富的資料,這里筆者不再贅述。
/proc/meminfo 文件
其實 free 命令中的信息都來自于 /proc/meminfo 文件。/proc/meminfo 文件包含了更多更原始的信息,只是看起來不太直觀:

$ cat /proc/meminfo

在這里插入圖片描述

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

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

總結(jié)

以上是生活随笔為你收集整理的腾讯面试题 linux下free命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99香蕉视频 | 国产丝袜av | 久久久久亚洲av片无码 | 天堂av2014| www五月| 色丁香六月| 成人黄色在线视频 | 高潮毛片无遮挡免费看 | 日朝毛片| 天天干天天爽 | jizzjizz视频| 日韩不卡免费视频 | 美女色诱男人激情视频 | 91老肥熟 | 亚洲欧美小视频 | 久久22 | 国产人妻人伦精品1国产盗摄 | 精品999久久久一级毛片 | 91综合视频 | 插吧插吧网| 国产美女主播 | 浪漫樱花在线观看高清动漫 | 国产激情一区二区三区在线观看 | 国产精品99精品 | 在线不卡一区 | 自拍偷拍色 | 亚洲天堂av网站 | 印度毛茸茸 | 色综合久久久久综合体桃花网 | asian性开放少妇pics | 精品伊人久久 | 综合色播| 好屌妞视频这里有精品 | 欧美日韩在线网站 | 亚洲free性xxxx护士hd | 日韩 国产 欧美 | 亚洲免费高清 | 黄色一级免费视频 | 久久久久99精品成人片我成大片 | 色干网 | 日韩精品一二三四区 | 日韩av中文字幕在线播放 | 91网国产| 农村末发育av片一区二区 | 日本孕妇孕交 | 丰满少妇理论片 | 视频黄色免费 | 国产美女视频免费观看下载软件 | 无码人妻丰满熟妇区毛片18 | 色九九视频 | 无码内射中文字幕岛国片 | 熊猫电影yy8y全部免费观看 | 欧美性猛交ⅹxx乱大交 | 免播放器av| 亚洲性激情| 亚洲精久| av网址免费观看 | 男人操女人的软件 | 国产黄色免费在线观看 | 亚洲精品成人在线视频 | 国产区在线看 | 奶波霸巨乳一二三区乳 | 免费看片亚洲 | 日韩精品久久久 | 日韩视频中文字幕在线观看 | 久久亚洲欧美 | 国产午夜三级一区二区三 | 色婷婷av久久久久久久 | 国产69精品久久久久久久 | 在线免费看黄色片 | 91精品国产aⅴ一区 黄色a网 | 国产aⅴ精品一区二区果冻 台湾性生生活1 | 亚洲成人第一页 | 巨胸挤奶视频www网站 | 中文字幕在线视频网站 | 51精品国产 | 99精品影视| 亚洲精品中文字幕在线播放 | 国产一区二区福利 | 亚洲精品免费在线视频 | 久久久久久久亚洲av无码 | 中文在线a√在线8 | 黄色录像一级大片 | 佐佐木明希电影 | 欧美在线播放视频 | 久久av网站 | 中文字幕狠狠干 | 欧美极品少妇xxxxⅹ裸体艺术 | 亚洲欧美日韩国产综合 | 婷婷色在线观看 | 免费三级av| 日韩一级片免费在线观看 | 漂亮人妻被黑人久久精品 | 日韩av大片| 色戒电影未测减除版 | 国产精品入口麻豆九色 | 理论片亚洲| 天堂男人在线 | 激情五月婷婷综合 |