free -h
命令或查看/proc/meminfo
文件可快速查看Linux系统内存使用情况在Linux系统中,查看内存使用情况是日常运维和故障排查的重要操作,以下是多种查看内存状态的方法及详细解析:
命令行工具查询内存
-
- 基本用法:
free
命令是快速查看内存整体使用情况的最常用工具,它通过读取/proc/meminfo
文件汇总关键信息。 - 参数说明:
-h
:以人类可读的格式(如GB、MB)显示内存数值。-t
:增加总内存行,方便统计已用比例。
- 输出示例(执行
free -ht
):
| 字段 | 含义 |
|——————–|———————|
| total | 物理内存总量 |
| used | 已用内存(包含缓存)|
| free | 空闲内存 |
| shared | 共享内存 |
| buff/cache| 缓冲区与缓存 |
| available | 实际可用内存 | - 注意:Linux将”已用内存”计算为
total free
,但实际可用内存需结合available
字段(已扣除缓存和缓冲区)。
- 基本用法:
-
top/htop命令
- top:实时显示系统资源(CPU、内存、进程)状态,默认按
q
退出,按M
键可按内存使用排序进程。 - htop:增强版
top
,支持鼠标操作和垂直/水平滚动,需手动安装(如sudo apt install htop
)。 - 内存相关字段:
| 字段 | 含义 |
|——————|————————–|
| VIRT | 进程虚拟内存(含共享库) |
| RES | 常驻内存(实际占用) |
| SHR | 共享内存 |
- top:实时显示系统资源(CPU、内存、进程)状态,默认按
-
vmstat命令
- 用途:查看虚拟内存(swap)和磁盘I/O状态,适合分析内存交换频率。
- 示例:
vmstat -s
输出关键指标:628800 K total memory 542764 K used memory 85936 K free memory 204800 K swap cache 0 K buffer memory
- 重点字段:
used memory
为实际已用内存,swap cache
表示交换分区使用量。
-
/proc/meminfo文件
- 路径:直接查看
/proc/meminfo
,该文件动态更新内存信息,是free
等命令的数据源。 - 关键字段:
| 参数 | 描述 |
|————————|————————–|
| MemTotal | 物理内存总量 |
| MemFree | 未分配内存(不含缓存) |
| Buffers | 内核缓冲区(如网络数据) |
| Cached | 文件系统缓存 |
| SwapTotal | 交换分区总量 |
| Active | 活动内存(最近使用) |
| Inactive | 非活动内存(可回收) | - 查看方式:
cat /proc/meminfo | grep -E 'Mem|Swap'
可过滤关键信息。
- 路径:直接查看
图形化界面工具
- GNOME System Monitor
- 启动方式:在GNOME桌面环境中,通过应用菜单搜索“System Monitor”启动。
- 功能:可视化展示内存、CPU、网络使用曲线,支持按进程排序内存占用。
特殊场景查询
-
查看单个进程内存占用
- 命令:
ps aux --sort=-%mem
按内存占比排序进程。 - 示例输出:
USER PID %MEM ... COMMAND root 1 0.3 ... systemd user 1234 5.6 ... chrome
- 命令:
-
诊断内存泄漏
- 工具组合:使用
htop
观察异常进程,配合pmap <PID>
查看进程内存映射。
- 工具组合:使用
相关问答FAQs
-
Q:如何判断Linux系统是否内存不足?
A:关注以下指标:free
命令中available
值长期低于总内存10%;top
中Swap
列频繁出现大量使用;- 系统频繁触发OOM(Out Of Memory)机制杀死进程。
-
Q:如何查看某个进程的实际内存消耗?
A:使用ps
或htop
查看进程的RSS
(Resident Set Size)值,即实际物理内存占用。ps -o pid,rss,cmd <PID>
。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/69020.html