如何在linux上使用free命令

Linux free命令顯示您的計算機有多少記憶體正在使用,還有多少記憶體可供程式使用。它的輸出可能會讓新手感到困惑,但我們將向您展示如何理解它。...

Linux free命令顯示您的計算機有多少記憶體正在使用,還有多少記憶體可供程式使用。它的輸出可能會讓新手感到困惑,但我們將向您展示如何理解它。

自由命令

free命令在終端視窗中列印記憶體使用情況的快速摘要。它沒有太多的選擇和技巧,也不需要花太多的時間和精力去學習如何使用它。然而,要學會正確解釋它所提供的資訊就另當別論了。很容易被自由告訴你的東西弄糊塗。

這部分是由於術語“free”和“available”之間的區別,部分是由於Linux核心的記憶體和檔案系統管理例程的內部工作方式。如果您有空閒記憶體,核心可以很好地利用它,它將借用它用於自己的目的。直到你需要它回來。

我們將深入研究底層機制和資料例程,以便您能夠了解引擎蓋下發生了什麼,以及所有這些如何影響隨機存取儲存器(RAM)的使用。

自由列

讓我們毫無選擇地自由開火,看看能得到什麼:

free

如何在linux上使用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。

頂行報告系統記憶體,底行報告交換空間。我們將在這裡介紹這些列,稍後將更詳細地介紹它們。記憶體行的列如下所示:

  • 總計:計算機中安裝的物理RAM總量。
  • 已使用:這是由Total-(Free+Buffers+Cache)計算的。
  • 空閒:未使用的記憶體量。為什麼Total=已用+免費?我們很快會解釋的。
  • 共享:tmpfs檔案系統使用的記憶體。
  • Buff/cache:用於緩衝和快取的記憶體。
  • 可用:這是對可用於處理來自應用程式、計算機內任何其他功能軟體(如圖形桌面環境和Linux命令)的記憶體請求的記憶體的估計。

對於交換行,列為:

  • 總計:交換分割槽或交換檔案的大小。
  • 已用:正在使用的交換空間量。
  • 空閒:剩餘的(未使用的)交換空間

大螢幕

要將Buff/cache圖形分隔為各自的列,請使用-w(寬)選項:

free -w

如何在linux上使用free命令

這就是結果。我們得到的不是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

如何在linux上使用free命令

輸出是名稱和值的單個列表。

如何在linux上使用free命令

使用的列

這就是它開始變得有趣的地方。

所用的數字代表你可能期望的,加上一堆其他的東西。這是分配給程序的記憶體,由使用者程式使用,並由GNOME或KDE桌面環境等使用。沒什麼奇怪的。但它也包括緩衝區和快取資料。

沒有被用來做某事的記憶體是浪費的記憶體。核心使用空閒的RAM來儲存快取記憶體和緩衝區,使其能夠更高效地執行。所以這個RAM被核心用來做一些事情,而不是被使用者空間中的任何東西使用。

如果接收到的記憶體請求只能透過放棄核心為自己的裝置使用的一些RAM來提供服務,那麼這就是發生的,無縫的。釋放這個RAM並將其用於其他應用程式不會影響Linux系統的正確操作不會有任何問題,但它可能會影響系統的效能。

所以這個專欄真正的意思是“被某物使用的所有RAM,即使它可以立即被回收。”

自由柱

此列包含未被任何物件使用的RAM數量的數字。因為Used列包含緩衝區和快取資料,所以對於功能完善的Linux系統來說,很少有RAM被列為“free”

這不一定是一件壞事,而且幾乎可以肯定的是,這意味著您擁有一個功能完美的系統,可以正確地調節RAM的使用。也就是說,RAM正被應用程式和其他使用者空間程序以及核心用來儘可能提高計算機的效能。

共享列

Shared列中的數字表示用於儲存基於tmpfsram的檔案系統的記憶體。這些是在記憶體中建立的檔案系統,以促進作業系統的高效執行。要檢視存在哪些tmpfs檔案系統,請使用df命令。

我們使用的選項有:

  • -h(人類):使用合理的、最合適的單位。
  • --總計:在輸出的底部顯示一行總計。
  • --type=tmpfs:僅報告tmpfs檔案系統。
df -h --total --type=tmpfs

如何在linux上使用free命令

當您檢視這些值時,首先想到的是它們比共享列中的數字大很多倍。這裡顯示的大小是這些檔案系統的最大大小。實際上,它們各自只佔用所需的記憶體。Shared列中的數字是記憶體使用率的可信數字。

