Linux 檢視記憶體使用情況的幾種方法

ENG八戒發表於2023-04-20

*以下內容為本人的學習筆記,如需要轉載,請宣告原文連結 微信公眾號「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA

在執行 Linux 系統的過程中為了讓電腦或者伺服器以最佳水平執行,常常需要監控記憶體統計資訊。

那麼今天我們就來看看有哪些方法可以訪問所有相關資訊並幫助管理員監控記憶體統計資訊。

檢視或者獲取 Linux 中的記憶體使用情況既可以透過命令的方式,也可以透過桌面端的GUI程式檢視。

以下的過程,所有命令和結果都是使用 Linux 發行版 Ubuntu 18.04。

GUI 檢視

如果你使用的環境是帶有圖形介面的 Linux 版本,那麼必定是支援使用圖形介面進行伺服器管理的。那麼,記憶體使用情況的視覺化會使得某些資料集更加清晰自然。

如何訪問系統監視器:

  1. 導航到顯示應用程式。
  2. 在搜尋欄中輸入 System Monitor 並訪問該應用程式。
  3. 選擇資源選項卡。
  4. 顯示實時記憶體消耗的圖形概覽,包括歷史資訊。

命令獲取

虛擬檔案 /proc/meminfo

在 linux 系統中,/proc/meminfo 是一個報告可用和已用記憶體量的虛擬檔案,它包含有關係統記憶體使用情況以及核心使用的緩衝區和共享記憶體的實時資訊。根據所討論的計算機體系結構和作業系統版本,從該檔案讀取的輸出可能略有不同。

輸入指令

cat /proc/meminfo

指令返回

命令 free

在命令終端中鍵入 free

資料表示已用/可用記憶體和以KB為單位的交換記憶體大小。

total 總安裝記憶體
used 正在執行的程式當前正在使用的記憶體(used= total – free – buff/cache)
free 未使用的記憶體(free= total – used – buff/cache)
shared 多個程式共享的記憶體
buffers 作系統保留的記憶體,在程式需要時分配為緩衝區
cached 儲存在 RAM 中最近使用的檔案
buff/cache Buffers + Cache
available 可用於啟動新應用程式,無需交換的記憶體大小

和讀取 /proc/meminfo 檔案相比,free 命令提供的資訊較為精簡,但是它更容易理解。

為了更靈活輸出結果,free 命令可以新增多個選項標誌用來格式化輸出。下表列出了 free 命令最有用的選項標誌。

選項標誌 結果
-b 以 Byte 為單位輸出
-k 以 KB 為單位的輸出
-m 以 MB 為單位的輸出
-G 以 GB 為單位輸出
-l 詳細的低記憶體和高記憶體統計資訊
-o 舊格式(無 -/+緩衝區/快取行)
-t RAM + swap
-s 多少秒更新一次
-C 更新多少次

命令 vmstat

vmstat 命令是報告虛擬記憶體統計資訊的有用工具。它的返回提供有關程式、記憶體、分頁、塊 IO、捕獲和 CPU 活動的一般資訊。

這裡列舉一下每個值的解釋,方便大家在分析結果時查閱。

程式
r:等待執行時的程式數。
b:處於不可中斷睡眠狀態的程式數。

記憶體
swpd:使用的虛擬記憶體大小。
free:空閒記憶體大小。
buff:用作緩衝區的記憶體大小。
cache:用作快取的記憶體大小。

交換區
si:從磁碟換入的記憶體(/s) 。
so:交換到磁碟的記憶體(/s)。

IO 塊
bi:從塊裝置接收到的塊(塊/s)。
bo:傳送到塊裝置的塊(塊/s)。

系統
in:每秒中斷次數,包括時鐘。
cs:每秒上下文切換的次數。

CPU – 下面都是佔總 CPU 時間的百分比。
us:執行非核心程式碼所花費的時間(使用者時間,包括nice time)
sy:執行核心程式碼所花費的時間(系統時間)
id:空閒時間,在 Linux 2.5.41 之前,這包括 IO 等待時間。
wa:等待IO所花費的時間,在 Linux 2.5.41 之前,包含在 idle 中。
st:從虛擬機器竊取的時間,在 Linux 2.6.11 之前,未知。

命令 top

top 命令可用於檢查每個程式的記憶體和 CPU 使用情況等。包含有以下資訊:

正常執行時間
平均負荷
正在執行的任務數
登入使用者數
CPU 數量/CPU 利用率
記憶體/交換區的系統程式

top 命令輸入後,資料會不斷更新,這樣你可以實時跟蹤程式狀況。

透過 top 命令,除了看到基本的記憶體資訊外,還可以透過有限的互動介面和程式互操作。輸入 top 命令時還可以使用命令列選項來操縱和配置操作。

如果你需要了解關於 top 命令的所有可用選項的完整資訊,可以透過 Linux 中的 man top 命令檢視。

命令 htop

命令 htop 與命令 top 類似。但是,命令 htop 的真正優勢在於其使用者友好的操作環境和更強大的控制元件。

命令 htop 輸出包含顏色高亮,為程式提供完整的命令列,以及垂直和水平滾動的功能。

對照上圖

  1. 頂部區域提供摘要資訊幷包含圖形儀表和彙總資訊統計。
  2. 接下來的部分按程式組織了詳細資料,這樣您就可以輕鬆地對單個程式執行操作,支援滑鼠直接點選選中程式。
  3. 螢幕底部列出的快捷方式將使您能夠快速操作和配置程式,而省去輸入特定指令。

命令 htop 在這個發行版裡其實沒有預設安裝,如果發現指令不存在,可以透過下面的指令安裝

sudo apt install htop

學習可以等,時間不等人!

關注我,帶你學習程式設計領域更多核心技能!

相關文章