1. free 命令(查看内存总量及使用情况)
free -h # 以易读单位(GB/MB)显示内存信息
输出示例:
total used free shared buff/cache available
Mem: 7.7G 2.1G 3.2G 256M 2.4G 5.0G
Swap: 2.0G 512M 1.5G
- 关键字段:
-
total:总内存。 -
used:已用内存(包括缓存和缓冲区)。 -
free:完全空闲的内存。 -
available:实际可用内存(系统估算的可分配给新进程的内存)。 -
buff/cache:缓存和缓冲区占用的内存(可被快速释放)。
-
2. top 或 htop 命令(实时监控内存及进程)
top # 经典实时监控工具(按 `Shift+M` 按内存排序进程)
htop # 更友好的交互式工具(需安装:`sudo apt install htop`)
关键信息:
-
%MEM列:进程占用的物理内存百分比。 -
RES列:进程实际使用的物理内存大小(单位 KB/MB)。
3. vmstat 命令(查看虚拟内存统计)
vmstat -s # 显示详细内存统计(单位 KB/MB)
vmstat 1 # 每秒刷新一次内存、交换分区、IO 等状态
输出示例:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 0 524288 3245678 123456 2345678 0 0 12 34 45 67 10 5 85 0
4. /proc/meminfo 文件(查看详细内存信息)
cat /proc/meminfo # 显示系统内存的底层统计信息
关键字段:
-
MemTotal:总物理内存。 -
MemFree:完全空闲的内存。 -
Buffers:文件缓冲区占用的内存。 -
Cached:文件缓存占用的内存。 -
SwapTotal和SwapFree:交换分区总量和剩余量。
5. ps 命令(查看进程内存占用)
ps aux --sort=-%mem | head # 按内存占用排序显示前 10 的进程
输出示例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1234 2.3 15.6 1234567 890123 ? Ssl Oct01 10:00 /usr/sbin/mysqld
6. glances 工具(综合监控工具)
glances # 需安装:`sudo apt install glances`
- 提供图形化界面,实时显示内存、CPU、磁盘、网络等状态。
7. 查看交换分区(Swap)使用情况
swapon --show # 查看已启用的交换分区
free -h # 显示 Swap 总量和已用量
总结
-
快速查看内存总量:
free -h -
实时监控内存和进程:
top或htop -
详细内存统计:
cat /proc/meminfo -
排查内存泄漏:结合
ps和vmstat分析进程行为。