總結Linux下檢視記憶體使用情況的多種方法

安全劍客發表於2020-08-15
在做   系統最佳化的時候,實體記憶體是其中最重要的一方面。自然的,Linux 也提供了非常多的方法來監控寶貴的記憶體資源的使用情況。下面的清單詳細的列出了 Linux 系統下透過檢視工具或 行來檢視記憶體使用情況的各種方法。
1./proc/meminfo

檢視 RAM 使用情況最簡單的方法是透過  /proc/meminfo。這個動態更新的虛擬檔案實際上是許多其他記憶體相關工具 (如:free / ps / top) 等的組合顯示。 /proc/meminfo 列出了所有你想了解的記憶體的使用情況。程式的記憶體使用資訊也可以透過  /proc//statm 和  /proc//status 來檢視。

$ cat /proc/meminfo 
MemTotal:        8010436 kB
MemFree:         7514008 kB
MemAvailable:    7567204 kB
Buffers:             872 kB
Cached:           282844 kB
SwapCached:            0 kB
Active:           213156 kB
Inactive:         111632 kB
Active(anon):      41264 kB
Inactive(anon):    32888 kB
Active(file):     171892 kB
Inactive(file):    78744 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                32 kB
Writeback:             0 kB
AnonPages:         41088 kB
Mapped:            35936 kB
Shmem:             33080 kB
Slab:              66888 kB
SReclaimable:      48120 kB
SUnreclaim:        18768 kB
KernelStack:        1872 kB
PageTables:         2788 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4005216 kB
Committed_AS:     272452 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       22136 kB
VmallocChunk:   34359707388 kB
HardwareCorrupted:     0 kB
AnonHugePages:      4096 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       79740 kB
DirectMap2M:     3065856 kB
DirectMap1G:     7340032 kB
2.atop

atop  是一個終端環境的監控命令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標註。

$ sudo atop

總結Linux下檢視記憶體使用情況的多種方法總結Linux下檢視記憶體使用情況的多種方法

3.free

free 命令是一個快速檢視記憶體使用情況的方法,它是對 /proc/meminfo 收集到的資訊的一個概述。

$ free -h
4.GNOME System Monitor

GNOME System Monitor 是一個顯示最近一段時間內的 CPU、記憶體、交換區及網路的使用情況的檢視工具。它還提供了一種檢視 CPU 及記憶體使用情況的方法。

$ gnome-system-monitor
5.htop

htop 命令顯示了每個程式的記憶體實時使用率。它提供了所有程式的常駐記憶體大小、程式總記憶體大小、共享庫大小等的報告。列表可以水平及垂直滾動。

$ htop
6.KDE System Monitor

功能同 4 中介紹的 GENOME 版本。

$ ksysguard
7.memstat

memstat 是一個有效識別 executable(s), process(es) and shared libraries 使用虛擬記憶體情況的命令。給定一個程式 ID,memstat 可以列出這個程式相關的可執行檔案、資料和共享庫。

$ memstat -p
8.nmon

nmon 是一個基於 ncurses 的系統基準測試工具,它可以監控 CPU、記憶體、I/O、檔案系統及網路資源等的互動模式。對於記憶體的使用,它可以實時的顯示總 / 剩餘記憶體、交換空間等資訊。

$ nmon
9.ps

ps 命令可以實時的顯示各個程式的記憶體使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (totalamount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort” 選項對程式進行排序,例如按 RSS 進行排序:

$ ps aux | sort -rss

圖8:Linux下檢視記憶體使用情況方法總結

10.smem

smem 命令允許你統計基於 / proc 資訊的不同程式和使用者的記憶體使用情況。記憶體使用情況的分析可以匯出圖表(如條形圖和餅圖)。

 smem  -P sshd -k
  PID User     Command                         Swap      USS      PSS      RSS 
  815 root     /usr/sbin/sshd                     0   868.0K   951.0K     1.3M 
14104 root     sshd: root@pts/0                   0     2.8M     3.5M     5.3M 
14292 root     python /usr/bin/smem -P ssh        0     5.1M     5.8M     7.2M
11.top

top 命令提供了實時的執行中的程式的資源使用統計。你可以根據記憶體的使用和大小來進行排序。

$ top
12.vmstat

vmstat 命令顯示實時的和平均的統計,覆蓋 CPU、記憶體、I/O 等內容。例如記憶體情況,不僅顯示實體記憶體,也統計虛擬記憶體。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2712067/,如需轉載,請註明出處,否則將追究法律責任。

相關文章