Linux如何查看内存使用率?常用命令及详细步骤有哪些?

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

linux如何查看内存使用率

使用free命令快速查看内存概览

free是最基础的内存查看命令,通过读取/proc/meminfo文件,直观展示系统内存的总体使用情况,其基本用法如下:

free [-h|-m|-g] [-s]

参数说明:

  • -h:以人类可读格式显示(如KB、MB、GB),默认单位为KB;
  • -m/-g:分别以MB/GB为单位显示;
  • -s N:每N秒刷新一次,适合动态监控(如free -s 2)。

输出示例(以free -h为例):

              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       2.1Gi       4.2Gi       128Mi       1.4Gi       5.3Gi
Swap:         2.0Gi          0B       2.0Gi

字段解析:

  • total:物理内存总容量;
  • used:已使用内存(包含应用程序占用、内核缓冲、缓存等);
  • free:完全未被使用的内存;
  • shared:被多个进程共享的内存(如tmpfs);
  • buff/cache:缓冲区(buff)和缓存(cache)内存,属于可回收内存;
  • available实际可用内存(重点!包含free + 可回收的buff/cache),是判断内存是否紧张的核心指标,若available持续低于总内存的10%,可能触发OOM(Out of Memory)。

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

tophtop是实时监控系统资源的工具,不仅能查看整体内存使用率,还能定位具体的高内存占用进程。

top命令

top [-m] [-p PID]
  • -m:仅显示内存相关信息(默认显示CPU、内存等);
  • -p PID:监控指定进程(如top -p 1234)。

内存相关列说明:

  • %MEM:进程内存占用率(进程驻留内存/总物理内存×100%);
  • RES:进程驻留集大小(物理内存占用,不含共享内存);
  • SHR:进程共享内存大小;
  • VIRT:进程虚拟内存大小(含物理内存、交换区、共享库等)。

操作技巧:按M可按%MEM降序排序(高内存进程置顶),按q退出。

linux如何查看内存使用率

htop命令(top的增强版)

htop提供更友好的界面(如颜色区分、进程树、快捷键操作),需提前安装(Ubuntu/Debian:apt install htop;CentOS:yum install htop)。

核心功能:

  • 界面顶部实时显示内存使用率(如Mem[|||||||||||||||||||||||||||||||||||||||||] 27%);
  • F6可选择排序字段(如PERCENT_MEM按内存占用率排序);
  • F9可终止选中进程,适合快速处理异常进程。

使用vmstat命令分析内存趋势

vmstat(Virtual Memory Statistics)侧重于内存使用的动态趋势,适合分析内存压力和交换分区活动。

vmstat [-s] [时间间隔 [次数]]
  • -s:显示内存事件的详细统计(如内存分配、回收次数);
  • 时间间隔:刷新间隔(秒),次数:刷新总次数(如vmstat 2 5表示每秒刷新1次,共5次)。

输出示例(关键列):

procs -----------memory---------- ---swap-- ---io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 4.2Gi  128Mi  1.4Gi    0    0     45    12   60  120  5  2 92  0  0

字段解析:

  • swpd:已使用的交换分区大小(若持续增长,说明物理内存不足);
  • free:空闲物理内存;
  • buff:缓冲区内存(用于文件系统元数据);
  • cache:页面缓存(用于文件数据缓存);
  • si/so:每秒从交换区分入/分出的内存(so>0且持续表示频繁换页,性能下降)。

通过/proc/meminfo文件获取原始数据

/proc/meminfo是内核提供的内存信息文本文件,适合脚本处理或精确查询特定指标。

linux如何查看内存使用率

cat /proc/meminfo

关键字段示例:

MemTotal:        7947168 kB  # 物理内存总量
MemFree:         4325884 kB  # 空闲内存
MemAvailable:    5451232 kB  # 实际可用内存(推荐使用)
Buffers:          131072 kB  # 缓冲区
Cached:          1456128 kB  # 页面缓存
SwapTotal:       2097152 kB  # 交换区总量
SwapFree:        2097152 kB  # 交换区空闲

提取特定字段(如查看可用内存):

grep MemAvailable /proc/meminfo | awk '{print $2}'

命令对比与适用场景

命令 适用场景 优点 缺点
free 快速查看内存概览,判断可用内存 简单直观,默认预装 信息较少,无进程级数据
top 实时监控进程内存占用 动态更新,可排序筛选 界面复杂,需手动操作
htop 高效定位高内存进程,交互式监控 界面友好,支持快捷键和进程树 需额外安装
vmstat 分析内存趋势和交换分区活动 提供动态统计,适合脚本 无进程级数据,需理解字段含义
/proc/meminfo 获取原始数据,脚本处理 数据最全面,可精确查询 输出冗长,需手动解析

相关问答FAQs

Q1:为什么free命令显示的used内存很高,但系统运行并不卡顿?

A:Linux内存管理中,used内存包含两部分:应用程序实际占用内核缓存(buff/cache),后者是为了提升文件读写性能而预留的内存,属于“可回收内存”,当应用程序需要内存时,内核会自动释放缓存,因此即使used很高,只要available内存充足(通常建议大于总内存的10%),系统就不会卡顿,可通过free -h查看available字段判断实际可用内存。

Q2:如何查看某个特定进程的内存使用详情?

A:可通过以下命令定位进程内存:

  1. ps命令ps -p PID -o pid,ppid,cmd,%mem,rss,vsz,其中%mem为内存占用率,rss为物理内存占用(KB),vsz为虚拟内存占用(KB)。
  2. top/htop:在top中按PM排序(CPU/内存),或在htop中选中进程按F9终止。
  3. smem工具(需安装):smem -p PID可查看进程的PSS(Proportional Set Size,更准确的内存占用统计,避免重复计算共享内存)。

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

(0)
酷番叔酷番叔
上一篇 16小时前
下一篇 15小时前

相关推荐

  • linux如何管理磁盘空间

    Linux 中,常用 df查看磁盘使用情况,du查看文件和目录大小,

    2025年8月17日
    1000
  • 如何查看linux队列

    使用命令dmesg | grep -i buffer查看Linux队列相关信息,也可通过`

    2025年8月13日
    1100
  • Windows用户如何安全体验Linux?

    虚拟机安装(推荐新手)工具准备虚拟机软件:VirtualBox(免费)或 VMware Workstation Player(个人免费)Linux镜像:Ubuntu(推荐)或其他发行版步骤安装虚拟机软件 下载安装包,全程默认设置即可,创建虚拟机打开软件 → 点击”新建” → 输入虚拟机名称(如Ubuntu……

    2025年7月9日
    3100
  • 如何轻松掌握基础命令工具?

    在Linux系统中,查看显卡信息是硬件管理、驱动安装或性能优化的基础操作,以下是多种可靠方法,涵盖命令行工具和图形界面方案,适用于不同发行版(如Ubuntu、CentOS、Fedora等),操作前请确保拥有终端执行权限(部分命令需sudo),lspci(最常用)作用:列出所有PCI设备(包括显卡),命令:lsp……

    2025年7月28日
    2300
  • 如何在linux安装redis

    Linux中安装Redis,可以通过包管理器(如apt或yum)安装

    2025年8月15日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信