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系统中,别名(Alias)是一个非常有用的功能,它允许用户为常用的命令或命令组合设置简短的自定义名称,从而减少重复输入、提高命令行操作效率,将ls -alF设置为别名ll,后续只需输入ll即可实现相同功能,本文将详细介绍Linux中别名的设置方法、持久化配置、高级用法及注意事项,帮助用户全面掌握别名……

    2025年9月16日
    9600
  • Linux命令行下如何翻页查看长文本内容?

    在Linux命令行操作中,处理长文本文件(如日志文件、配置文件、代码文件等)时,由于终端屏幕高度有限,无法一次性显示全部内容,因此需要翻页功能来逐页查看,常见的翻页方式主要通过more、less、cat结合管道等命令实现,不同工具的功能和操作方式有所差异,下面详细介绍具体使用方法,基础分页工具:more命令mo……

    2025年9月18日
    1.3K00
  • Linux如何拷贝文件到本地?

    在Linux系统中,将文件拷贝到本地是日常运维和开发中的常见操作,涵盖同一主机内的文件复制以及从远程主机下载文件到本地两种核心场景,不同场景下需根据文件大小、目录结构、网络环境等因素选择合适的方法,本文将详细解析各类拷贝命令的语法、参数及使用技巧,本地文件拷贝:基础命令与进阶用法同一主机内的文件拷贝主要依赖cp……

    2025年9月8日
    10700
  • Linux如何查看内存使用率?常用命令及详细步骤有哪些?

    在Linux系统中,内存管理是系统性能优化的核心环节,准确查看内存使用率是判断系统负载、排查性能问题的关键,本文将详细介绍Linux系统中查看内存使用率的多种方法,包括常用命令、参数解析及适用场景,帮助用户全面掌握内存监控技巧,使用free命令快速查看内存概览free是最基础的内存查看命令,通过读取/proc……

    2025年9月8日
    8700
  • Linux服务安装成功的正确步骤是什么?

    在Linux系统中,服务的安装与管理是系统运维的核心任务之一,所谓“服务安装成功”,通常指将应用程序或系统功能配置为系统服务,使其能够通过systemd等服务管理工具统一控制(如启动、停止、重启、开机自启等),并确保服务进程稳定运行、资源合理分配,本文将详细说明Linux服务安装的完整流程、关键配置及验证方法……

    2025年10月5日
    10200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信