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

相关推荐

  • Ubuntu安装常见问题如何解决?

    在Linux服务器上搭建PHP环境是部署动态网站的基础步骤,以下以Ubuntu 22.04和CentOS 7为例,提供两种主流方案的详细流程(LAMP:Linux + Apache + MySQL + PHP),所有操作需通过SSH连接服务器执行,准备工作更新系统# Ubuntusudo apt update……

    2025年6月17日
    7000
  • linux上如何使用.pfx

    在Linux系统中使用.pfx文件(通常包含私钥、服务器证书及中间证书链)时,需先将其转换为Linux工具(如Nginx、Apache、OpenSSL等)兼容的PEM格式,再根据场景配置使用,以下是详细步骤及注意事项,.pfx文件简介与转换必要性.pfx(Personal Information Exchang……

    2025年9月16日
    5400
  • Linux下如何升级JDK版本?

    在Linux系统中升级JDK(Java Development Kit)是开发环境中常见的操作,通常为了获得新版本特性、安全补丁或性能优化,以下是详细的升级步骤,涵盖备份、下载、安装、配置及验证等环节,适用于大多数Linux发行版(如Ubuntu、CentOS等),升级前的准备工作备份旧版本JDK升级前建议备份……

    2025年9月20日
    4700
  • 如何制作Linux U盘启动盘?

    准备工作硬件要求容量≥8GB的U盘(建议USB 3.0,速度更快)另一台可正常运行的电脑(Windows/macOS/Linux)稳定网络(用于下载系统镜像)软件与资源Linux镜像:从Ubuntu官网或Fedora官网下载ISO文件(推荐Ubuntu LTS版,稳定性高),启动盘制作工具:Windows:Ru……

    2025年8月3日
    5700
  • Linux环境下如何判断当前是否已成功连接FTP服务器?

    在Linux系统中,判断是否成功连接到FTP服务器是网络管理、服务器运维和日常开发中的常见需求,FTP(File Transfer Protocol)作为一种传统的文件传输协议,其连接状态可通过多种工具和方法进行验证,涵盖命令行交互、网络状态检查、日志分析等多个维度,本文将详细介绍这些方法,帮助用户全面掌握Li……

    2025年8月23日
    5900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信