使用
display memory-usage
命令查看华为设备内存状态,该命令显示内存总量、当前使用率及利用率阈值,帮助实时监控设备内存负载情况。
对于使用华为服务器、存储设备、网络设备(如部分高端路由器/交换机运行Linux或类似系统)或华为云ECS实例(通常运行Linux)熟练掌握命令行查看内存状态是进行系统监控、性能分析和故障排查的基础技能,与图形界面相比,命令行提供了更直接、更详细且更高效的内存信息获取方式,以下介绍几种最常用且强大的命令行工具和方法:
核心工具:free
命令
free
命令是查看系统内存(包括物理内存和交换空间)使用情况最直接的工具,它提供简洁明了的概览。
-
基本用法:
free
输出示例:
total used free shared buff/cache available Mem: 8167848 1022544 456324 10284 6688980 6822344 Swap: 2097148 0 2097148
-
解读输出 (以 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
不为零不一定表示问题,但持续增长或高使用率可能表明物理内存不足。
-
常用选项:
-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
命令的数据也来源于此,直接查看这个文件可以获得最详尽的内存统计。
-
查看方法:
cat /proc/meminfo
或使用分页查看(推荐):
less /proc/meminfo
-
关键字段解读(部分):
MemTotal
: 总物理内存(同free
的total
)。MemFree
: 完全空闲内存(同free
的free
)。MemAvailable
: 估算可用内存(同free
的available
,最重要)。Buffers
: 块设备(如磁盘)的缓冲区大小。Cached
: 页面缓存大小(buff/cache
的主要组成部分)。SwapCached
: 曾经被换出(swap out)但又被换入(swap in)且仍在交换区留有备份的页面大小(可被快速丢弃)。Active
: 最近活跃使用的内存(通常难以回收)。Inactive
: 最近较少使用的内存(相对容易回收)。SwapTotal
: 总交换空间。SwapFree
: 空闲交换空间。Dirty
: 等待写回磁盘的内存页大小。Writeback
: 正在写回磁盘的内存页大小。Slab
/SReclaimable
/SUnreclaim
: 内核数据结构(Slab缓存)占用的内存,部分可回收(SReclaimable
),部分不可回收(SUnreclaim
)。Shmem
: 共享内存和tmpfs使用的总量(通常接近free
的shared
)。HugePages_*
: 与巨页(HugePages)相关的统计(如果启用)。
其他实用命令
-
top
/htop
(增强版):top
是一个动态的、交互式的进程查看器,启动后:- 按
M
(大写) 可以按内存使用率 (%MEM
或RES
) 排序进程。 - 顶部区域显示系统概览,包括内存和交换空间的使用情况(
KiB Mem
,KiB Swap
行),其数据也来源于/proc/meminfo
。 - 按
q
退出。
- 按
htop
是top
的现代化替代品,提供彩色显示、更直观的布局、鼠标支持和更好的交互体验,通常需要额外安装 (yum install htop
或apt install htop
),内存信息显示在顶部,进程列表默认按CPU排序,可按F6
选择按内存(MEM%
)排序。
-
vmstat
:
报告虚拟内存统计信息、进程、CPU活动等,对查看内存、交换、I/O和CPU的整体情况很有用。vmstat -s # 显示一次性的详细统计摘要(类似/proc/meminfo的汇总) vmstat 1 # 每隔1秒刷新一次标准输出(显示进程、内存、交换、IO、CPU)
在标准输出中关注
memory
部分的swpd
(已用交换空间),free
(空闲内存),buff
(缓冲区),cache
(缓存) 和swap
部分的si
(每秒换入),so
(每秒换出)。si/so
持续不为零可能表示内存压力。 -
ps
:
用于列出当前进程的快照,结合排序和格式化选项可以找出消耗内存最多的进程。ps aux --sort=-%mem | head -n 10 # 按内存使用率降序排列,显示前10个进程 ps aux --sort=-rss | head -n 10 # 按实际驻留集大小(RSS)降序排列,显示前10个进程
%MEM
: 进程使用的物理内存占系统总物理内存的百分比。RSS
: 常驻集大小,即进程实际占用的、未被换出的物理内存大小(单位KB),这个值更能反映进程当前消耗的物理内存量。
重要注意事项
- 权限: 执行这些命令通常不需要root权限(
sudo
),普通用户即可查看系统级内存信息,但某些特定信息或操作(如修改内核参数)可能需要root。 - 单位: 注意命令输出的单位。
free
默认是 KiB (1024 bytes),使用-h
选项可自动转换。/proc/meminfo
单位是 KiB。ps
的RSS
单位通常是 KB (1024 bytes)。 free
vsavailable
: 务必理解free
(完全空闲)和available
(估算可用)的区别。available
是判断内存是否充足的关键指标。buff/cache
的作用: 不要看到buff/cache
很大就惊慌,这是Linux内核优化性能的设计,这部分内存是可以被应用程序快速回收利用的,只有当available
内存持续很低且swap
使用量开始增长时,才表明物理内存可能真的不足。- 华为设备差异: 本文介绍的命令适用于运行标准Linux内核的华为设备(如基于CentOS/RHEL/EulerOS的服务器、部分网络设备OS、华为云ECS),对于运行嵌入式或专用实时操作系统(如VRP)的华为网络设备(如多数交换机、路由器),查看内存的命令通常是设备特定的(如
display memory-usage
),请参考对应设备的官方文档或使用 查看帮助。
如何选择?
- 快速概览:
free -h
(重点关注available
和swap used
) - 详细统计:
cat /proc/meminfo
或vmstat -s
- 找出内存消耗大户:
top
(按M
),htop
(按F6
选MEM%
), 或ps aux --sort=-%mem | head
- 动态监控趋势:
vmstat 1
,top
,htop
或free -h -s
掌握 free
, /proc/meminfo
, top/htop
, vmstat
和 ps
这些命令行工具,是有效监控和管理华为设备(运行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