题目
如何查看Linux系统中内存使用情况?
信息
- 类型:问答
- 难度:⭐
考点
Linux内存管理,性能监控工具,基础命令
快速回答
查看Linux系统内存使用的主要方法:
- 使用
free -h命令查看内存总量、使用量和缓存情况 - 通过
top或htop命令实时监控进程内存占用 - 查看
/proc/meminfo文件获取详细内存数据 - 关键指标:可用内存(available)、缓存(cache)、交换空间(swap)
一、核心命令详解
1. free 命令(推荐)
$ free -h
total used free shared buff/cache available
Mem: 7.7Gi 2.1Gi 1.2Gi 123Mi 4.4Gi 5.2Gi
Swap: 2.0Gi 0B 2.0Gi- total:物理内存总量
- available:真正可用内存(含缓存可回收部分)
- buff/cache:内核缓冲区+页面缓存(可被快速回收)
- -h 参数:人性化显示单位(GiB/MiB)
2. top/htop 命令
$ top
MiB Mem : 7852.2 total, 1176.8 free, ...
MiB Swap: 2048.0 total, 2048.0 free- 实时刷新显示内存和进程数据
- 按
M按内存排序进程 htop提供更友好的交互界面(需安装)
3. /proc/meminfo 文件
$ grep -E 'MemTotal|MemFree|MemAvailable|Swap' /proc/meminfo
MemTotal: 8050448 kB
MemFree: 1205120 kB
MemAvailable: 5324560 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB二、关键指标解读
| 指标 | 说明 | 健康标准 |
|---|---|---|
| available | 应用可用内存 | >20% total |
| swap used | 交换空间使用量 | 持续>0需警惕 |
| buff/cache | 缓存占用 | 高值正常(可回收) |
三、最佳实践
- 优先关注 available而非 free(free低但available高属正常)
- 定期监控命令:
watch -n 5 'free -h'(每5秒刷新) - 排查内存泄漏:连续执行
free观察 used 是否持续增长 - 交换空间使用:Swap频繁读写说明物理内存不足
四、常见错误
- ❌ 误判:看到 free 内存少就认为内存不足(忽略缓存可回收)
- ❌ 混淆:buffers(块设备缓存) vs cache(文件页缓存)
- ❌ 遗漏:未检查 Swap 使用导致OOM(Out-Of-Memory)风险
五、扩展知识
- 内存回收机制:内核通过kswapd守护进程回收缓存
- OOM Killer:内存耗尽时自动终止进程的机制
- 高级工具:
-vmstat 2(查看内存/交换活动)
-smem -s swap(进程内存排序)