导读 在做 Linux 系统优化的时候,物理内存是其中最重要的一方面。自然的,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

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 等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。

原文来自:https://stor.51cto.com/art/201804/570236.htm

本文地址:https://www.linuxprobe.com/linux-look-mem.html编辑:问题终结者,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/