当前位置:

首页 > 系统应用 > Linux怎么查看具体的内存使用分类

Linux怎么查看具体的内存使用分类

/proc/meminfo 是唯一准确反映内存去向的来源,free 的 used 列语义混乱;应重点关注 MemA vailable、AnonPages、Shmem、Active/Inactive(file)、Buffers 等字段,避免误判内存占用。别信 free 的 used 行,直接看 /pr

/proc/meminfo 是唯一准确反映内存去向的来源,free 的 used 列语义混乱;应重点关注 MemA vailable、AnonPages、Shmem、Active/Inactive(file)、Buffers 等字段,避免误判内存占用。

Linux怎么查看具体的内存使用分类

别信 free 的 used 行,直接看 /proc/meminfo

在Linux系统中,想知道内存“被谁占了”,通过free命令输出的used列可没办法搞清楚。为啥呢?因为这个列在不同的内核版本里,含义根本不一样。在free v3.2.8版本中,它是total - free;而从v3.3.10版本开始,又变成了total - free - buff/cache。这就导致了同一个命令,在不同机器上显示的含义可能完全相反。

真正反映内存去向的,只有 /proc/meminfo 里的字段。它不是快照,而是内核实时维护的内存分类账本。运行:

cat /proc/meminfo

重点关注这些字段:

  • MemTotal:内核可支配的总物理内存(BIOS/固件/内核自身已扣减)
  • MemA vailable:最该盯住的数字——内核估算的、可立即分配给新进程的内存,含可回收的 page cache、slab reclaimable 等
  • AnonPages:匿名页(堆、栈、mmap 匿名映射),不能被简单丢弃,OOM 前必须 swap 或 kill 进程
  • Shmem:tmpfs / shared memory 占用,计入 Cached 但属于“伪缓存”,实际是应用数据,不可回收
  • Active(file) 和 Inactive(file):分别表示最近/不常访问的文件缓存页,后者更易回收
  • Buffers:块设备 I/O 的底层缓冲(如 ext4 journal),现代内核中通常极小

MemA vailable 看起来够用,但系统还是 OOM?查 Shmem 和 Unevictable

MemA vailable 是启发式估算值,不是硬保证。它假设 Active(file)、Inactive(file)、SReclaimable 都能顺利回收,但以下情况会让它严重偏高:

  • Shmem 占用大:比如 /dev/shm 下塞了几个 GB 的共享内存段,或容器挂载了大 tmpfs
  • Unevictable 内存存在:GPU 显存、mlock() 锁定的内存、某些驱动分配的不可换出页

遇到 MemA vailable 还剩几百 MB 却频繁触发 OOM killer,立刻执行:

grep -i "shmem|unevictable" /proc/meminfo
find /dev/shm /run -type f -size +1M 2>/dev/null | head -5
cat /proc/meminfo | grep -E "(AnonHugePages|HugePages_)"

区分 Cached 和 Buffers:一个管文件,一个管块设备

很多人把两者都叫“缓存”,但它们来源和行为完全不同:

  • Buffers:仅用于块设备 I/O 的元数据和临时缓冲(如磁盘扇区对齐、ext4 journal),现代内核中通常小于 10MB
  • Cached:来自 VFS 层的 page cache,缓存的是文件内容本身;它包含 Active(file) + Inactive(file) + 部分 Shmem,绝大部分可被回收(除非被 mlock() 或标记为 Unevictable)

注意:Cached 不等于 cat /proc/meminfo | awk '/^Cached:/ {print $2}' 的原始值——因为 Shmem 被重复计入了 Cached 和 Shmem 字段,直接相加会重复统计。

想脚本化分析?优先解析 /proc/meminfo,别 parse free 输出

free 的输出格式随版本和参数变化剧烈(列数、单位、是否含 shared、a vailable 是否存在),不适合写进监控脚本。而 /proc/meminfo 格式稳定、字段语义明确、无歧义。

例如,要获取当前可安全分配的内存(单位 KB):

awk '/^MemA vailable:/ {print $2}' /proc/meminfo

要计算真正被进程“实打实”占用的内存(排除所有可回收项):

