Linux查询未使用物理内存方法
linux中如何查询哪块物理内存没有被使用
在Linux中,要查询物理内存的使用情况,可以通过以下方法进行分析:
1. 查看总体内存使用情况
使用 free
或 cat /proc/meminfo
查看系统内存的总体使用情况:
1 | free -h |
输出示例:
1 | total used free shared buff/cache available |
free
列:表示未被使用的物理内存。available
列:表示系统可用的内存(包括可回收的缓存)。
2. 分析伙伴系统(Buddy System)的空闲内存块
Linux内核通过伙伴系统管理物理内存页的分配。查看 /proc/buddyinfo
文件了解内存碎片情况:
1 | cat /proc/buddyinfo |
输出示例:
1 | Node 0, zone DMA 1 1 0 0 2 1 1 0 1 1 3 |
- 每一列表示对应阶数(order)的空闲连续页块数量(如第0阶为1页,第1阶为2页,依此类推)。
- 数值越大,表示该阶数的空闲连续内存块越多。
3. 查看物理内存地址分配
通过 /proc/iomem
文件查看物理内存区域的分配情况:
1 | cat /proc/iomem |
输出示例:
1 | 00000000-00000fff : Reserved |
System RAM
标记的区域是内核管理的可用物理内存。Reserved
或其他标记的区域可能被硬件或BIOS保留,未被系统使用。
4. 检查硬件安装的内存信息
使用 dmidecode
查看物理内存模块的详细信息:
1 | sudo dmidecode -t memory |
输出包括每个内存插槽的大小、类型和状态,可用于确认是否存在未被识别的内存。
5. 使用高级工具
- **
vmstat
**:查看内存、分页、块IO等统计。1
vmstat -s
- **
slabtop
**:实时显示内核slab缓存使用情况。1
slabtop
总结
- 空闲内存总量:通过
free
或/proc/meminfo
查看。 - 内存碎片情况:通过
/proc/buddyinfo
分析。 - 物理地址分配:通过
/proc/iomem
确认哪些区域为可用内存。 - 硬件信息:通过
dmidecode
验证物理内存模块状态。
如果需要具体的物理地址范围未被使用,需结合内核日志或调试工具(如 crash
)进行深入分析,但这通常适用于内核开发场景。普通用户关注 free
和 /proc/meminfo
即可了解内存使用概况。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Helloeuler!