怎样用命令行查看华为设备内存?

使用display memory-usage命令查看华为设备内存状态,该命令显示内存总量、当前使用率及利用率阈值,帮助实时监控设备内存负载情况。

对于使用华为服务器、存储设备、网络设备(如部分高端路由器/交换机运行Linux或类似系统)或华为云ECS实例(通常运行Linux)熟练掌握命令行查看内存状态是进行系统监控、性能分析和故障排查的基础技能,与图形界面相比,命令行提供了更直接、更详细且更高效的内存信息获取方式,以下介绍几种最常用且强大的命令行工具和方法:

核心工具:free 命令

free 命令是查看系统内存(包括物理内存和交换空间)使用情况最直接的工具,它提供简洁明了的概览。

  1. 基本用法:

    free

    输出示例:

                  total        used        free      shared  buff/cache   available
    Mem:        8167848     1022544      456324       10284     6688980     6822344
    Swap:       2097148           0     2097148
  2. 解读输出 (以 Mem 行为例):

    • total: 系统安装的总物理内存大小(单位:KiB)。
    • used: 当前已被使用的内存量(包括应用程序使用的和内核缓冲区/缓存占用的部分)。
    • free: 完全未被使用的内存量。
    • shared: 主要被 tmpfs(内存文件系统)使用的内存量(通常较小)。
    • buff/cache: 关键指标! 这是被内核缓冲区(buffers)和页面缓存(page cache)占用的内存总和,这部分内存用于加速磁盘I/O,当应用程序需要更多内存时,内核可以快速回收这部分内存供其使用。free 值很小而 buff/cache 很大通常是正常且高效的。
    • available: 最重要指标! 估算的、无需进行交换(swap)即可提供给新启动的应用程序或现有应用程序增长使用的内存量,它考虑了 free 内存和部分可回收的 buff/cache 内存,这个值更能反映系统当前实际可用的内存资源。如果 available 内存持续很低(例如小于总内存的10%或20%),就需要警惕内存不足的风险。
    • Swap: 显示交换空间的总量、使用量和空闲量。used 不为零不一定表示问题,但持续增长或高使用率可能表明物理内存不足。
  3. 常用选项:

    • -h / --human: 以人类可读的格式(K, M, G)显示大小(强烈推荐)。
      free -h

      输出示例:

                    total        used        free      shared  buff/cache   available
      Mem:           7.7Gi       1.1Gi       512Mi        10Mi       6.2Gi       6.5Gi
      Swap:          2.0Gi          0B       2.0Gi
    • -s: 每隔 N 秒刷新显示一次(用于持续监控)。
      free -h -s 5  # 每5秒刷新一次
    • -t / --total: 在输出底部添加一行显示内存和交换空间的总和统计。
      free -h -t

深入分析:/proc/meminfo 文件

Linux内核通过虚拟文件系统 /proc 暴露了大量系统信息,内存的详细信息就存储在 /proc/meminfo 文件中。free 命令的数据也来源于此,直接查看这个文件可以获得最详尽的内存统计。

  1. 查看方法:

    cat /proc/meminfo

    或使用分页查看(推荐):

    less /proc/meminfo
  2. 关键字段解读(部分):

    • MemTotal: 总物理内存(同 freetotal)。
    • MemFree: 完全空闲内存(同 freefree)。
    • MemAvailable: 估算可用内存(同 freeavailable最重要)。
    • Buffers: 块设备(如磁盘)的缓冲区大小。
    • Cached: 页面缓存大小(buff/cache 的主要组成部分)。
    • SwapCached: 曾经被换出(swap out)但又被换入(swap in)且仍在交换区留有备份的页面大小(可被快速丢弃)。
    • Active: 最近活跃使用的内存(通常难以回收)。
    • Inactive: 最近较少使用的内存(相对容易回收)。
    • SwapTotal: 总交换空间。
    • SwapFree: 空闲交换空间。
    • Dirty: 等待写回磁盘的内存页大小。
    • Writeback: 正在写回磁盘的内存页大小。
    • Slab / SReclaimable / SUnreclaim: 内核数据结构(Slab缓存)占用的内存,部分可回收(SReclaimable),部分不可回收(SUnreclaim)。
    • Shmem: 共享内存和tmpfs使用的总量(通常接近 freeshared)。
    • HugePages_*: 与巨页(HugePages)相关的统计(如果启用)。

