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如何快速进入MySQL?

    前提条件安装MySQL服务若未安装MySQL,先执行以下命令:Ubuntu/Debian: sudo apt updatesudo apt install mysql-serverCentOS/RHEL: sudo yum install mysql-serversudo systemctl start mys……

    2025年6月27日
    7200
  • Linux下运行脚本文件的具体方法是什么?

    在Linux系统中,脚本文件是实现自动化操作的重要工具,通过编写脚本可以批量执行命令、简化重复任务,运行脚本文件需要遵循一定的步骤,包括脚本创建、权限设置及执行方式等,以下是详细操作流程和注意事项,创建脚本文件首先需要使用文本编辑器创建脚本文件,常见的编辑器有vim、nano、gedit等,以bash脚本为例……

    2025年9月23日
    4800
  • 如何利用Linux系统进行股票交易?环境搭建、工具选择与方法指南?

    在Linux环境下炒股,需要结合系统特性搭建一套完整的交易工具链,涵盖数据获取、策略分析、交易执行等环节,Linux的稳定性、安全性和开源特性使其成为量化交易和自动化策略的理想平台,但相比Windows,部分券商官方软件可能存在兼容性问题,需通过替代方案实现功能,以下是具体操作步骤和工具推荐,选择适合的Linu……

    2025年9月17日
    4600
  • Linux编译中.o文件为何不可或缺?

    .o文件的本质作用:.o文件是源代码经编译、汇编后生成的可重定位目标文件(Relocatable Object File),包含:机器指令(二进制代码)全局变量和函数的符号表重定位信息(供链接器调整地址)特点:不可直接执行,需通过链接器与其他.o文件或库合并生成可执行文件,生成.o文件的核心步骤预处理(Prep……

    2025年6月15日
    8700
  • Linux端口如何开启?

    开放端口前的准备确认需要开放的端口号HTTP服务:80/TCPHTTPS服务:443/TCPSSH服务:22/TCP自定义服务:如3000/TCP检查端口是否已被监听运行命令查看当前监听端口的服务:sudo ss -tuln | grep LISTEN# 或使用传统命令sudo netstat -tuln……

    2025年7月10日
    8000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信