Linux free命令顯示您的計算機有多少記憶體正在使用,還有多少記憶體可供程式使用。它的輸出可能會讓新手感到困惑,但我們將向您展示如何理解它。
free命令在終端視窗中列印記憶體使用情況的快速摘要。它沒有太多的選擇和技巧,也不需要花太多的時間和精力去學習如何使用它。然而,要學會正確解釋它所提供的資訊就另當別論了。很容易被自由告訴你的東西弄糊塗。
這部分是由於術語“free”和“available”之間的區別,部分是由於Linux核心的記憶體和檔案系統管理例程的內部工作方式。如果您有空閒記憶體,核心可以很好地利用它,它將借用它用於自己的目的。直到你需要它回來。
我們將深入研究底層機制和資料例程,以便您能夠了解引擎蓋下發生了什麼,以及所有這些如何影響隨機存取儲存器(RAM)的使用。
讓我們毫無選擇地自由開火,看看能得到什麼:
free用一種醜陋的方式包裹著。在您的計算機上,您可以拉伸終端視窗。下面是一個更整潔的表格中的輸出:
total used free shared buff/cache available Mem: 2038576 670716 327956 14296 1039904 1187160 Swap: 1557568 769096 788472這些數字以kibibytes表示,即1024位元組。在Manjaro上,free命令別名為free-m。這強制free使用mebibytes,即1048576位元組。在其他發行版上,預設值是kibibytes。
頂行報告系統記憶體,底行報告交換空間。我們將在這裡介紹這些列,稍後將更詳細地介紹它們。記憶體行的列如下所示:
對於交換行,列為:
要將Buff/cache圖形分隔為各自的列,請使用-w(寬)選項:
free -w這就是結果。我們得到的不是Buff/cache列,而是Buffers列和cache列。以下是表格中的數字:
total used free shared buffers cache available Mem: 2038576 683724 265708 14660 94568 994596 1160420 Swap: 1557568 761416 796152讓我們看看這些列中的數字代表什麼。
這個很簡單。這是多少記憶體你已經安裝在你的主機板上。這是所有正在執行的程序都在爭奪的寶貴資源。如果核心不是裁判,至少他們會打架。
順便說一下,free收集資訊的地方是/proc/meminfo偽檔案。您可以使用以下命令自己檢視此檔案:
less /proc/meminfo輸出是名稱和值的單個列表。
這就是它開始變得有趣的地方。
所用的數字代表你可能期望的,加上一堆其他的東西。這是分配給程序的記憶體,由使用者程式使用,並由GNOME或KDE桌面環境等使用。沒什麼奇怪的。但它也包括緩衝區和快取資料。
沒有被用來做某事的記憶體是浪費的記憶體。核心使用空閒的RAM來儲存快取記憶體和緩衝區,使其能夠更高效地執行。所以這個RAM被核心用來做一些事情,而不是被使用者空間中的任何東西使用。
如果接收到的記憶體請求只能透過放棄核心為自己的裝置使用的一些RAM來提供服務,那麼這就是發生的,無縫的。釋放這個RAM並將其用於其他應用程式不會影響Linux系統的正確操作不會有任何問題,但它可能會影響系統的效能。
所以這個專欄真正的意思是“被某物使用的所有RAM,即使它可以立即被回收。”
此列包含未被任何物件使用的RAM數量的數字。因為Used列包含緩衝區和快取資料,所以對於功能完善的Linux系統來說,很少有RAM被列為“free”
這不一定是一件壞事,而且幾乎可以肯定的是,這意味著您擁有一個功能完美的系統,可以正確地調節RAM的使用。也就是說,RAM正被應用程式和其他使用者空間程序以及核心用來儘可能提高計算機的效能。
Shared列中的數字表示用於儲存基於tmpfsram的檔案系統的記憶體。這些是在記憶體中建立的檔案系統,以促進作業系統的高效執行。要檢視存在哪些tmpfs檔案系統,請使用df命令。
我們使用的選項有:
當您檢視這些值時,首先想到的是它們比共享列中的數字大很多倍。這裡顯示的大小是這些檔案系統的最大大小。實際上,它們各自只佔用所需的記憶體。Shared列中的數字是記憶體使用率的可信數字。
這些檔案系統包含什麼?下面是一個快速分解:
緩衝區和快取列僅在使用-w(寬)時出現。如果沒有–w選項,這兩列中的數字將合併到Buff/cache列中。
這兩個記憶區域相互作用,相互依賴。快取區儲存(主要)從硬碟讀取的資料。它會被保留,以防您需要再次訪問它。從快取中提取資料要比從硬碟中讀取資料快得多。快取還可以儲存已修改但尚未寫回硬碟的資料,或已計算但尚未儲存到檔案的值。
為了跟蹤各種檔案片段和資料儲存,核心在緩衝區記憶體區域中構建了一個到快取記憶體區域的索引。緩衝區是記憶體中儲存磁碟塊和其他資訊結構的部分。它們包含有關快取記憶體區域中儲存的資料的資料。所以緩衝區是快取的元資料。
當發出檔案讀取請求時,核心讀取緩衝區資料結構中的資料,尋找已被請求的檔案或檔案片段。如果找到了,則從緩衝區資料結構指向的快取記憶體區域為請求提供服務。如果它不在快取中,因此不在緩衝區記憶體區域的元資料中,則從硬碟讀取檔案。
緩衝儲存器區域中的結構是:
您可以理解為什麼將用於緩衝區和快取區的記憶體壓縮到一個Buff/cache列是有意義的。它們就像是同一事物的兩部分。如果沒有緩衝儲存器區域為其內容提供索引,則快取儲存器區域將是無用的。
可用列是空閒列加上緩衝區和快取列(或Buff/Cache列)中可以立即放棄的部分的總和。可用列是估計值,而不是確切數字。這是一個明智的估計,也是一個準確的估計,但它不應該被視為精確到最後一個位元組。
要更改中自由顯示圖形的單位,請使用以下選項之一。
例如,要使用人類可讀的值,請使用-h選項:
free -hfree將為每個值使用最合適的單位。如您所見,有些值顯示在MiB中,有些值顯示在GiB中。
--total選項使free顯示總計行,該行對Mem行和Swap行的total、Used和free列中的值求和。
free -h --totalc(count)選項告訴free執行一定次數,每一次之間暫停一秒鐘。要自由執行兩次,請使用以下命令:
free -h -c 2如果您想看到某個應用程式對您的記憶體使用的影響,那麼連續自由執行是很有用的。這使您可以在啟動、使用並關閉正在調查的應用程式時在終端視窗中自由執行。
-s(秒)選項確定每次空閒執行之間的暫停時間。要在每次更新之間連續自由執行並暫停3秒鐘,請使用以下命令:
free -s 3按Ctrl+C停止程序並返回命令提示符。
要在每次更新之間以指定的暫停自由執行,但在一定數量的報告之後停止,請組合-s(秒)和-c(計數)選項。要在每次更新之間自由執行五次並暫停兩秒,請使用以下命令:
free -s 2 -c 5出現五個更新後,程序自行終止,並返回到命令提示符。
這在當今已經沒有什麼用處了,但是如果您在32位計算機上執行Linux,它可能會被證明是有用的。它將記憶體使用與低記憶體和高記憶體分開。
在基於32位Linux的作業系統上,CPU最多可以定址4GB的記憶體。記憶體分為低記憶體和高記憶體。記憶體不足直接對映到核心的地址空間部分。高記憶體沒有直接的核心對映。高記憶體通常是896MB以上。
這意味著核心本身(包括它的活動模組)只能使用低記憶體。使用者處理任何不是核心本身的東西都可能利用低記憶體和高記憶體。
在64位計算機上,不會顯示高記憶體的值:
free -h -l簡要回顧:
Linux使用者擁有大量的開源軟體。但有時需要專有軟體。它可能類似於執行Microsoft Word—考慮到LibreOffice的質量,這有點不必要—也可能是一個專有的驅動程式。 ...
... 在您真正充分利用終端之前,您需要知道如何導航它。這就是為什麼我們認為這些是最基本的Linux命令:如果你不能更改目錄或者在一個你不記得如何使用的命令上獲得幫助,那麼再多的終端知識也幫不了你。 ...
...了。此外,Wine允許在Linux上進一步安裝Windows遊戲。瞭解如何在Linux上開始影片遊戲直播! ...
... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...
...此,這幾乎是獲取定量資料的唯一方法,說明系統的效能如何——如果您的數字不足,這表明您可能希望升級一些PC元件。 ...
... 我們不希望您在不知道命令列如何工作的情況下就開始使用它。本質上,它是一種指示計算機執行任務的方法,但沒有滑鼠。 ...
... 為了在網際網路上真正安全,您需要使用VPN。它將保護你免受**、ISP和駭客的窺視。這裡是Linux最好的VPN,我們甚至已經投入了幾個Linux VPN客戶端。 ...
... 如何在ubuntu上安裝pithos ...
... 如果你不想重新學習如何使用電腦,吃肉桂可以幫你省去一些頭痛。它是Linux Mint中的預設桌面環境。 ...