Linux如何查看系统空闲内存大小
Linux查看空闲内存应关注`free-h`的available列,它包含可回收缓存,真实反映可用内存水位。若该值持续低于总内存10%,需结合`ps`、`vm swappiness`等排查内存问题。
先说一个核心判断:判断系统空闲内存,别被 free 列里那个数字骗了。实际上,大多数人都被它误导过——真正值得盯的,是 a vailable 列。这个值才是内核估算的、不用触发 OOM killer 就能分配的内存总量,而且它已经把可回收的 buff/cache 算进去了,能真实反映当前可用的内存水平。

所以,别只看 free 输出里的 free 列——它不是你真正能用的空闲内存,多数时候这个值严重误导人。
为什么 free 命令的 free 列不准
原因不复杂:Linux 内核会把大量“暂时用不上”的内存划给 buffers 和 cache,比如文件读写缓存、目录索引等等。这部分内存随时可以回收回去,但 free 列只统计完全没有被分配出去的页面,根本不包含这些可回收的缓存。所以你经常会看到这样的场景:free 列只剩几百 MB,而 a vailable 列却显示几 GB——后者才是你启动新进程时真正能拿到手的。
free:纯空闲页,几乎不会接近 0,不代表真实可用性。a vailable:内核估算的、无需触发 OOM killer 就能立即分配的内存,包含可回收的缓存。buff/cache高 ≠ 内存紧张,反而是系统在高效利用资源。
free -h 中必须盯住的字段是 a vailable
执行 free -h 之后,直接看第一行 Mem: 对应的 a vailable 值:
total used free shared buff/cache a vailableMem: 15G 6.2G 844Mi 1.1G 7.9G 7.4GSwap: 2.0G 256Mi 1.8G
上例中,a vailable: 7.4G 才是你此刻能安全分配给新程序的内存。如果这个值持续低于总内存的 10%(比如 15G 总内存下 a vailable 跌到 1.5G 以下),那就需要认真排查了。
- 加
-h是必须的,避免单位混淆(KB/MB/GB)。 - 不要用
-m或-g硬指定单位,-h自动适配更可靠。 - 容器环境或低内存设备中,
a vailable可能被 cgroup 限制,需结合cat /sys/fs/cgroup/memory/memory.usage_in_bytes核对。
当 a vailable 值异常低时,下一步查什么
如果 a vailable 持续偏低,说明物理内存确实吃紧。但原因未必是某个大进程——可能是缓存无法释放、内存泄漏或内核参数限制在作祟。
- 先用
ps aux --sort=-%mem | head -5快速定位内存大户。 - 检查是否启用了
vm.swappiness=0:这会让内核拒绝回收缓存,导致a vailable虚低(尤其在数据库场景中常见)。 - 运行
cat /proc/meminfo | grep -E "^(MemA vailable|MemFree|Cached|SReclaimable)",确认MemA vailable与free输出一致,排除工具版本差异。 swapon --show=USED查 Swap 是否已启用并占用——一旦 SwapUsed > 0,基本可以判定物理内存已经不足。
真正决定系统是否“快撑不住”的,从来不是 free 列那个冷冰冰的数字,而是内核动态维护的 a vailable 值——它背后是页回收机制、LRU 链表、cgroup 限额等一系列实时决策。盯着 a vailable,比反复刷新 top 更早发现问题。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何用Linux查看网络数据包在内核的流向
tcpdump在链路层入口后、IP层解析前捕获,可看到MAC地址等头部;perf配合kprobe可跟踪skb在内核中的函数调用路径; proc net snmp等文件通过协议栈丢包计数反映流向瓶颈;iptablesTRACE仅在netfilter钩子打日志,不适合追踪真实流向。需交叉验证多种工具。
如何在CentOS 7中修改文件系统配额的具体操作步骤
修改XFS文件系统配额时,需先在 etc fstab挂载点启用uquota或gquota选项,然后重新挂载文件系统使配额生效。之后以xfs_quota-x专家模式为用户或组设置软硬限制。修改后务必执行report命令验证,并检查输出确保限制值已写入且用量被正确统计。
Linux查看具体硬件驱动列表的命令
在Linux系统中,查看硬件驱动列表,可使用lsmod命令查看已加载模块(但内置驱动不显示),使用lspci-k命令查看PCI设备当前驱动,使用lsusb-t命令查看USB设备驱动。需特别注意驱动与固件缺失问题,使用dmesg|grepfirmware命令可辅助排查驱动和固件缺失。
电脑0x800401f3无效类字符串系统底层报错解决
错误0x800401f3无效的类字符串,因系统找不到COM组件注册信息或权限不足导致。需先定位出错组件的ProgID,检查注册表HKEY_CLASSES_ROOT下对应项是否存在,若缺失则使用regsvr32命令重新注册对应的DLL文件,再修改ProgID及CLSID子项的权限,赋予Everyone完全控制,最后重启IIS服务或相关应用程序池使更改生效。
统信UOS更换系统图标包详细教程
统信UOS更换系统图标包可通过三种途径实现:控制中心直接切换已安装主题、手动复制图标包至用户目录并更新缓存、使用深度商店一键安装。三种方式分别适合不同技术能力的用户,均能即时生效,提升操作效率与视觉体验。
- 热门数据榜
相关攻略
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:18
2026-07-10 07:18
2026-07-10 07:18
2026-07-10 07:18
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

