10個免費命令來檢查Linux記憶體使用情況


如果您是Linux使用者,您可能聽說過“記憶體使用”這個術語。記憶體使用是指您的計算機在任何給定時間使用的記憶體量。這是一個重要的指標,因為它過多的記憶體使用會導致系統速度變慢甚至崩潰。幸運的是,Linux提供了一個名為“free”的內建工具,允許您檢查系統的記憶體使用情況。在本文中,我們將介紹如何使用“free”命令來檢查Linux中的記憶體使用情況。

什麼是“free”命令?

“free”命令是Linux中一個內建工具,用於顯示系統記憶體使用情況的資訊。它提供有關正在使用的記憶體量、可用的空閒記憶體量以及系統核心正在使用的記憶體量的詳細資訊。

如何使用“free”命令?

使用“free”命令很簡單。只需開啟終端並輸入“free”以及任何可選標誌。這是一個示例:

$ free

這將顯示系統的記憶體使用情況統計資訊。

理解“free”命令的輸出

“free”命令的輸出可能有點讓人不知所措,特別是如果您是Linux新手。但是,一旦您理解了不同的欄位,閱讀和解釋就變得更容易了。這是一個示例輸出:

              total        used        free      shared  buff/cache   available
Mem:        8093816     1439556     5458576      195084     1194684     6159384
Swap:       2097148           0     2097148

以下是每個欄位的含義:

  • total - 系統可用的物理記憶體總量。

  • used - 系統當前正在使用的記憶體量。

  • free - 當前可用的記憶體量。

  • shared - 不同程序之間共享的記憶體量。

  • buff/cache - 用於磁碟快取的記憶體量。

  • available - 可用於新程序使用的記憶體量。

需要注意的是,“used”欄位中顯示的值不包括用於磁碟快取的記憶體。相反,這顯示在“buff/cache”欄位中。“available”欄位顯示實際上可用於新程序的記憶體量,其中考慮了用於磁碟快取的記憶體。

使用“-h”標誌

預設情況下,“free”命令以位元組為單位顯示記憶體使用情況統計資訊。這可能難以閱讀,特別是如果您處理的是大量記憶體。幸運的是,您可以使用“-h”標誌以更易於閱讀的格式顯示輸出。這是一個示例:

$ free -h

這將以更易於閱讀的格式顯示輸出,使用“MB”和“GB”等單位而不是位元組。

使用“-s”標誌

如果您想連續監控系統的記憶體使用情況,可以使用“-s”標誌指定每次更新之間的延遲。例如,以下命令將每5秒顯示一次記憶體使用情況統計資訊:

$ free -s 5

使用“-t”標誌

預設情況下,“free”命令顯示物理記憶體和交換空間的記憶體使用情況統計資訊。如果您只想檢視物理記憶體的統計資訊,可以使用“-t”標誌排除交換空間統計資訊。例如:

$ free -t

這將僅顯示物理記憶體的記憶體使用情況統計資訊。

以下是一些使用帶有不同標誌的“free”命令的示例:

以兆位元組顯示記憶體使用情況

$ free -m

這將以兆位元組顯示記憶體使用情況統計資訊,這可能比預設的位元組格式更容易閱讀。

以吉位元組顯示記憶體使用情況

$ free -g

這將以吉位元組顯示記憶體使用情況統計資訊,這對於具有大量記憶體的系統非常有用。

以2秒的延遲迴圈顯示記憶體使用情況

$ free -s 2 -c

這將以連續迴圈顯示記憶體使用情況統計資訊,每次更新之間延遲2秒。“-c”標誌指定在每次更新之前應清除輸出。

顯示特定程序的記憶體使用情況統計資訊

$ ps aux | grep firefox
$ pmap <PID>

這將顯示特定程序(例如Firefox Web瀏覽器)的記憶體使用情況統計資訊。首先,使用“ps”命令查詢要檢查的程序的程序ID(PID)。然後,使用帶有PID的“pmap”命令顯示該程序的詳細記憶體使用情況資訊。

顯示特定使用者的記憶體使用情況統計資訊

