用以檢查 Linux 內存使用的 5 個命令 | Linux 中國

2021-02-19 Linux中國

對於 Linux 管理員來說,檢查系統內存用量是一個重要的技能。Jack 給出了解決這個問題的五種不同方式。

Linux 作業系統包含大量工具,所有這些工具都可以幫助你管理系統。從簡單的文件和目錄工具到非常複雜的安全命令,在 Linux 中沒有多少是你做不了的。而且,儘管普通桌面用戶可能不需要在命令行熟悉這些工具,但對於 Linux 管理員來說,它們是必需的。為什麼?首先,你在某些時候不得不使用沒有 GUI 的 Linux 伺服器。其次,命令行工具通常比 GUI 替代工具提供更多的功能和靈活性。

確定內存使用情況是你可能需要的技能,尤其是某個應用程式變得異常和佔用系統內存時。當發生這種情況時,知道有多種工具可以幫助你進行故障排除十分方便的。或者,你可能需要收集有關 Linux 交換分區的信息,或者有關安裝的內存的詳細信息?對於這些也有相應的命令。讓我們深入了解各種 Linux 命令行工具,以幫助你檢查系統內存使用情況。這些工具並不是非常難以使用,在本文中,我將向你展示五種不同的方法來解決這個問題。

我將在 Ubuntu 18.04 伺服器平臺[1]上進行演示,但是你應該在你選擇的發行版中找到對應的所有命令。更妙的是,你不需要安裝任何東西(因為大多數這些工具都包含 Linux 系統中)。

話雖如此,讓我們開始工作吧。

top

我想從最常用的工具開始。top 命令提供正在運行的系統的實時動態視圖,它檢查每個進程的內存使用情況。這非常重要,因為你可以輕鬆地看到同一命令的多個示例消耗不同的內存量。雖然你無法在沒有顯示器的伺服器上看到這種情況,但是你已經注意到打開 Chrome 使你的系統速度變慢了。運行 top 命令以查看 Chrome 有多個進程在運行(每個選項卡一個 - 圖 1)。

圖1:top 命令中出現多個 Chrome 進程。

Chrome 並不是唯一顯示多個進程的應用。你看到圖 1 中的 Firefox 了嗎?那是 Firefox 的主進程,而 Web Content 進程是其打開的選項卡。在輸出的頂部,你將看到系統統計信息。在我的機器上(System76 Leopard Extreme[2]),我總共有 16GB 可用 RAM,其中只有超過 10GB 的 RAM 正在使用中。然後,你可以整理該列表,查看每個進程使用的內存百分比。

top 最好的地方之一就是發現可能已經失控的服務的進程 ID 號(PID)。有了這些 PID,你可以對有問題的任務進行故障排除(或 kill)。

如果你想讓 top 顯示更友好的內存信息,使用命令 top -o %MEM,這會使 top 按進程所用內存對所有進程進行排序(圖 2)。

圖 2:在 top 命令中按使用內存對進程排序

top 命令還為你提供有關使用了多少交換空間的實時更新。

free

然而有時候,top 命令可能不能滿足你的需求。你可能只需要查看系統的可用和已用內存。對此,Linux 還有 free 命令。free 命令顯示:

在終端窗口中,輸入 free 命令。它的輸出不是實時的,相反,你將獲得的是當前空閒和已用內存的即時快照(圖 3)。

圖 3 :free 命令的輸出簡單明了。

當然,你可以通過添加 -m 選項來讓 free 顯示得更友好一點,就像這樣:free -m。這將顯示內存的使用情況,以 MB 為單位(圖 4)。

圖 4:free 命令以一種更易於閱讀的形式輸出。

當然,如果你的系統是很新的,你將希望使用 -g 選項(以 GB 為單位),比如 free -g。

如果你需要知道內存總量,你可以添加 -t 選項,比如:free -mt。這將簡單地計算每列中的內存總量(圖 5)。

圖 5:為你提供空閒的內存列。

vmstat

另一個非常方便的工具是 vmstat。這個特殊的命令是一個報告虛擬內存統計信息的小技巧。vmstat 命令將報告關於:

使用 vmstat 的最佳方法是使用 -s 選項,如 vmstat -s。這將在單列中報告統計信息(這比默認報告更容易閱讀)。vmstat 命令將提供比你需要的更多的信息(圖 6),但更多的總是更好的(在這種情況下)。

圖 6:使用 vmstat 命令來檢查內存使用情況。

dmidecode

如果你想找到關於已安裝的系統內存的詳細信息,該怎麼辦?為此,你可以使用 dmidecode 命令。這個特殊的工具是 DMI 表解碼器,它將系統的 DMI 表內容轉儲成人類可讀的格式。如果你不清楚 DMI 表是什麼,那麼可以這樣說,它可以用來描述系統的構成(以及系統的演變)。

