Linux系统如何查询内存使用情况?

在Linux系统中,内存是系统运行的核心资源之一,及时掌握内存使用情况对于系统性能优化、故障排查至关重要,Linux提供了多种命令和工具来查询内存使用状态,下面将详细介绍常用方法及其输出解读。

linux系统如何查询内存使用情况

使用free命令查看内存总量及使用情况

free是最基础的内存查看命令,通过读取/proc/meminfo文件生成易读的内存统计信息,适合快速了解系统内存整体使用状态。

基本用法

free
free -h  # 以人类可读格式显示(如KB、MB、GB)
free -m  # 以MB为单位显示

输出解读

free -h为例,输出包含两行(内存和交换分区)和多个列:

              total        used        free      shared  buff/cache   available
Mem:           7.7G        2.1G        3.2G        256M        2.4G        4.9G
Swap:          2.0G          0B        2.0G
  • total:物理内存总容量(如7.7G);
  • used:已使用内存(包含应用程序占用、共享内存、缓冲区等);
  • free:完全未被使用的内存(3.2G);
  • shared:被多个进程共享的内存(如tmpfs文件系统);
  • buff/cache:用于缓冲(buffers)和缓存(cached)的内存(2.4G),这部分可被程序回收;
  • available:可供新程序使用的内存总量(4.9G),包含可回收的buff/cache,是实际可用的内存参考值(比free更准确)。

注意

used并非仅指应用程序占用的内存,而是包含了系统内核缓冲区和缓存,因此判断内存是否紧张应重点关注available列,而非usedfree

使用top/htop命令动态监控内存使用

top是实时监控系统资源的工具,可按内存排序查看进程占用情况;htoptop的增强版,界面更友好,支持鼠标操作和树状进程视图。

linux系统如何查询内存使用情况

top命令用法

top  # 默认按CPU使用率排序,按Shift+M可按内存使用率排序

关键内存相关列

  • VIRT:进程虚拟内存总量(包括代码、数据、共享库、交换区等);
  • RES:进程常驻内存集(实际物理内存占用,不包括交换区);
  • SHR:进程共享内存(如与其他进程共享的库文件);
  • %MEM:进程物理内存占用率(RES/总物理内存×100%)。

htop命令优势

安装后(sudo apt install htop/sudo yum install htop),可通过颜色区分不同状态进程,按F6选择排序字段(如MEM%),按F5展开进程树,查看父子进程内存关系,更适合复杂场景。

使用vmstat命令查看内存流动状态

vmstat(Virtual Memory Statistics)可报告进程、内存、交换区、I/O等系统整体状态,适合分析内存压力和交换分区使用趋势。

基本用法

vmstat 1   # 每秒刷新一次,持续输出

关键内存相关字段

  • swpd:已使用的交换分区大小(KB);
  • free:空闲内存(KB);
  • buff:用于缓冲区的内存(KB);
  • cache:用于缓存的内存(KB);
  • si:从交换区读入内存的数据量(KB/s),反映交换区压力;
  • so:写入交换区的数据量(KB/s),若持续大于0,说明物理内存不足,频繁使用交换区会降低性能。

查看/proc/meminfo获取原始内存信息

/proc/meminfo是内核提供的内存原始数据文件,内容最详细,适合深度排查问题。

查看方式

cat /proc/meminfo

关键字段示例

  • MemTotal:物理内存总量;
  • MemFree:完全空闲内存;
  • Buffers:块设备缓冲区内存;
  • Cached:页面缓存(文件系统缓存);
  • SwapTotal:交换区分区总量;
  • SwapFree:交换区分区空闲量;
  • Slab:内核数据结构缓存(如inode、dentry缓存)。

示例输出片段

MemTotal:       8058956 kB
MemFree:        3341560 kB
Buffers:         245752 kB
Cached:         2514440 kB
SwapTotal:      2097148 kB
SwapFree:      2097148 kB

不同命令对比及适用场景

为方便选择,以下总结常用内存查看工具的特点:

linux系统如何查询内存使用情况

