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”,它提供了一個更高階的介面來監控系統資源。