其他实用命令

  1. top / htop (增强版):

    • top 是一个动态的、交互式的进程查看器,启动后:
      • M (大写) 可以按内存使用率 (%MEMRES) 排序进程。
      • 顶部区域显示系统概览,包括内存和交换空间的使用情况(KiB Mem, KiB Swap 行),其数据也来源于 /proc/meminfo
      • q 退出。
    • htoptop 的现代化替代品,提供彩色显示、更直观的布局、鼠标支持和更好的交互体验,通常需要额外安装 (yum install htopapt install htop),内存信息显示在顶部,进程列表默认按CPU排序,可按 F6 选择按内存(MEM%)排序。
  2. vmstat
    报告虚拟内存统计信息、进程、CPU活动等,对查看内存、交换、I/O和CPU的整体情况很有用。

    vmstat -s  # 显示一次性的详细统计摘要(类似/proc/meminfo的汇总)
    vmstat 1   # 每隔1秒刷新一次标准输出(显示进程、内存、交换、IO、CPU)

    在标准输出中关注 memory 部分的 swpd (已用交换空间), free (空闲内存), buff (缓冲区), cache (缓存) 和 swap 部分的 si (每秒换入), so (每秒换出)。si/so 持续不为零可能表示内存压力。

  3. ps
    用于列出当前进程的快照,结合排序和格式化选项可以找出消耗内存最多的进程。

    ps aux --sort=-%mem | head -n 10  # 按内存使用率降序排列,显示前10个进程
    ps aux --sort=-rss | head -n 10   # 按实际驻留集大小(RSS)降序排列,显示前10个进程
    • %MEM: 进程使用的物理内存占系统总物理内存的百分比。
    • RSS: 常驻集大小,即进程实际占用的、未被换出的物理内存大小(单位KB),这个值更能反映进程当前消耗的物理内存量。

重要注意事项

  1. 权限: 执行这些命令通常不需要root权限(sudo),普通用户即可查看系统级内存信息,但某些特定信息或操作(如修改内核参数)可能需要root。
  2. 单位: 注意命令输出的单位。free 默认是 KiB (1024 bytes),使用 -h 选项可自动转换。/proc/meminfo 单位是 KiB。psRSS 单位通常是 KB (1024 bytes)。
  3. free vs available 务必理解 free(完全空闲)和 available(估算可用)的区别。available 是判断内存是否充足的关键指标。
  4. buff/cache 的作用: 不要看到 buff/cache 很大就惊慌,这是Linux内核优化性能的设计,这部分内存是可以被应用程序快速回收利用的,只有当 available 内存持续很低且 swap 使用量开始增长时,才表明物理内存可能真的不足。
  5. 华为设备差异: 本文介绍的命令适用于运行标准Linux内核的华为设备(如基于CentOS/RHEL/EulerOS的服务器、部分网络设备OS、华为云ECS),对于运行嵌入式或专用实时操作系统(如VRP)的华为网络设备(如多数交换机、路由器),查看内存的命令通常是设备特定的(如 display memory-usage),请参考对应设备的官方文档或使用 查看帮助。

如何选择?

  • 快速概览: free -h (重点关注 availableswap used
  • 详细统计: cat /proc/meminfovmstat -s
  • 找出内存消耗大户: top (按 M), htop (按 F6MEM%), 或 ps aux --sort=-%mem | head
  • 动态监控趋势: vmstat 1, top, htopfree -h -s

掌握 free, /proc/meminfo, top/htop, vmstatps 这些命令行工具,是有效监控和管理华为设备(运行Linux系统)内存资源的基础,理解关键指标(尤其是 MemAvailable)的含义至关重要,它能帮助你准确判断系统内存的真实负载情况,及时发现潜在瓶颈,并采取相应的优化或扩容措施,对于非标准Linux的华为设备,务必查阅其官方文档获取正确的内存查看命令。


引用说明:

  • 本文所涉及的命令 (free, top, htop, vmstat, ps, /proc/meminfo) 是标准 Linux 内核和核心工具集 (coreutils, procps-ng) 的一部分,其功能和行为由 Linux 内核开发社区和 GNU 项目定义和维护,具体文档可通过各命令的 man 页面 (如 man free, man proc) 查阅。
  • 关于华为特定设备(如运行 VRP 系统的网络设备)的命令,请参考华为官方发布的对应产品文档:华为企业支持官网 或 华为企业技术支持。

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

(0)
酷番叔酷番叔
上一篇 6天前
下一篇 6天前

相关推荐

  • 思科设备如何彻底清除配置?

    进入特权模式执行write erase或erase startup-config清除启动配置,删除vlan.dat文件(若有),reload`重启设备,操作前务必备份重要配置。

    2025年6月20日
    1300
  • 块命令B为何是效率神器?

    块(B命令)的核心价值在于结构化代码,它将相关功能封装为独立单元,提升代码可读性、复用性和维护性,避免重复编写,使逻辑更清晰,修改更集中高效。

    10小时前
    100
  • 怎样每天多出2小时?

    在Windows 10操作系统中,传统的”DOS”环境已被现代化的命令提示符(Command Prompt)和PowerShell替代,它们继承了DOS的核心功能并大幅扩展了能力,以下是进入命令行的7种详细方法,根据场景选择最合适的操作:搜索框启动点击任务栏左侧的搜索图标(或按Win+S)输入cmd或命令提示符……

    2天前
    400
  • 如何快速退出命令模式?

    退出命令模式即停止执行特定操作,返回正常模式进行导航或编辑,或进入插入模式输入文本。

    2025年7月7日
    1300
  • 想快速掌握Windows CMD常用命令?

    Windows命令提示符(CMD)是Windows系统的命令行操作界面,掌握其基础操作和常用命令(如cd、dir、copy、ipconfig、ping等)可高效管理文件、诊断网络及执行系统任务。

    2025年6月12日
    1200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信