awk '/^MemTotal:/ {t=$2} /^MemFree:/ {f=$2} /^Buffers:/ {b=$2} /^Cached:/ {c=$2} /^SReclaimable:/ {s=$2} /^Shmem:/ {sh=$2} /^MemA vailable:/ {a=$2} END {print "AnonReal: " t-f-b-c+s+sh}' /proc/meminfo

复杂点在于 Shmem 和 Unevictable 的干扰,它们让“可用”和“已用”的边界变得模糊——这恰恰是 Linux 内存管理的真实水平线,不是靠一个数字能概括的。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
系统应用
相关文章 更多
Windows10纯净安装清空全盘数据操作流程
Windows10纯净安装清空全盘数据操作流程

详解 Windows 10 自定义安装中清空目标硬盘全部分区的操作步骤。从数据备份、U盘启动到删除分区重建系统结构,提供安全的界面导览与注意事项,适合需要彻底重置电脑的用户。

1panel申请证书失败为啥及常见原因排查教程
1panel申请证书失败为啥及常见原因排查教程

遇到 1Panel 申请证书失败?本文通过界面区域导览,详细讲解 ACME 账户、DNS 账号权限、手动解析记录、HTTP 80 端口连通性及网站 SSL 配置等关键排查点,助你解决证书申请难题。

Windows10替换Win7系统完整迁移安装方案
Windows10替换Win7系统完整迁移安装方案

详细讲解如何将Windows 7系统替换为Windows 10,包括升级与全新安装的选择、关键数据备份、U盘启动盘制作、磁盘分区操作及驱动恢复步骤。注意Windows 10支持周期已结束,需做好安全规划。

windows系统安装教程详细步骤全过程图文指南
windows系统安装教程详细步骤全过程图文指南

详细讲解Windows系统安装步骤,包括使用Media Creation Tool制作启动U盘、BIOS/UEFI启动设置、磁盘分区选择及驱动激活检查。区分就地重装与全新安装,帮助用户安全完成系统部署。

如何在计算机上删除 linux 并安装 windows
如何在计算机上删除 linux 并安装 windows

想从 Linux 换回 Windows?本文详解制作安装介质、进入 BIOS/UEFI 启动菜单、删除 Linux 分区及安装 Windows 的全过程。重点提示数据备份与磁盘确认,避免误删其他硬盘数据。

objectdock安装配置教程详细步骤与设置方法
objectdock安装配置教程详细步骤与设置方法

学习如何安装和配置 ObjectDock,包括设置 Dock 位置、图标大小、自动隐藏、添加应用快捷方式、更换背景主题以及设置开机自启,打造高效美观的 Windows 桌面环境。

StartAllBack开机启动设置在哪里及设置方法
StartAllBack开机启动设置在哪里及设置方法

找不到StartAllBack开机启动选项?本文详解如何在Windows设置、任务管理器及启动文件夹中定位StartAllBack启动项,并验证其是否随系统自动运行,解决重启后界面恢复默认的问题。

windows显示语言为什么改不了中文及解决方法
windows显示语言为什么改不了中文及解决方法

遇到Windows界面无法切换为中文的情况?本文详解如何区分输入法与显示语言,排查单一语言版本限制,正确安装中文语言包并解决下载失败问题,助您快速恢复中文界面。

Windows10安装过程分区删除重建正确步骤
Windows10安装过程分区删除重建正确步骤

Windows 10 安装过程中遇到分区混乱或报错?本教程指导你如何在备份数据后,正确识别目标磁盘,匹配 UEFI/GPT 启动模式,并通过安装程序自动重建系统分区,确保全新安装顺利启动。

在线安装 - 1panel 文档 Linux安装步骤详解
在线安装 - 1panel 文档 Linux安装步骤详解

详解 1Panel 在 Linux 服务器上的在线安装步骤。涵盖环境检查、SSH 终端操作、官方脚本执行、Docker 依赖处理及浏览器访问配置,助您快速搭建运维管理面板。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Shapr3D macOS版
Shapr3D macOS版
Mac

Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。

REAPER macOS版
REAPER macOS版
Mac

REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。

Ableton Live macOS版
Ableton Live macOS版
Mac

Ableton Live 是面向音乐制作人与现场表演者的数字音频工作站,提供编曲视图、独具特色的现场视图、音频录制、MIDI创作、实时变速、乐器及效果器。Mac版原生支持Apple芯片,并可连接音频接口、MIDI控制器和第三方插件。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。