Linux内存使用异常如何速查?

free 命令(最常用)

作用:快速查看物理内存、交换空间(Swap)和内核缓冲区的使用情况。
常用参数

  • -h(人性化显示单位):free -h
  • -s [秒](定时刷新):free -h -s 5(每5秒刷新)

输出解析

              total    used    free    shared  buff/cache   available
Mem:           7.6G    2.1G    3.2G     123M        2.3G        5.0G
Swap:          2.0G     0B      2.0G
  • available:系统可用内存(含缓存可回收部分),是判断内存余量的关键指标。
  • buff/cache:被内核缓冲区(Buffer)和页面缓存(Cache)占用的内存,必要时可被释放。

tophtop 命令(动态监控)

作用:实时显示进程级内存占用,支持交互式排序。

  • 基础用法:直接运行 top,按 Shift+M 按内存使用排序。
  • 进阶工具htop(需安装,界面更友好):
    sudo apt install htop  # Debian/Ubuntu
    sudo yum install htop  # CentOS/RHEL
    htop

    关键列

  • %MEM:进程占用物理内存百分比。
  • RES:实际使用的物理内存(单位KB)。
  • VIRT:虚拟内存总量(含共享库和Swap)。

解析 /proc/meminfo(底层数据源)

作用:所有内存命令的数据均来源于此文件,提供最详细的内存统计。
查看方式

cat /proc/meminfo

核心字段

  • MemTotal:总物理内存。
  • MemFree:完全未使用的内存。
  • Cached:页面缓存(加速文件读写)。
  • SwapTotalSwapFree:交换空间总量与剩余量。
  • Shmem:共享内存(如tmpfs)。

专业提示/proc/meminfo 中的 MemAvailablefree 命令中 “available” 的原始数据,反映系统真实可用内存。


vmstat 命令(分析内存趋势)

作用:监控内存、Swap、I/O和CPU的实时变化,适合诊断性能瓶颈。
示例

vmstat -w -S M 1  # 每1秒刷新,以MB为单位显示

输出关键列

  • swpd:已用Swap大小。
  • free:空闲物理内存。
  • buffcache:缓冲区与缓存用量。
  • si(swap in)/ so(swap out):Swap交换频率,持续不为0可能预示内存不足。

smem 命令(按用户统计)

作用:按用户或进程聚合内存占用,需安装:

sudo apt install smem  # Debian/Ubuntu
sudo yum install smem  # CentOS/RHEL

常用示例

smem -u  # 按用户汇总内存
smem -p -P firefox  # 查看Firefox相关进程的内存

glances(全能监控工具)

作用:图形化终端仪表盘,集成内存、CPU、磁盘等监控。
安装与使用:

pip install glances
glances

在Linux系统中,监控内存使用情况是系统管理和故障排查的核心任务之一。以下是几种专业且高效的方法,结合常用命令和系统文件,帮助您全面掌握内存状态,

界面中 MEM 部分直观展示使用率、Swap及进程排行。


场景化推荐

  • 快速概览free -h
  • 诊断卡顿top(观察高内存进程)
  • 深挖瓶颈vmstat 结合 si/so
  • 开发调试smem/proc/meminfo

为什么关注内存指标?

  • 物理内存不足 → 触发Swap交换,显著降低性能。
  • 缓存(Cache)占用高 → 通常是正常优化,非问题。
  • Available值过低(如 <10%)→ 需及时扩容或优化应用。

ℹ️ 注意:Linux会充分利用空闲内存作缓存,“free” 值低不代表内存紧张,”available” 才是关键。


引用说明: 参考 Linux man 手册(man freeman top)、Kernel.org /proc文档及 Ubuntu Server 最佳实践指南,命令兼容主流发行版(Ubuntu, CentOS, RHEL等)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8020.html

(0)
酷番叔酷番叔
上一篇 2025年7月19日 20:26
下一篇 2025年7月19日 20:38

相关推荐

  • 如何查linux版本

    Linux系统中,可通过命令”cat /etc/os-release”或”lsb_release

    2025年8月15日
    14200
  • Linux终端如何打开程序?

    Linux终端作为Linux系统的核心交互工具,不仅能高效执行命令,还能灵活启动和管理各类程序,无论是图形界面应用还是命令行工具,掌握终端启动方法能显著提升操作效率,本文将从基础命令到高级技巧,详细说明Linux终端打开程序的多种方式,帮助用户应对不同场景需求,基础打开命令:通用与桌面环境特定工具xdg-ope……

    2025年8月26日
    14900
  • 终端死循环卡屏?速解妙招在此!

    在Linux系统中,死循环通常指因代码逻辑错误(如while true未设退出条件)或命令执行异常导致的进程持续占用资源且无法正常退出的情况,以下是针对不同场景的解决方案,操作前请务必确认目标进程,避免误杀系统关键进程,快捷键强制退出按下组合键 Ctrl + C(发送 SIGINT 信号),大多数前台进程会立即……

    2025年6月13日
    17800
  • 如何安装linux7.3系统

    安装镜像、启动盘,设置BIOS从启动盘启动,进入安装界面按提示操作,选择

    2025年8月18日
    14300
  • linux 如何返回上级目录

    Linux 中,使用 `cd ..

    2025年8月18日
    14600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信