在運行 Linux 系統的過程中為了讓電腦或者伺服器以最佳水平運行,常常需要監控記憶體統計信息。今天我們就來看看都有那些方法可以查看記憶體信息。 ...
*以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA
在運行 Linux 系統的過程中為了讓電腦或者伺服器以最佳水平運行,常常需要監控記憶體統計信息。
那麼今天我們就來看看有哪些方法可以訪問所有相關信息並幫助管理員監控記憶體統計信息。
查看或者獲取 Linux 中的記憶體使用情況既可以通過命令的方式,也可以通過桌面端的GUI程式查看。
以下的過程,所有命令和結果都是使用 Linux 發行版 Ubuntu 18.04。
GUI 查看
如果你使用的環境是帶有圖形界面的 Linux 版本,那麼必定是支持使用圖形界面進行伺服器管理的。那麼,記憶體使用情況的可視化會使得某些數據集更加清晰自然。
如何訪問系統監視器:
- 導航到顯示應用程式。
- 在搜索欄中輸入 System Monitor 並訪問該應用程式。
- 選擇資源選項卡。
- 顯示實時記憶體消耗的圖形概覽,包括歷史信息。
命令獲取
虛擬文件 /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 輸出包含顏色高亮,為進程提供完整的命令行,以及垂直和水平滾動的功能。
對照上圖
- 頂部區域提供摘要信息並包含圖形儀錶和彙總信息統計。
- 接下來的部分按進程組織了詳細數據,這樣您就可以輕鬆地對單個進程執行操作,支持滑鼠直接點擊選中進程。
- 屏幕底部列出的快捷方式將使您能夠快速操作和配置進程,而省去輸入特定指令。
命令 htop 在這個發行版里其實沒有預設安裝,如果發現指令不存在,可以通過下麵的指令安裝
sudo apt install htop
學習可以等,時間不等人!
關註我,帶你學習編程領域更多核心技能!