$ sudo su <USERNAME>
$ free -u <USERNAME>

這將顯示特定使用者(例如root使用者或系統上的其他使用者)的記憶體使用情況統計資訊。首先,使用“sudo su”命令切換到使用者帳戶。然後,使用“-u”標誌和“free”命令顯示該使用者的記憶體使用情況統計資訊。

以特定格式顯示記憶體使用情況統計資訊

$ free -o

這將以特定格式顯示記憶體使用情況統計資訊,這對於指令碼編寫或解析輸出非常有用。“-o”標誌指定輸出應為“長”格式。

以特定單位顯示記憶體使用情況統計資訊

$ free -k

這將以千位元組顯示記憶體使用情況統計資訊,這對於記憶體資源有限的系統非常有用。

以特定間隔顯示記憶體使用情況統計資訊

$ free -t 10

這將每10秒顯示一次記憶體使用情況統計資訊,這對於監控系統隨時間的記憶體使用情況非常有用。“-t”標誌指定間隔(以秒為單位)。

顯示特定程序組的記憶體使用情況統計資訊

$ free -g 1

這將顯示特定程序組(例如在容器或虛擬機器中執行的一組程序)的記憶體使用情況統計資訊。“-g”標誌指定程序組ID。

顯示特定記憶體型別的記憶體使用情況統計資訊

$ free -b -t | grep "^Swap"

這將顯示特定記憶體型別(例如交換空間)的記憶體使用情況統計資訊。“-b”標誌指定輸出應以位元組為單位,“grep”命令將輸出過濾為僅顯示交換空間統計資訊。

按特定欄位排序顯示記憶體使用情況統計資訊

$ free -m | sort -nk 2

這將按“used”列升序顯示記憶體使用情況統計資訊,這對於識別消耗最多記憶體的程序或服務非常有用。“sort”命令用於根據特定列對輸出進行排序,“-n”選項指定數字排序,“-k”選項指定要排序的列。

顯示帶有時間戳的記憶體使用情況統計資訊

$ while true; do date +"%F %T"; free -h; sleep 5; done

這將顯示帶有時間戳的記憶體使用情況統計資訊,這對於跟蹤記憶體使用情況隨時間的變化非常有用。“while”迴圈用於以每次更新之間延遲5秒的速度連續執行“date”和“free”命令。

顯示特定虛擬記憶體區域的記憶體使用情況統計資訊

$ free -t | grep "VmallocUsed"

這將顯示特定虛擬記憶體區域(例如核心使用的“vmalloc”區域)的記憶體使用情況統計資訊。“grep”命令將輸出過濾為僅顯示“VmallocUsed”行,該行顯示虛擬記憶體區域使用的記憶體量。

顯示特定程序ID的記憶體使用情況統計資訊

$ ps aux | grep firefox
$ cat /proc/<PID>/status | grep VmRSS

這將顯示特定程序ID(例如Firefox Web瀏覽器)的記憶體使用情況統計資訊。首先,使用“ps”命令查詢要檢查的程序的程序ID(PID)。然後,使用“cat”命令和`/proc/PID/status`檔案顯示該程序的詳細記憶體使用情況資訊,例如駐留集大小(RSS)或其程式碼段的大小。

結論

“free”命令是一個強大的工具,允許您檢查Linux系統中的記憶體使用情況。透過理解輸出中的不同欄位並使用各種標誌,您可以詳細瞭解系統如何使用其記憶體資源。記憶體使用情況監控對於任何Linux使用者來說都是一項重要任務,特別是如果您執行的是記憶體密集型應用程式或伺服器。使用“free”命令,您可以快速輕鬆地檢查系統的記憶體使用情況並在必要時採取行動。

除了“free”命令之外,Linux中還有其他用於監控記憶體使用的工具。例如,“top”命令提供有關係統記憶體使用情況、CPU使用情況和其他系統統計資訊的即時資訊。還有一些第三方工具可用,例如“htop”,它提供了一個更高階的介面來監控系統資源。

更新於:2023年5月2日

5K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告