*以下內容為本人的學習筆記,如需要轉載,請宣告原文連結 微信公眾號「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA
在執行 Linux 系統的過程中為了讓電腦或者伺服器以最佳水平執行,常常需要監控記憶體統計資訊。
那麼今天我們就來看看有哪些方法可以存取所有相關資訊並幫助管理員監控記憶體統計資訊。
檢視或者獲取 Linux 中的記憶體使用情況既可以通過命令的方式,也可以通過桌面端的GUI程式檢視。
以下的過程,所有命令和結果都是使用 Linux 發行版 Ubuntu 18.04。
如果你使用的環境是帶有圖形介面的 Linux 版本,那麼必定是支援使用圖形介面進行伺服器管理的。那麼,記憶體使用情況的視覺化會使得某些資料集更加清晰自然。
在 linux 系統中,/proc/meminfo 是一個報告可用和已用記憶體量的虛擬檔案,它包含有關係統記憶體使用情況以及核心使用的緩衝區和共用記憶體的實時資訊。根據所討論的電腦架構和作業系統版本,從該檔案讀取的輸出可能略有不同。
輸入指令
cat /proc/meminfo
指令返回
在命令終端中鍵入 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 命令是報告虛擬記憶體統計資訊的有用工具。它的返回提供有關程序、記憶體、分頁、塊 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 命令可用於檢查每個程序的記憶體和 CPU 使用情況等。包含有以下資訊:
正常執行時間
平均負荷
正在執行的任務數
登入使用者數
CPU 數量/CPU 利用率
記憶體/交換區的系統程序
top 命令輸入後,資料會不斷更新,這樣你可以實時跟蹤程序狀況。
通過 top 命令,除了看到基本的記憶體資訊外,還可以通過有限的互動介面和程序互操作。輸入 top 命令時還可以使用命令列選項來操縱和設定操作。
如果你需要了解關於 top 命令的所有可用選項的完整資訊,可以通過 Linux 中的 man top 命令檢視。
命令 htop 與命令 top 類似。但是,命令 htop 的真正優勢在於其使用者友好的操作環境和更強大的控制元件。
命令 htop 輸出包含顏色高亮,為程序提供完整的命令列,以及垂直和水平捲動的功能。
對照上圖
命令 htop 在這個發行版裡其實沒有預設安裝,如果發現指令不存在,可以通過下面的指令安裝
sudo apt install htop
學習可以等,時間不等人!
關注我,帶你學習程式設計領域更多核心技能!