這些檔案系統包含什麼?下面是一個快速分解:

  • /run:它儲存許多臨時檔案,如PID檔案、在重新啟動時不必保留的systemd日誌、與Unix域套接字、fifo和守護程序管理有關的資訊。
  • /dev/shm:這允許在Debian和Debian派生的Linux發行版上實現與POSIX相容的記憶體管理。
  • /run/lock:它儲存鎖檔案。它們用作指示符號,讓系統知道檔案或其他共享資源正在使用中。它們包含使用該資源的程序的PID。
  • /sys/fs/cgroup:這是管理控制組的方案的中心元素。程序根據其使用的資源型別被組織成層次組。它允許被監視和限制的程序對資源的使用。
  • /run/user/121:這是pam\u systemd建立的一個資料夾,用於儲存使用者的臨時檔案。在這種情況下,使用者的ID為121。請注意,“使用者”可能是普通使用者、守護程序或其他程序。
  • /run/user/1000:這是pam\u systemd建立的一個資料夾,用於儲存該使用者的臨時檔案,該使用者的使用者ID為1000。這是當前使用者,使用者dave。

緩衝區和快取列

緩衝區和快取列僅在使用-w(寬)時出現。如果沒有–w選項,這兩列中的數字將合併到Buff/cache列中。

這兩個記憶區域相互作用,相互依賴。快取區儲存(主要)從硬碟讀取的資料。它會被保留,以防您需要再次訪問它。從快取中提取資料要比從硬碟中讀取資料快得多。快取還可以儲存已修改但尚未寫回硬碟的資料,或已計算但尚未儲存到檔案的值。

為了跟蹤各種檔案片段和資料儲存,核心在緩衝區記憶體區域中構建了一個到快取記憶體區域的索引。緩衝區是記憶體中儲存磁碟塊和其他資訊結構的部分。它們包含有關快取記憶體區域中儲存的資料的資料。所以緩衝區是快取的元資料。

當發出檔案讀取請求時,核心讀取緩衝區資料結構中的資料,尋找已被請求的檔案或檔案片段。如果找到了,則從緩衝區資料結構指向的快取記憶體區域為請求提供服務。如果它不在快取中,因此不在緩衝區記憶體區域的元資料中,則從硬碟讀取檔案。

緩衝儲存器區域中的結構是:

  • 緩衝頭:每個緩衝區都用一個稱為緩衝頭的資料塊來描述。此外,如果塊中的資料被更改,並且相關的記憶體頁被“弄髒”,描述符將跟蹤將資料寫回硬碟驅動器的需要。
  • inode:inode儲存關於檔案和目錄的元資料,包括它們在硬碟驅動器(或虛擬檔案系統)上的位置、檔案大小和檔案的時間戳。
  • dentry:dentry(目錄條目)是儲存目錄列表資訊的結構。可以將其視為目錄中檔案和目錄的inode列表。

您可以理解為什麼將用於緩衝區和快取區的記憶體壓縮到一個Buff/cache列是有意義的。它們就像是同一事物的兩部分。如果沒有緩衝儲存器區域為其內容提供索引,則快取儲存器區域將是無用的。

可用列

可用列是空閒列加上緩衝區和快取列(或Buff/Cache列)中可以立即放棄的部分的總和。可用列是估計值,而不是確切數字。這是一個明智的估計,也是一個準確的估計,但它不應該被視為精確到最後一個位元組。

更改顯示單位

要更改中自由顯示圖形的單位,請使用以下選項之一。

  • -b:以位元組為單位顯示值。
  • -k:以kibibytes為單位顯示值(這是預設值)。
  • -m:以兆位元組為單位顯示值。
  • -g:以GiB為單位顯示值。
  • -h:以合理的最佳擬合單位(人類可讀)顯示值。

例如,要使用人類可讀的值,請使用-h選項:

free -h

如何在linux上使用free命令

free將為每個值使用最合適的單位。如您所見,有些值顯示在MiB中,有些值顯示在GiB中。

顯示總計

--total選項使free顯示總計行,該行對Mem行和Swap行的total、Used和free列中的值求和。

free -h --total

如何在linux上使用free命令

計數選項

c(count)選項告訴free執行一定次數,每一次之間暫停一秒鐘。要自由執行兩次,請使用以下命令:

free -h -c 2

如何在linux上使用free命令

連續自由奔跑

如果您想看到某個應用程式對您的記憶體使用的影響,那麼連續自由執行是很有用的。這使您可以在啟動、使用並關閉正在調查的應用程式時在終端視窗中自由執行。

-s(秒)選項確定每次空閒執行之間的暫停時間。要在每次更新之間連續自由執行並暫停3秒鐘,請使用以下命令:

