Linux使用/proc/meminfo和free命令查看内存信息

 更新时间:2026年01月20日 09:03:08   作者:学亮编程手记  
/proc/meminfo和free都是Linux系统查看内存使用情况的工具,但free更直观易用,而/proc/meminfo提供了更底层的详细数据,下面小编为大家详细说说Linux使用/proc/meminfo和free命令查看内存信息的方法,需要的朋友可以参考下

/proc/meminfofree 命令都用于查看 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命令

  • 工具:用户空间的一个命令行工具
  • 访问方式freefree -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/meminfofree 命令
数据来源内核直接提供读取并解析 /proc/meminfo
详细程度非常详细(30+个指标)摘要视图(关键指标)
计算需求需要手动计算自动计算可用内存等
易读性原始数据,不易读格式友好,支持单位转换
更新频率实时(每次读取)实时(但可能缓存)
使用场景脚本编程、深度分析快速查看、日常监控

关键概念解释

MemAvailable vs free 命令的 “available”

  • /proc/meminfoMemAvailable:内核估算的实际可用内存(包含可回收的缓存)
  • 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 获取原始数据
  • 性能分析:结合两者,并加上 vmstattop 等工具

两者本质上查看的是同一套数据,但 free 提供了更友好的用户界面,而 /proc/meminfo 提供了更底层的访问接口。

到此这篇关于Linux使用/proc/meminfo和free命令查看内存信息的文章就介绍到这了,更多相关Linux /proc/meminfo和free查看内存信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux Centos7断网下安装应用程序详解

    linux Centos7断网下安装应用程序详解

    在本篇文章里小编给大家整理的是关于linux最新版本Centos7,断网情况下安装应用程序相关步骤,需要的朋友们可以学习下。
    2019-08-08
  • Linux find命令的高级用法和多级目录查找实战

    Linux find命令的高级用法和多级目录查找实战

    在日常 Linux 开发和运维中,find 是一个非常强大的文件搜索工具,除了简单的按文件名查找,它还能按目录、大小、时间、权限,甚至执行批量操作,本文结合实际案例,带你全面掌握 find 的高级用法
    2025-12-12
  • linux网络配置工具的使用

    linux网络配置工具的使用

    这篇文章主要介绍了linux网络配置工具的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • vscode连接远程Linux服务器及免密登陆的详细步骤

    vscode连接远程Linux服务器及免密登陆的详细步骤

    这篇文章主要介绍了vscode连接远程Linux服务器及免密登陆,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Linux服务器SSH客户端连接目标服务器失败的解决方法

    Linux服务器SSH客户端连接目标服务器失败的解决方法

    Linux服务器SSH客户端连接目标服务器失败怎么办?在出现问题时我们先用排除法查找原因,以下是根据几种情况列出的解决方法,希望可以帮助到你,需要的朋友可以参考下
    2025-10-10
  • 2026新版Ubuntu安装Docker(20.10+)和Docker Compose全过程

    2026新版Ubuntu安装Docker(20.10+)和Docker Compose全过程

    本文详细介绍了如何在Ubuntu系统上安装和配置Docker及其Compose,包括配置镜像加速源、安装Docker和DockerCompose、设置环境变量以及使用DockerCompose管理多容器应用
    2026-02-02
  • 详解从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS

    详解从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS

    Ubuntu 16.04 (Xerial Xerus) Long Term Support版于最近发布了。要想了解它的新功能和新特性,就必须升级或安装这个新系统。本文介绍了从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS。
    2016-12-12
  • Linux进程地址空间的使用及说明

    Linux进程地址空间的使用及说明

    Linux进程地址空间通过VMA和mm_struct管理,包含代码段、数据段、堆栈、mmap等区域,利用页表实现隔离,处理缺页异常,支持匿名与文件映射,系统调用如brk/mmap用于内存分配与管理
    2025-08-08
  • centos 7系统下安装Jenkins的步骤详解

    centos 7系统下安装Jenkins的步骤详解

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,下面这篇文章主要给大家介绍了关于在centos 7系统下安装Jenkins的步骤,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • 详解在Linux系统中如何识别和解决端口占用问题

    详解在Linux系统中如何识别和解决端口占用问题

    在日常的 Linux 系统管理和开发过程中,端口占用是一个常见且令人头疼的问题,无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行,本文将详细介绍在 Linux 系统中如何识别和解决端口占用问题,需要的朋友可以参考下
    2025-01-01

最新评论