共計 4531 個字符,預計需要花費 12 分鐘才能閱讀完成。
這篇“linux 查看內存使用情況的命令怎么用”文章的知識點大部分人都不太理解,所以丸趣 TV 小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“linux 查看內存使用情況的命令怎么用”文章吧。
命令有:1、free 命令,可顯示系統內存狀態,包括物理、內存和共享內存和系統緩存的使用情況;2、“cat /proc/meminfo”命令,可讀取“/proc/meminfo”文件的內容,顯示內存使用情況;3、vmstat 命令,可用來監控 CPU 使用、進程狀態等信息;4、top 命令;5、htop
命令;6、sar 命令;7、smem 命令;8、glances
命令;9、ps_mem
命令。
我們經常需要檢查服務器的內存使用情況,以及每個進程占用的內存,避免發生資源短缺進而影響用戶體驗。
對于網站和 Web 服務,必須具有足夠的內存才能處理客戶端請求。如果內存不足,在請求高峰時就會變得緩慢,擁堵,甚至服務崩潰。當然桌面系統也是同樣的道理。
內存的管理和優化,是 Linux 系統性能優化的重要組成部分,換句話說,內存資源是否充足,會直接影響應用系統(包含操作系統和應用程序)的使用性能。
下面介紹幾個系統命令,通過它們,可以快速查看 Linux 系統中內存的使用狀況。
1. 使用 free 命令
free 命令是 Linux 系統中最簡單和最常用的內存查看命令。
free 命令用來顯示系統內存狀態,包括系統物理內存、虛擬內存(swap 交換分區)、共享內存和系統緩存的使用情況
示例如下:
free -m
free -h
其中,-m 選項是以 MB 為單位來展示內存使用信息; -h 選項則是以人類 (human) 可讀的單位來展示。
上面的示例中, Mem: 這一行:
total 表示總共有 7822MB 的物理內存(RAM),即 7.6G。
used 表示物理內存的使用量,大約是 322M。
free 表示空閑內存;
shared 表示共享內存?;
buff/cache 表示緩存和緩沖內存量; Linux 系統會將很多東西緩存起來以提高性能,這部分內存可以在必要時進行釋放,給其他程序使用。
available 表示可用內存;
輸出結果很容易理解。Swap 這一行表示交換內存,從示例中的數字可以看到,基本上沒使用到交換內存。
2. 查看 /proc/meminfo
另一種方法是讀取 /proc/meminfo 文件。我們知道, /proc 目錄下都是虛擬文件,包含內核以及操作系統相關的動態信息。
$ cat /proc/meminfo
MemTotal: 8010408 kB
MemFree: 323424 kB
MemAvailable: 6956280 kB
Buffers: 719620 kB
Cached: 5817644 kB
SwapCached: 132 kB
Active: 5415824 kB
Inactive: 1369528 kB
Active(anon): 385660 kB
Inactive(anon): 249292 kB
Active(file): 5030164 kB
Inactive(file): 1120236 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194304 kB
SwapFree: 4193580 kB
Dirty: 60 kB
Writeback: 0 kB
AnonPages: 247888 kB
Mapped: 61728 kB
Shmem: 386864 kB
Slab: 818320 kB
SReclaimable: 788436 kB
SUnreclaim: 29884 kB
KernelStack: 2848 kB
PageTables: 5780 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8199508 kB
Committed_AS: 942596 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 22528 kB
VmallocChunk: 34359707388 kB
HardwareCorrupted: 0 kB
AnonHugePages: 88064 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 176000 kB
DirectMap2M: 6115328 kB
DirectMap1G: 4194304 kB
重點關注這些數據:
MemTotal, 總內存
MemFree, 空閑內存
MemAvailable, 可用內存
Buffers, 緩沖
Cached, 緩存
SwapTotal, 交換內存
SwapFree, 空閑交換內存
提供的信息和 free 命令看到的差不多。
3. 使用 vmstat 命令
vmstat 命令,是 Virtual Meomory Statistics(虛擬內存統計)的縮寫,可用來監控 CPU 使用、進程狀態、內存使用、虛擬內存使用、硬盤輸入 / 輸出狀態等信息。
使用 vmstat -s 命令和選項,可以對內存使用情況進行統計,類似于 /proc/meminfo。
示例如下:
vmstat -s
最前面的幾行,顯示了內存總量,使用量,以及空閑內存等信息。
4. 使用 top 命令
top 命令一般用于查看進程的 CPU 和內存使用情況;當然也會報告內存總量,以及內存使用情況,所以可用來監控物理內存的使用情況。
在輸出信息的頂部展示了匯總信息。
示例輸出:
top - 15:20:30 up 6:57, 5 users, load average: 0.64, 0.44, 0.33
Tasks: 265 total, 1 running, 263 sleeping, 0 stopped, 1 zombie
%Cpu(s): 7.8 us, 2.4 sy, 0.0 ni, 88.9 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 8167848 total, 6642360 used, 1525488 free, 1026876 buffers
KiB Swap: 1998844 total, 0 used, 1998844 free, 2138148 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2986 enlighte 20 0 584m 42m 26m S 14.3 0.5 0:44.27 yakuake
1305 root 20 0 448m 68m 39m S 5.0 0.9 3:33.98 Xorg
7701 enlighte 20 0 424m 17m 10m S 4.0 0.2 0:00.12 kio_thumbnail
各種操作系統提供的參數略有不同,一般來說都可以根據 CPU 和內存來排序。
例如:
# CentOS
top -o %MEM
top -o %CPU
# mac
top -o mem
top -o cpu
碰到不清楚的,請使用 top -h 查看幫助信息。
重點關注頂部的 KiB Mem 和 KiB Swap 這兩行。表示內存的總量、使用量,以及可用量。
buffer 和 cache 部分,和 free 命令展示的差不多。
5. 使用 htop
命令
htop
命令是 Linux/Unix 系統的交互式進程查看器。它是一個文本模式應用程序,需要 ncurses 庫,它是由 Hisham 開發的。它被設計為頂級命令的替代方法。這類似于 top 命令,但允許您垂直和水平滾動以查看運行系統的所有進程。htop
帶有 Visual Colors,它具有額外的好處,并且在跟蹤系統性能時非常明顯。可以自由地執行與進程相關的任何任務,例如進程終止和重新設置,而無需輸入其 PID。
與 top 命令類似,但 htop
還展示了其他的各種信息, 而且支持彩色顯示。
htop
頂部的消息顯示了 CPU 使用率, 以及 RAM 和交換內存的使用情況。
如果沒安裝,可以使用類似的命令:
yum install htop
-y
6. 使用 sar 命令
sar 命令也可以用來監控 Linux 的內存使用狀況,通過“sar -r”組合可以查看系統內存和交換空間的使用率。
sar 命令很強大,是分析系統性能的重要工具之一,通過該命令可以全面地獲取系統的 CPU、運行隊列、磁盤讀寫(I/O)、分區(交換區)、內存、CPU 中斷和網絡等性能數據。
如下是執行“sar -r”命令的輸出結果:
sar -r 2 3
此輸出結果中,各個參數表示的含義如下:
kbmemfree:表示空閑的物理內存的大小;
kbmemeused:表示已使用的物理內存的大小;
%memused:表示已使用內存占總內存大小的百分比;
kbbuffers:表示緩沖區所使用的物理內存的大小;
kbcached:表示告訴緩存所使用的物理內存的大小;
kbcommit 和 %commit:分別表示當前系統中應用程序使用的內存大小和百分比;
相比 free 命令,sar 命令的輸出信息更加人性化,不僅給出了內存使用量,還給出了內存使用的百分比以及統計的平均值。比如說,僅通過 %commit 一項就可以得知,當前系統中的內存資源充足。
7. 使用 smem 命令
smem 是一個工具,可以提供大量 Linux 系統內存使用情況的報告。與現有工具不同,smem 可以報告比例集大小(PSS)、唯一集大小(USS)和常駐集大小(RSS)。成比例集大小(PSS):指虛擬內存系統中庫和應用程序使用的內存量。唯一集大小(USS):未共享的內存報告為 USS(唯一集大小)。駐留集大小(RSS):物理內存(通常在多個應用程序之間共享)使用情況的標準度量(稱為駐留集大小(RSS))將大大高估內存使用量。注:如果執行以下命令提示未找到,請執行“yum install smem”安裝
smem -tk
8. 使用 glances
命令
glances
是用 Python 編寫的跨平臺系統監控工具。可以查看所有信息,例如 CPU 使用情況,內存使用情況,正在運行的進程,網絡接口,磁盤 I / O,Raid,傳感器,文件系統信息,Docker,系統信息,正常運行時間等.
glances
9. 使用 ps_mem
命令
ps_mem
是一個簡單的 Python 腳本,允許您準確地獲取 Linux 中程序的核心內存使用情況。這可以確定每個程序(而不是每個進程)使用多少 RAM。它計算每個程序使用的內存總量,總計 = 總和(程序進程的專用 RAM)+ 總和(程序進程的共享 RAM)。計算共享 RAM 存在問題,并且該工具會自動為正在運行的內核選擇最準確的方法。
ps_mem
注:如果執行以下命令提示未發現,請執行“yum install ps_mem
”安裝
以上就是關于“linux 查看內存使用情況的命令怎么用”這篇文章的內容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注丸趣 TV 行業資訊頻道。