linux如何查看内存:多命令对比
linux如何查看内存,你优先用free看整体内存统计,top、htop看进程实时占用,cat/proc/meminfo读取内核原始内存明细,free命令输出里的available是程序实际可申请内存,比free字段更有参考价值,free适合脚本、定时监控,top适合排查内存占用高的进程,htop需要额外安装,适合交互式运维,这些命令在主流CentOS、Ubuntu、Debian发行版都能直接运行,嵌入式裁剪版Linux可能缺少htop工具。
linux如何查看内存:free命令实操
直接输入free默认以KB为单位展示,加上-h参数,输出会自动换算成GB、MB,可读性更强。输出分为total、used、free、shared、buff/cache、available六列,total是物理总内存,used是已经被占用的内存,free是完全空闲未使用的内存,buff/cache是系统缓存读写文件的内存,这部分内存可以在程序需要时快速回收。
看available。
不要单独盯着free数值判断内存不足,很多新手只看free数值很低就判定内存过载,实际上缓存内存会被系统动态回收,这个判断方式容易触发不必要的告警。free-s3可以设置每3秒刷新一次内存数据,适合持续观察一段时间内的内存变化,脚本里可以用free-b获取字节单位数据,方便后续数值计算。
linux如何查看内存:top与htop查看进程内存
执行top之后,界面顶部会展示系统整体内存概况,按M键可以把进程按照内存占用从高到低排序,%MEM列代表单个进程占用物理内存的比例,VIRT是虚拟内存,包含交换分区、共享库,RES是实际驻留物理内存,排查内存泄漏优先看RES持续上涨的进程。
htop的布局更友好,鼠标可操作,支持直接选中进程结束,但是基础镜像默认不带这个工具,CentOS需要yuminstallhtop,Ubuntu使用aptinstallhtop安装。
linux如何查看内存:/proc/meminfo原始文件读取
cat/proc/meminfo读取内核维护的原始内存信息,里面包含MemTotal、MemFree、MemAvailable、Buffers、Cached、SwapTotal、SwapFree等细分字段,适合需要精确采集指标、自研监控脚本的场景,这个文件由内核实时生成,不需要额外依赖程序,所有支持proc文件系统的Linux都可以读取。
| 命令 | 输出内容 | 安装需求 | 适合场景 |
|---|---|---|---|
| free-h | 整机内存汇总 | 自带 | 快速查看整体余量、脚本采集 |
| top | 整机+进程内存 | 自带 | 实时排查占用高进程 |
| htop | 整机+进程内存 | 手动安装 | 交互式运维查看 |
| cat/proc/meminfo | 内核原始明细 | 自带 | 精细指标采集、调试 |
该方法的适用边界是,proc文件系统必须开启,部分极简容器、定制嵌入式系统会关闭proc挂载,此时cat/proc/meminfo无法读取内存数据,只能依靠free这类工具。
查看swap交换内存,free、top、meminfo里都有对应字段,swap持续大量写入,代表物理内存资源紧张,需要优化程序或者扩容内存。
