如何查看linux电脑内存使用情况
- Linux
- 2025-07-19
- 10
在Linux系统中,监控内存使用情况是保障系统稳定运行的重要操作,以下是几种常用的内存查看方法及工具,涵盖命令行和系统文件途径,适用于不同场景需求:
基础命令行工具
-
free命令
显示系统内存的整体使用情况,包括总内存、已用内存、空闲内存、缓冲区和交换分区等信息。
- 常用选项:
- free -h:以人类可读的格式(如GB、MB)显示内存数据。
- free -m:以MB为单位显示数值。
- free -s 5:每5秒刷新一次,实时监控内存变化。
- 输出示例:
| 字段 | 含义 |
|————-|——————-|
| total | 总内存 |
| used | 已用内存 |
| free | 空闲内存 |
| shared | 共享内存(多进程) |
| buff/cache | 缓冲区与缓存 |
| available | 可用内存(实际可分配)|
| swap | 交换分区 |
- 常用选项:
-
top/htop命令

- top:动态显示系统资源占用情况,默认按CPU使用率排序,可通过按下 M 键按内存使用率排序,或通过 Shift+O 自定义排序字段。
- htop:增强版top工具,支持鼠标操作、垂直/水平滚动条,并高亮显示进程树结构,适合新手。
- 关键列:
- RES:进程实际占用的物理内存。
- VIRT:进程虚拟内存(含交换分区)。
- SHR:共享内存(如库文件)。
-
vmstat命令
提供虚拟内存状态的统计信息,适合分析内存与IO瓶颈。
- 典型输出:
| 字段 | 含义 |
|————-|—————————-|
| swpd | 已使用的交换内存(KB) |
| free | 空闲内存(KB) |
| buffer | 缓冲区内存(KB) |
| cache | 页面缓存(KB) |
| usrs | 用户态CPU占用率(%) |
| sys | 内核态CPU占用率(%) |
- 常用选项:vmstat 2 每2秒刷新一次,监控短期趋势。
- 典型输出:
系统文件与进阶工具
-
/proc/meminfo文件
直接读取内核内存状态,内容比free更详细。
- 关键参数:
| 参数 | 含义 |
|———————|————————–|
| MemTotal | 总物理内存(KB) |
| MemFree | 空闲内存(KB) |
| Buffers | 缓冲区大小(KB) |
| Cached | 页面缓存(KB) |
| SwapTotal | 交换分区总大小(KB) |
| SwapFree | 空闲交换分区(KB) |
- 查看方式:cat /proc/meminfo | grep "Mem|Swap" 提取核心信息。
- 关键参数:
-
atop与smem工具

- atop:集成了top和vmstat的功能,支持按时间段统计内存使用趋势,适合长期监控。
- smem:专门用于分析内存分布,可显示进程的实际内存、共享内存及内核开销,适合排查内存泄漏。
-
实时监控
结合watch命令实现定时刷新:
watch -d -n 1 "free -h" # 每秒高亮显示内存变化 -
进程级内存分析

- 使用ps命令筛选特定进程: ps aux --sort=-%mem | head -n 10 # 按内存占用排序前10名
- 或通过top交互界面定位高消耗进程。
-
交换分区管理
- 当free命令中swap列持续增加时,可能需调整swappiness参数(通过修改/proc/sys/vm/swappiness),控制交换频率。
-
如何查看某个进程的内存占用细节?
使用pid配合smem或pmap命令。
-
如何释放被缓存占用的内存?
可手动同步缓存并清理:
sync; echo 3 > /proc/sys/vm/drop_caches # 清除页缓存、目录项和inode缓存
注意:此操作仅暂时增加free内存,实际数据仍在磁盘中,需谨慎使用。
场景化应用与优化
FAQs
通过以上工具和方法,可全面掌握Linux系统的内存使用情况,为性能