free -s 3

如何在linux上使用free命令

按Ctrl+C停止程序並返回命令提示符。

組合計數和秒選項

要在每次更新之間以指定的暫停自由執行,但在一定數量的報告之後停止,請組合-s(秒)和-c(計數)選項。要在每次更新之間自由執行五次並暫停兩秒,請使用以下命令:

free -s 2 -c 5

如何在linux上使用free命令

出現五個更新後,程序自行終止,並返回到命令提示符。

如何在linux上使用free命令

分離低記憶體和高記憶體

這在當今已經沒有什麼用處了,但是如果您在32位計算機上執行Linux,它可能會被證明是有用的。它將記憶體使用與低記憶體和高記憶體分開。

在基於32位Linux的作業系統上,CPU最多可以定址4GB的記憶體。記憶體分為低記憶體和高記憶體。記憶體不足直接對映到核心的地址空間部分。高記憶體沒有直接的核心對映。高記憶體通常是896MB以上。

這意味著核心本身(包括它的活動模組)只能使用低記憶體。使用者處理任何不是核心本身的東西都可能利用低記憶體和高記憶體。

在64位計算機上,不會顯示高記憶體的值:

free -h -l

如何在linux上使用free命令

記憶就是這樣形成的

簡要回顧:

  • 總計:系統中安裝的RAM數量。
  • 已用:等於總計-(空閒+緩衝區+快取)。
  • 空閒:任何東西完全不用的記憶體量。
  • 共享:tmpfs檔案系統佔用的記憶體。
  • 緩衝區:為快取中儲存的所有內容提供索引而維護的資料結構。
  • 快取:從硬碟讀取的資料、等待寫回硬碟的修改資料和其他計算值。
  • 可用:真正免費的。對空閒、緩衝和快取記憶體中可用於滿足記憶體請求的記憶體的估計。

 

  • 發表於 2021-04-02 19:12
  • 閱讀 ( 47 )
  • 分類:網際網路

你可能感興趣的文章

如何在ubuntu、fedora和mint中安裝專有的圖形驅動程式

Linux使用者擁有大量的開源軟體。但有時需要專有軟體。它可能類似於執行Microsoft Word—考慮到LibreOffice的質量,這有點不必要—也可能是一個專有的驅動程式。 ...

  • 發佈於 2021-03-14 23:36
  • 閲讀 ( 55 )

40多個最常用的linux終端命令

... 在您真正充分利用終端之前,您需要知道如何導航它。這就是為什麼我們認為這些是最基本的Linux命令:如果你不能更改目錄或者在一個你不記得如何使用的命令上獲得幫助,那麼再多的終端知識也幫不了你。 ...

  • 發佈於 2021-03-15 21:40
  • 閲讀 ( 48 )

linux影片遊戲直播入門

...了。此外,Wine允許在Linux上進一步安裝Windows遊戲。瞭解如何在Linux上開始影片遊戲直播! ...

  • 發佈於 2021-03-16 01:05
  • 閲讀 ( 45 )

如何在linux上安裝和使用powershell

... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...

  • 發佈於 2021-03-16 02:34
  • 閲讀 ( 50 )

如何測試linux pc的效能

...此,這幾乎是獲取定量資料的唯一方法,說明系統的效能如何——如果您的數字不足,這表明您可能希望升級一些PC元件。 ...

  • 發佈於 2021-03-17 09:58
  • 閲讀 ( 48 )

raspberry pi終端命令:raspberry pi使用者快速指南

... 我們不希望您在不知道命令列如何工作的情況下就開始使用它。本質上,它是一種指示計算機執行任務的方法,但沒有滑鼠。 ...

  • 發佈於 2021-03-18 12:27
  • 閲讀 ( 53 )

linux正在吃掉你的公羊嗎?如何管理你的記憶

...記憶體。為了理解到底發生了什麼,我們必須看看Linux是如何管理記憶體的。 ...

  • 發佈於 2021-03-23 08:31
  • 閲讀 ( 54 )

linux的7個最佳VPN

... 為了在網際網路上真正安全,您需要使用VPN。它將保護你免受**、ISP和駭客的窺視。這裡是Linux最好的VPN,我們甚至已經投入了幾個Linux VPN客戶端。 ...

  • 發佈於 2021-03-23 10:05
  • 閲讀 ( 98 )

linux和ubuntu入門

... 如果你不想重新學習如何使用電腦,吃肉桂可以幫你省去一些頭痛。它是Linux Mint中的預設桌面環境。 ...

  • 發佈於 2021-03-26 09:32
  • 閲讀 ( 58 )
sns5039398
sns5039398

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