要運行 dmidecode 命令,你需要 sudo 權限。因此輸入命令 sudo dmidecode -t 17。該命令的輸出(圖 7)可能很長,因為它顯示所有內存類型設備的信息。因此,如果你無法上下滾動,則可能需要將該命令的輸出發送到一個文件中,比如:sudo dmidecode -t 17> dmi_infoI,或將其傳遞給 less 命令,如 sudo dmidecode | less。

圖 7:dmidecode 命令的輸出。

/proc/meminfo

你可能會問自己:「這些命令從哪裡獲取這些信息?」在某些情況下,它們從 /proc/meminfo文件中獲取。猜到了嗎?你可以使用命令 less /proc/meminfo 直接讀取該文件。通過使用 less 命令,你可以在長長的輸出中向上和向下滾動,以準確找到你需要的內容(圖 8)。

圖 8:less /proc/meminfo 命令的輸出。

關於 /proc/meminfo 你應該知道:這不是一個真實的文件。相反 /proc/meminfo 是一個虛擬文件,包含有關系統的實時動態信息。特別是,你需要檢查以下值:

如果你想使用 /proc/meminfo,你可以連接 egrep 命令使用它:egrep --color'Mem | Cache | Swap'/proc/meminfo。這將生成一個易於閱讀的列表,其中包含 Mem、 Cache 和 Swap 等內容的條目將是彩色的(圖 9)。

圖 9:讓 /proc/meminfo 更容易閱讀。

繼續學習

你要做的第一件事就是閱讀每個命令的手冊頁(例如 man top、man free、man vmstat、man dmidecode)。從命令的手冊頁開始,對於如何在 Linux 上使用一個工具,它總是一個很好的學習方法。

通過 Linux 基金會和 edX 的免費 「Linux 簡介」[3]課程了解有關 Linux 的更多知識。

via: https://www.linux.com/learn/5-commands-checking-memory-usage-linux

