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中如何正确设置PATH环境变量?

    在Linux系统中,PATH环境变量是一个非常重要的配置,它定义了系统在执行命令时会搜索可执行文件的路径列表,当用户在终端输入一个命令时,系统会按照PATH中指定的路径顺序依次查找对应的可执行文件,如果找到则执行,否则提示“命令未找到”,正确设置PATH可以让用户更方便地运行自定义的可执行程序或第三方工具,而无……

    2025年9月22日
    8900
  • Linux系统挂起后如何恢复桌面操作、系统响应及所有正在运行的应用程序?

    Linux系统在使用过程中可能会因各种原因出现挂起现象,表现为系统无响应、鼠标键盘失灵、图形界面卡死或黑屏等情况,影响正常使用,针对不同挂起原因和场景,恢复方法也有所不同,本文将详细介绍Linux挂起后的恢复步骤、注意事项及长期预防措施,初步应急处理:快速尝试恢复当系统出现挂起时,首先应尝试温和的恢复方法,避免……

    2025年8月26日
    13900
  • Linux如何设置启动脚本?具体步骤和方法有哪些?

    Linux系统启动过程中,常需要让自定义脚本或服务在开机时自动运行,例如部署的应用程序、系统初始化任务、数据备份脚本等,设置启动脚本是实现这一需求的核心操作,本文将详细介绍通过不同方式配置Linux启动脚本的步骤、注意事项及适用场景,使用/etc/rc.local文件(传统方式)/etc/rc.local是Li……

    2025年8月27日
    10900
  • Linux如何保存分区表?操作步骤与命令有哪些?

    在Linux系统中,分区表是磁盘管理的基础,记录了磁盘分区的布局、类型、起始和结束位置等信息,由于误操作、磁盘故障或系统异常可能导致分区表损坏,进而引发数据丢失风险,因此定期保存分区表至关重要,本文将详细介绍Linux中保存分区表的方法,涵盖不同分区表类型(MBR和GPT)及常用工具的使用,分区表类型与备份必要……

    2025年9月24日
    11000
  • Linux免密登录真的安全吗?

    图形界面自动登录(适用于Ubuntu/CentOS等桌面版)打开系统设置Ubuntu:Settings → Users → 解锁后开启Automatic LoginGNOME桌面:gnome-control-center user-accounts → 选择用户启用自动登录配置文件修改(通用方法)sudo na……

    2025年6月27日
    13000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信