监控系统的内存使用情况是系统管理和性能优化的关键部分之一。在 Linux 环境下,有多种方法来实现对内存的监控和管理。本文将介绍 12 种常用的方法,涵盖了从基本的命令行工具到更高级的监控工具的使用,帮助您全面掌握系统的资源使用情况。
free 命令用于显示系统内存的使用情况,包括总内存、已使用内存、空闲内存等。
- free -h
示例输出:
- total used free shared buff/cache available
- Mem: 7.7G 3.1G 1.1G 1.2G 3.5G 2.3G
- Swap: 2.0G 0B 2.0G
top 命令可以实时查看系统的各项资源使用情况,包括内存、CPU、进程等。
- top
示例输出:
- Tasks: 257 total, 1 running, 256 sleeping, 0 stopped, 0 zombie
- %Cpu(s): 1.0 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- MiB Mem : 7818.7 total, 1174.9 free, 3291.9 used, 3352.0 buff/cache
- MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4183.2 avail Mem
vmstat 命令用于显示系统的虚拟内存使用情况,包括内存、磁盘、CPU 等。
- vmstat 1 5
示例输出:
- procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
- r b swpd free buff cache si so bi bo in cs us sy id wa st
- 1 0 0 1221008 330940 922332 0 0 0 1 13 19 0 0 100 0 0
sar 命令可以收集、报告和保存系统的性能数据,包括内存、CPU、磁盘等方面的信息。
- sar -r
示例输出:
- 08:10:01 PM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
- 08:20:01 PM 1259828 4397864 2285128 29.36 248272 3015904 2381884 15.59 2404508 2014540 52
- 08:30:01 PM 1243748 4381748 2302040 29.54 248672 3018064 2381884 15.59 2411572 2017944 60
/proc/meminfo 文件包含了系统的内存信息,可以通过查看该文件来获取内存使用情况。
- cat /proc/meminfo
示例输出:
- MemTotal: 7818180 kB
- MemFree: 1207196 kB
- MemAvailable: 4115164 kB
- Buffers: 329540 kB
- Cached: 2884056 kB
- SwapCached: 0 kB
pmap 命令用于显示进程的内存映射信息,包括进程占用的内存地址、权限、大小等。
- pmap PID
示例输出:
- 0000559b7ffac000 2060K r-x-- /usr/bin/bash
- 0000559b801cb000 244K r--s- /usr/lib/locale/locale-archive
- 0000559b801ff000 4K r---- /usr/lib/locale/locale-archive
- ...
- mapped: 202476K writeable/private: 456K shared: 4K
smem 命令用于以更友好的方式显示内存使用情况,并支持按照进程进行排序。
- smem
示例输出:
- PID User Command Swap USS PSS RSS
- 1 root /sbin/init 0.00% 0.00% 0.01% 0.01%
- 2 root [kthreadd] 0.00% 0.00% 0.00% 0.00%
- ...
- 2135 user /usr/bin/firefox 0.00% 0.51% 1.46% 3.13%
atop 命令是一个交互式的系统监控工具,可以显示系统资源使用情况的详细信息。
- atop
示例输出:
- ATOP - myhostname 2022/01/01 08:00:01 10s elapsed
- PR VIRT RES SHR S CPU% MEM% TIME+ COMMAND
- 1 2500 456 312 S 0.0 0.0 0:00.01 bash
htop 命令是一个交互式的系统监控工具,类似于 top 命令,但提供了更加友好的界面和功能。
- htop
glances 命令是一个交互式的系统监控工具,可以显示系统各项资源的使用情况,并支持网络监控和插件扩展。
- glances
Grafana 和 Prometheus 是一组流行的开源监控工具,可以实现对系统资源的监控和可视化。
还可以编写自定义的监控脚本,通过调用系统命令或读取/proc 文件系统来获取系统资源使用情况,并根据需求进行处理和展示。
通过以上 12 种方法,可以全面掌握 Linux 系统的内存使用情况,及时发现和解决资源瓶颈问题,确保系统的稳定性和性能表现。