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)
酷番叔酷番叔
上一篇 2025年9月8日 16:33
下一篇 2025年9月8日 16:47

相关推荐

  • 文件权限设置错误有多危险?

    在Linux系统中,文件权限是安全管理的核心机制,通过命令行(模式)更改权限可精确控制用户对文件/目录的访问,以下是详细操作指南:权限基础概念Linux为每个文件分配三类用户的权限:所有者(Owner):文件创建者所属组(Group):共享权限的用户组其他用户(Others):系统所有其他用户权限类型:读(r……

    2025年7月15日
    8700
  • 如何查看当前时区?

    在Linux系统中,正确设置时间对日志记录、计划任务、证书验证等关键功能至关重要,以下是详细的操作指南,涵盖时区配置、手动时间设置、NTP自动同步及常见问题排查:核心概念系统时间 (System Time)由内核维护的软件时钟,通过date命令查看,硬件时间 (Hardware Time / RTC)主板BIO……

    2025年6月18日
    12500
  • 在Linux操作系统中,如何正确详细实现PCI设备的读写操作步骤?

    在Linux系统中,PCI(Peripheral Component Interconnect)设备是最常见的硬件设备之一,如显卡、网卡、磁盘控制器等,要对PCI设备进行读写操作,需要理解Linux内核对PCI设备的管理机制,包括设备发现、资源分配、地址映射等核心步骤,本文将详细说明Linux环境下读写PCI设……

    2025年8月24日
    9400
  • 如何通过命令行修改Linux系统日期?

    在Linux系统中,日期和时间的修改是常见操作,无论是为了系统日志记录、定时任务执行,还是时区调整,都需要掌握正确的方法,Linux系统的时间管理涉及两个核心时钟:系统时钟(由Linux内核维护,从开机到关机期间有效)和硬件时钟(由主板CMOS电池供电,关机后仍运行),修改时间时需注意两者的同步,否则重启后时间……

    2025年8月30日
    6600
  • linux如何退出命令行

    Linux 命令行中,可输入 exit 或按 Ctrl + D

    2025年8月16日
    7800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信