/proc/meminfo 和 free 命令都用于查看 linux 系统的内存使用情况,但它们在使用方式、信息详细程度和输出格式上有显著区别:
1./proc/meminfo
- 位置:虚拟文件系统中的一个文件
- 访问方式:
cat /proc/meminfo或直接读取文件内容 - 特点:
- 提供最原始、最详细的内存统计数据
- 包含内核内存管理的所有关键指标
- 每行格式:
指标名: 值 kb - 需要用户自己计算可用内存等衍生指标
关键指标示例:
memtotal: 16302048 kb # 总物理内存 memfree: 1023408 kb # 完全空闲的内存 memavailable: 4567890 kb # 可用内存(估算) buffers: 123456 kb # 缓冲区内存 cached: 5678901 kb # 页面缓存 swapcached: 78901 kb # 交换缓存 ...
2.free命令
- 工具:用户空间的一个命令行工具
- 访问方式:
free、free -h(人类可读)、free -m(mb单位) - 特点:
- 解析并计算了
/proc/meminfo的数据 - 提供更直观的摘要视图
- 自动计算可用内存等关键指标
- 支持多种输出格式
- 解析并计算了
典型输出:
total used free shared buff/cache available mem: 15.5g 8.2g 1.0g 456m 6.3g 6.7g swap: 2.0g 345m 1.7g
主要区别对比
| 特性 | /proc/meminfo | free 命令 |
|---|---|---|
| 数据来源 | 内核直接提供 | 读取并解析 /proc/meminfo |
| 详细程度 | 非常详细(30+个指标) | 摘要视图(关键指标) |
| 计算需求 | 需要手动计算 | 自动计算可用内存等 |
| 易读性 | 原始数据,不易读 | 格式友好,支持单位转换 |
| 更新频率 | 实时(每次读取) | 实时(但可能缓存) |
| 使用场景 | 脚本编程、深度分析 | 快速查看、日常监控 |
关键概念解释
memavailable vs free 命令的 “available”
/proc/meminfo的memavailable:内核估算的实际可用内存(包含可回收的缓存)free命令的 “available”:直接使用memavailable的值(从内核 3.14 开始)
“used” 内存的计算
free 命令的 “used” 内存计算方式:
used = total - free - buffers - cache
(这比单纯看 memfree 更有意义,因为 linux 会充分利用空闲内存做缓存)
实际使用示例
查看详细内存信息(脚本友好):
cat /proc/meminfo | grep -e "^(memtotal|memfree|memavailable|buffers|cached)"
快速查看摘要(日常使用):
free -h
监控内存趋势:
# 使用 free 每2秒刷新 watch -n 2 free -h # 或使用更详细的监控 vmstat 2 5
建议
- 日常使用:用
free -h快速查看 - 脚本编程/调试:用
/proc/meminfo获取原始数据 - 性能分析:结合两者,并加上
vmstat、top等工具
两者本质上查看的是同一套数据,但 free 提供了更友好的用户界面,而 /proc/meminfo 提供了更底层的访问接口。
到此这篇关于linux使用/proc/meminfo和free命令查看内存信息的文章就介绍到这了,更多相关linux /proc/meminfo和free查看内存信息内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论