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通过防火墙(如firewalld、iptables、ufw)控制端口访问,开启端口需两个核心步骤:修改防火墙规则:允许外部流量通过目标端口,确保服务监听:相关应用需绑定到该端口(如Nginx监听80端口),操作步骤(根据防火墙工具选择)方法1:使用 firewall……

    2025年6月14日
    5700
  • linux如何查看文件内容

    在Linux系统中,查看文件内容是日常操作中最频繁的任务之一,无论是配置文件、日志文件还是文本数据,都需要通过合适的命令来快速定位和阅读信息,Linux提供了多种查看文件内容的命令,每种命令都有其独特的功能和适用场景,掌握这些命令能显著提升工作效率,本文将详细介绍这些命令的使用方法、核心选项及实际应用场景,基础……

    2025年9月22日
    1900
  • 从U盘安装Linux系统需哪些步骤?

    从U盘安装Linux系统是许多新手体验Linux的首选方式,整个过程需要准备工具、制作启动盘、设置BIOS并完成安装,以下是详细步骤:准备工作硬件要求:一台可正常启动的电脑(建议8GB以上内存,至少20GB可用磁盘空间),一个8GB以上U盘(U盘内数据会被清空,提前备份重要文件),软件准备:Linux镜像文件……

    2025年9月16日
    2000
  • Linux系统下如何通过命令重启防火墙服务?

    Linux防火墙是系统安全的第一道防线,用于控制进出网络的数据流,保护系统免受未授权访问,在实际运维中,当防火墙规则配置修改、服务异常或策略需要即时生效时,重启防火墙是常见操作,但不同Linux发行版使用的防火墙工具不同,重启方法也存在差异,本文将详细介绍主流防火墙的重启步骤、注意事项及常见问题解决方案,主流L……

    2025年9月23日
    1700
  • Linux 7如何重装Linux?详细步骤与方法指南

    重装Linux系统(以CentOS 7为例)是解决系统故障、升级版本或清理数据的常用操作,整个过程需谨慎操作,避免数据丢失,以下是详细步骤及注意事项:准备工作重装前需完成以下准备,确保操作顺利:备份重要数据:将用户目录(/home)、配置文件(如/etc/nginx、/etc/my.cnf)、应用数据(数据库……

    2025年9月28日
    1600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信