Linux中檢查內存使用情況的命令
Linux操作系統包含大量工具,所有這些工具都可以幫助您管理系統。從簡單的文件和目錄工具到非常復雜的安全命令,在Linux上沒有太多不能做的事情。而且,雖然普通桌面用戶可能不需要在命令行熟悉這些工具,但他們對於Linux管理員來說是強制性的。為什麽?首先,你需要在某個時候使用無GUI的Linux服務器。其次,命令行工具通常比其替代方案提供更多的功能和靈活性。
確定內存使用率是一項技能,您可能需要一個特定的應用程序和系統內存。發生這種情況時,知道您有多種工具可以幫助您排除故障,這很方便。或者,也許您需要收集有關Linux交換分區的信息或有關您安裝的RAM的詳細信息?還有一些命令。讓我們深入了解各種Linux命令行工具,以幫助您檢查系統內存使用情況。這些工具並非難以使用,在本文中,我會向您展示五種解決問題的方法。
我將在UbuntuServer18.04平臺上進行演示。但是,您應該在您選擇的發行版中找到所有這些命令。更好的是,你不需要安裝一件東西(因為大多數這些工具都包含在內)。
我想用最明顯的工具開始。命令提供了一個正在運行的系統的一個動態的,實時的圖。包含在該系統摘要中的是能夠按照每個進程檢查內存使用情況。這非常重要,因為您可以輕松地對同一命令進行多次叠代,消耗不同數量的內存。雖然你不會在服務器上找到它,但是說你已經打開了Chrome並註意到你的系統變慢了。發出頂級命令以查看Chrome有多個進程正在運行(每個選項卡一個-圖1)。
圖1:出現在頂部命令中的Chrome的多個實例。
Chrome並不是唯一顯示多個進程的應用程序。你看到圖1中的Firefox條目?這是Firefox的主要流程,而WebContent流程是開放的標簽。在輸出的頂部,您會看到系統統計信息。在我的機器上,我總共有16GB可用RAM,其中剛剛超過10GB。然後,您可以梳理整個列表並查看每個進程正在使用的內存百分比。
其中一件事頂部是被發現,可能已經失去控制服務的進程ID(PID)號碼非常好。使用這些PID,您可以設置故障排除(或殺死)違規任務。
如果你想讓top變得更友善一些,請發出命令top-o%MEM,這會導致top按所用內存對所有進程進行排序(圖2)。
圖2:頂部使用的內存排序過程。
該頂部命令也給你多少你的交換空間正在使用的實時更新。
然而,有時候,頂端可能會滿足您的需求。您可能只需查看系統上可用和已用內存的數量。為此,有免費的命令。自由命令顯示:
可用和已用物理內存總量
系統中交換內存的總量
內核使用的緩沖區和緩存
在終端窗口中,免費發布命令。該命令的輸出不是實時的。相反,您將獲得的是當時免費和已用內存的即時快照(圖3)。
圖3:free命令的輸出簡單明了。
當然,您可以通過添加-m選項來免費更方便用戶,如下所示:free-m。這將以MB為單位報告內存使用情況(圖4)。
圖4:以更易讀的形式輸出free命令。
當然,如果你的系統甚至是遠程現代的,你可能想要使用-g選項(千兆字節),就像free-g一樣。
如果你需要內存總數,你可以像這樣添加t選項:free-mt。這將簡單地總計列中的內存量(圖5)。
圖5:為您提供免費的總內存列。
另一個非常方便的工具是vmstat。這個特殊的命令是報告虛擬內存統計信息的一招小馬。該vmstat的命令將在報告統計:
流程
記憶
分頁
塊IO
陷阱
磁盤
中央處理器
發出vmstat的最好方法是使用-s開關,如vmstat-s。這將在單個列中報告您的統計信息(比默認報告更容易閱讀)。該的vmstat命令會給你更多的信息比你需要(圖6),但更多的是總是更好(在這種情況下)。
圖6:使用vmstat命令檢查內存使用情況。
如果你想了解有關已安裝的系統RAM的詳細信息,該怎麽辦?為此,您可以使用dmidecode命令。這個特定的工具是DMI表格解碼器,它將系統的DMI表格內容轉儲為可讀格式。如果您不確定DMI表的內容,則可以用它來描述系統的構成(以及系統可能的演變)。
要運行dmidecode命令,您確實需要sudo權限。所以發出命令sudodmidecode-t17。命令的輸出(圖7)可能很長,因為它顯示所有內存類型設備的信息。因此,如果您無法滾動,可能需要將該命令的輸出發送到文件中,如下所示:sudodmidecode-t17>dmi_infoI,或者將其輸入less命令,如sudodmidecode。
圖7:dmidecode命令的輸出。
你可能會問自己:“這些命令從哪裏得到這些信息?”。在某些情況下,他們從/proc/meminfo文件中獲取它。你猜怎麽了?您可以使用less/proc/meminfo命令直接讀取該文件。通過使用less命令,您可以通過冗長的輸出上下滾動以準確找到您需要的內容(圖8)。
圖8:less/proc/meminfo命令的輸出。
有一件事你應該知道/proc/meminfo:這不是一個真正的文件。相反/pro/meminfo是一個虛擬文件,其中包含有關系統的實時動態信息。特別是,您需要檢查以下值:
MemTotal
MemFree
MemAvailable
緩沖區
緩存
SwapCached
SwapTotal
SwapFree
如果你想使用/proc/meminfo,你可以像egrep命令一樣使用它:egrep--color‘Mem|Cache|Swap‘/proc/meminfo。這將產生一個易於閱讀的包含Mem,Cache和Swap...的所有條目的列表(圖9)。
圖9:使/proc/meminfo更易於閱讀。
保持學習,你應該做的第一件事情之一是閱讀每個命令的手冊頁。(黑客周刊)
Linux中檢查內存使用情況的命令