命令 主要功能 适用场景 常用选项
free 查看内存总量及使用分布 快速了解整体内存状态 -h(人类可读)、-m(MB)
top 实时监控进程内存占用 动态观察进程内存变化 Shift+M(按内存排序)
htop 增强版top,支持树状视图等 复杂进程内存分析 F6(排序)、F5(进程树)
vmstat 内存流动及交换区状态 分析内存压力和交换区使用趋势 1(持续刷新)
/proc/meminfo 原始内核内存数据 深度排查内存问题 无(直接查看文件内容)

相关问答FAQs

Q1:为什么free命令显示的可用内存(available)比MemFree小很多?
A:MemFree是内核完全未分配的物理内存,而available是内核评估的可供新程序使用的内存总量,包含了可回收的Cached(页面缓存)和Buffers(块缓冲区),Linux会优先使用空闲内存作为缓存,以提高文件读写性能,因此available通常远大于MemFree,是判断内存可用性的更准确指标,若available持续接近0,说明内存紧张,即使MemFree仍有剩余。

Q2:top和htop在内存监控上有什么区别?如何选择?
A:top是Linux基础工具,功能简单,仅支持键盘操作,界面较简陋,且无法直接查看进程树;htop是第三方增强工具,提供彩色界面、鼠标支持、进程树视图、实时进程过滤等功能,内存监控更直观,若只需快速查看进程内存占用,top足够;若需分析复杂进程关系(如查找内存泄漏的父子进程),或需要更友好的操作体验,推荐使用htop,安装htop可通过包管理器(如sudo apt install htopsudo yum install htop)。

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

(0)
酷番叔酷番叔
上一篇 2025年10月5日 12:40
下一篇 2025年10月5日 13:07

相关推荐

  • Linux环境下如何通过命令行断开指定在线用户的远程连接?

    在Linux系统中,管理在线用户是系统管理员的重要工作之一,合理断开异常或非必要的用户会话可以提高系统安全性和资源利用率,要断开在线用户,需先明确当前在线用户情况,再根据场景选择合适的命令操作,以下是详细步骤和注意事项,查看当前在线用户信息在断开用户前,需先确认用户的登录状态、终端类型、登录时间及IP地址等信息……

    2025年9月11日
    10400
  • Linux系统下安装WAS的具体步骤与注意事项是什么?方法详解

    在Linux系统中安装IBM WebSphere Application Server(WAS)需要遵循详细的步骤,包括环境准备、安装介质获取、安装过程配置及后续验证等,以下是具体操作指南:安装前环境准备系统要求WAS对操作系统、硬件及依赖组件有明确要求,需提前确认:操作系统:支持RHEL/CentOS 7.9……

    2025年9月17日
    10200
  • Linux库如何正确添加?高效开发必备技巧

    库的类型与识别静态库(.a 文件)编译时直接嵌入程序,生成独立可执行文件,命名格式:libxxx.a(如 libmath.a),动态库(.so 文件)运行时加载,多个程序共享,节省资源,命名格式:libxxx.so(如 libmath.so.1.0),添加库的4种方法方法1:复制到标准库路径(推荐系统级使用)步……

    2025年7月24日
    13500
  • Linux下如何破解WiFi密码?详细操作步骤与方法有哪些?

    在Linux系统中,针对WiFi密码的破解操作需严格遵循法律法规,仅限用于授权网络的安全测试或自家网络管理,未经授权入侵他人网络属违法行为,以下内容仅从技术原理角度介绍Linux环境下WiFi密码测试的流程及工具使用,请务必合法合规操作,准备工作硬件要求:需支持监听模式的无线网卡,常见型号如RTL8187L、A……

    2025年9月27日
    13100
  • Linux系统里如何配置OTG USB以实现设备连接?

    在Linux系统中配置OTG(On-The-Go)USB功能,可以让设备在主机(Host)和外设(Device)模式间灵活切换,实现如U盘互传、键盘鼠标连接、串口通信等场景,以下是详细的配置步骤,涵盖硬件准备、驱动加载、模式切换及实际应用场景,硬件准备与基础检查支持OTG的硬件主控芯片:需内置OTG控制器,常见……

    2025年9月22日
    13600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信