您好,登錄后才能下訂單哦!
這篇文章主要介紹Linux如何檢查內存使用情況,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
我想從最常用的工具開始。top 命令提供正在運行的系統的實時動態視圖,它檢查每個進程的內存使用情況。這非常重要,因為你可以輕松地看到同一命令的多個示例消耗不同的內存量。雖然你無法在沒有顯示器的服務器上看到這種情況,但是你已經注意到打開 Chrome 使你的系統速度變慢了。運行 top 命令以查看 Chrome 有多個進程在運行(每個選項卡一個 – 圖 1)。
圖1:top 命令中出現多個 Chrome 進程。
Chrome 并不是唯一顯示多個進程的應用。你看到圖 1 中的 Firefox 了嗎?那是 Firefox 的主進程,而 Web Content 進程是其打開的選項卡。在輸出的頂部,你將看到系統統計信息。在我的機器上(),我總共有 16GB 可用 RAM,其中只有超過 10GB 的 RAM 正在使用中。然后,你可以整理該列表,查看每個進程使用的內存百分比。
top 最好的地方之一就是發現可能已經失控的服務的進程 ID 號(PID)。有了這些 PID,你可以對有問題的任務進行故障排除(或 kill)。
如果你想讓 top 顯示更友好的內存信息,使用命令 top -o %MEM,這會使 top 按進程所用內存對所有進程進行排序(圖 2)。
圖 2:在 top 命令中按使用內存對進程排序
top 命令還為你提供有關使用了多少交換空間的實時更新。
然而有時候,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 命令將報告關于:
進程
內存
分頁
阻塞 IO
中斷
磁盤
CPU
使用 vmstat 的最佳方法是使用 -s 選項,如 vmstat -s。這將在單列中報告統計信息(這比默認報告更容易閱讀)。vmstat 命令將提供比你需要的更多的信息(圖 6),但更多的總是更好的(在這種情況下)。
圖 6:使用 vmstat 命令來檢查內存使用情況。
如果你想找到關于已安裝的系統內存的詳細信息,該怎么辦?為此,你可以使用 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 文件中獲取。猜到了嗎?你可以使用命令 less /proc/meminfo 直接讀取該文件。通過使用 less 命令,你可以在長長的輸出中向上和向下滾動,以準確找到你需要的內容(圖 8)。
圖 8:less /proc/meminfo 命令的輸出。
關于 /proc/meminfo 你應該知道:這不是一個真實的文件。相反 /proc/meminfo 是一個虛擬文件,包含有關系統的實時動態信息。特別是,你需要檢查以下值:
全部內存(MemTotal)
空閑內存(MemFree)
可用內存(MemAvailable)
緩沖區(Buffers)
文件緩存(Cached)
交換緩存(SwapCached)
全部交換區(SwapTotal)
空閑交換區(SwapFree)
如果你想使用 /proc/meminfo,你可以連接 egrep 命令使用它:egrep --color'Mem | Cache | Swap'/proc/meminfo。這將生成一個易于閱讀的列表,其中包含 Mem、 Cache 和 Swap 等內容的條目將是彩色的(圖 9)。
以上是“Linux如何檢查內存使用情況”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。