free
命令(最常用)
作用:快速查看物理内存、交换空间(Swap)和内核缓冲区的使用情况。
常用参数:
-h
(人性化显示单位):free -h
-s [秒]
(定时刷新):free -h -s 5
(每5秒刷新)
输出解析:
total used free shared buff/cache available Mem: 7.6G 2.1G 3.2G 123M 2.3G 5.0G Swap: 2.0G 0B 2.0G
- available:系统可用内存(含缓存可回收部分),是判断内存余量的关键指标。
- buff/cache:被内核缓冲区(Buffer)和页面缓存(Cache)占用的内存,必要时可被释放。
top
或 htop
命令(动态监控)
作用:实时显示进程级内存占用,支持交互式排序。
- 基础用法:直接运行
top
,按Shift+M
按内存使用排序。 - 进阶工具:
htop
(需安装,界面更友好):sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL htop
关键列:
- %MEM:进程占用物理内存百分比。
- RES:实际使用的物理内存(单位KB)。
- VIRT:虚拟内存总量(含共享库和Swap)。
解析 /proc/meminfo
(底层数据源)
作用:所有内存命令的数据均来源于此文件,提供最详细的内存统计。
查看方式:
cat /proc/meminfo
核心字段:
MemTotal
:总物理内存。MemFree
:完全未使用的内存。Cached
:页面缓存(加速文件读写)。SwapTotal
和SwapFree
:交换空间总量与剩余量。Shmem
:共享内存(如tmpfs)。
✅ 专业提示:
/proc/meminfo
中的MemAvailable
是free
命令中 “available” 的原始数据,反映系统真实可用内存。
vmstat
命令(分析内存趋势)
作用:监控内存、Swap、I/O和CPU的实时变化,适合诊断性能瓶颈。
示例:
vmstat -w -S M 1 # 每1秒刷新,以MB为单位显示
输出关键列:
- swpd:已用Swap大小。
- free:空闲物理内存。
- buff 和 cache:缓冲区与缓存用量。
- si(swap in)/ so(swap out):Swap交换频率,持续不为0可能预示内存不足。
smem
命令(按用户统计)
作用:按用户或进程聚合内存占用,需安装:
sudo apt install smem # Debian/Ubuntu sudo yum install smem # CentOS/RHEL
常用示例:
smem -u # 按用户汇总内存 smem -p -P firefox # 查看Firefox相关进程的内存
glances
(全能监控工具)
作用:图形化终端仪表盘,集成内存、CPU、磁盘等监控。
安装与使用:
pip install glances glances
界面中 MEM 部分直观展示使用率、Swap及进程排行。
场景化推荐
- 快速概览:
free -h
- 诊断卡顿:
top
(观察高内存进程) - 深挖瓶颈:
vmstat
结合si/so
值 - 开发调试:
smem
或/proc/meminfo
为什么关注内存指标?
- 物理内存不足 → 触发Swap交换,显著降低性能。
- 缓存(Cache)占用高 → 通常是正常优化,非问题。
- Available值过低(如 <10%)→ 需及时扩容或优化应用。
ℹ️ 注意:Linux会充分利用空闲内存作缓存,“free” 值低不代表内存紧张,”available” 才是关键。
引用说明: 参考 Linux man 手册(man free
、man top
)、Kernel.org /proc文档及 Ubuntu Server 最佳实践指南,命令兼容主流发行版(Ubuntu, CentOS, RHEL等)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8020.html