作者:Jack Wallen[5] 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關焦點

  • 在Linux中檢查可用內存的5種方法
    我們還知道,通過Linux命令行而不是圖形用戶界面可以更好地實現大多數與管理相關的任務。例如,伺服器主要在shell上工作,並且首先沒有可用的UI。由於最重要的是要檢查伺服器上的內存資源,因此最好學習可以幫助我們進行伺服器管理的相關命令。
  • 檢測Linux內存使用情況的free命令的10個
    確定物理內存和交換內存所有可用空間的最重要、也是唯一的方法是使用「free」命令。Linux 「free」命令可以給出類Linux/Unix作業系統中物理內存和交換內存的總使用量、可用量及內核使用的緩衝區情況。這篇文章提供一些各種參數選項的「free」命令,這些命令對於你更好地利用你的內存會有幫助。
  • free:一個在 Linux 中檢查內存使用情況的標準命令
    管理內存使用是 Linux 管理員又一個具有挑戰性的任務。free 是 Linux 中一個標準的並且被廣泛使用的命令,它被用來分析內存統計(空閒和已用)。今天,我們將要討論 free 命令以及它的一些有用選項。
  • 如何使用命令行檢查 Linux 上的磁碟空間 | Linux 中國
    使用的命令與連接驅動器的位置無關,僅僅與驅動器是否已經掛載好並且對作業系統可見有關。言歸正傳,讓我們來試試這些工具。dfdf 命令是我第一個用於在 Linux 上查詢驅動器空間的工具,時間可以追溯到 20 世紀 90 年代。它的使用和報告結果非常簡單。直到今天,df 還是我執行此任務的首選命令。此命令有幾個選項開關,對於基本的報告,你實際上只需要一個選項。
  • Linux 的 history 命令使用詳解
    history命令讀取歷史命令文件中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令文件。該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。history命令:是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。
  • 使用開源工具進行 Linux 內存取證 | Linux 中國
    計算機的作業系統和應用使用主內存(RAM)來執行不同的任務。這種易失性內存包含大量關於運行應用、網絡連接、內核模塊、打開的文件以及幾乎所有其他的內容信息,但這些信息每次計算機重啟的時候都會被清除。內存取證(Memory forensics)是一種從內存中找到和抽取這些有價值的信息的方式。Volatility 是一種使用插件來處理這類信息的開源工具。
  • 使用dstat檢查Linux系統性能
    想要對Linux系統進行快速性能檢查嗎? 您可能需要查看dstat命令。 Dstat提供了有關Linux系統性能的寶貴見解,幾乎取代了一系列舊工具,如vmstat,netstat,iostat和ifstat,它們具有結合其功能的靈活而強大的命令。使用這一個命令,您可以查看虛擬內存,網絡連接和接口,CPU活動,輸入/輸出設備等。
  • 5 個用於在 Linux 終端中查找域名 IP 地址的命令 | Linux 中國
    本教程將允許你一次檢查多個域。你可能已經使用過這些命令來驗證信息。但是,我們將教你如何有效使用這些命令在 Linux 終端中識別多個域的 IP 地址信息。可以使用以下 5 個命令來完成此操作。◈ dig 命令:它是一個用於查詢 DNS 名稱伺服器的靈活命令行工具。◈ host 命令:它是用於執行 DNS 查詢的簡單程序。
  • 宋牧春: Linux內核slab內存的越界檢查——SLUB_DEBUG
    可以使用如下命令編譯slabinfo工具(針對ARM64 architecture)。aarch64-linux-gnu-gcc -o slabinfo slabinfo.c當系統開機之後,就可以運行slaninfo –v命令觸發SLUB allocator檢測所有的object,並將log信息輸出到syslog。
  • Linux free 命令 - 顯示系統中空閒和已使用的內存
    其中一個重要的部分就是內存。當伺服器內存使用率過高時,它會降低伺服器的性能。Linux有一個稱為 free 的工具,來監控內存使用率。free 命令是什麼free 命令是一個顯示系統中空閒和已用內存大小的工具。free 命令的輸出和 top 命令相似。大多數Linux發行版已經含有 free 命令。
  • linux中echo命令的15個實際示例
    >輸出以下文本:rumenz is a community of Linux Nerds2.聲明一個變量並列印它的值。$ echo -e "rumenz \ris a community of Linux Nerds" is a community of Linux Nerds10.使用選項 \c和-e不換行輸出,\c後面的字符不顯示。
  • 檢查Linux系統內存及其使用情況的命令
    →「設為星標」  資訊丨乾貨丨入群 聯繫小E微信:SPOTO123456有許多辦法可以獲得Linux系統上所安裝內存的信息,並查看其中有多少內存正在使用中。有的命令會展示大量的細節,而有的命令則提供了簡潔(但不一定容易理解)的結果。在這篇文章中將介紹一些更有用的工具,幫助你檢查內存及其使用情況。
  • linux的常用命令(四)
    :rx:讀+執行 4.other用戶對dir的權限:rx:讀+執行 -rw-r--r-- 1 root root 0 Oct 16 19:14 file 1.文件 2.root對file的權限:rw:讀+寫 3.root組對file的權限:r:讀 4.other對file的權限:r:讀 權限分配: 1.數字式 chmod 755 /mnt 2.英文參數式 chmod
  • 使用 du 檢查 Linux 上已用的磁碟空間 | Linux 中國
    導讀:用 Linux 的 du 命令了解你正在使用多少磁碟空間。
  • Linux 系統中 sudo 命令的 10 個技巧 | Linux 中國
    1) 按如下所示編輯 /etc/sudoers 文件:$ sudo visudo2) 添加以下行來允許用戶 linuxtechi 有 sudo 權限:linuxtechi ALL=(ALL) ALL上述命令中:◈ 第一個 ALL 指示允許從任何終端、機器訪問 sudo◈ 第二個
  • Linux中的screen命令使用詳解
    您可以通過鍵入以下內容來檢查系統上是否安裝了它:linuxidc@linuxidc:~/www.linuxidc.com$ screen --versionScreen version 4.06.02 (GNU) 23-Oct-17如果您的系統上沒有安裝 screen ,則可以使用發行版的軟體包管理器輕鬆安裝。
  • 程式設計師必備的166個Linux命令!
    對於 Linux 系統來說,無論是中央處理器、內存、磁碟驅動器、鍵盤、滑鼠,還是用戶等都是文件, Linux 系統管理的命令是它正常運行的核心,與之前的 DOS 命令類似。linux 命令在系統中有兩種類型:內置 Shell 命令和 Linux 命令。。
  • Linux 運維必備 150 個命令匯總
    本文章盤點了 Linux 運維必備 150 個命令,請配合下面的網站使用。定位你需要使用的命令,然後去這個網站查詢詳細用法即可。gzip :gzip命令用於壓縮文件。gzip是個使用廣泛的壓縮程序,文件經它壓縮過後,其名稱後面會多出".gz"的擴展名。zip :zip命令可以用來將文件壓縮成為常用的zip格式。
  • Linux下查看內存的使用情況
    我想監視Linux系統的內存使用情況,在Linux下有哪些視圖或者命令行工具可用呢?在做Linux系統優化的時候,物理內存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監控寶貴的內存資源的使用情況。
  • 在 Linux 下 9 個有用的 touch 命令示例 | Linux 中國
    讓我們來看看 touch 命令的語法和選項:語法:# touch {選項} {文件}touch 命令中使用的選項:touch-command-options在這篇文章中,我們將介紹 Linux 中 9 個有用的 touch 命令示例。