当前位置:首页 > 问答 > 正文

内存管理|系统监控|linux查看内存使用情况的多种方法与详细步骤

📊 Linux内存管理大全:系统监控与内存使用查看的N种方法

最新动态(2025年08月):Linux内核6.10版本正式引入更精细的内存压力追踪功能,通过/proc/pressure/memory可实时监测OOM(内存耗尽)风险!


🔍 为什么需要监控内存?

Linux系统内存就像你的手机存储空间——用满会卡顿、崩溃甚至被杀进程😱!通过监控可以:

  • 发现内存泄漏的应用程序
  • 避免服务因OOM(Out of Memory)被强制终止
  • 合理优化服务器资源配置

🛠️ 7种查看内存的实战方法

方法1:free命令(基础必备)

free -h  # 人类可读格式(自动换算GB/MB)

输出示例

              total    used    free    shared  buff/cache   available  
Mem:           15G     4.2G    800M     320M        10G         9.8G  
Swap:          2G      0B      2G  

📌 关键指标

  • available:真正可用的内存(含缓存可回收部分)
  • buff/cache:磁盘缓存占用的内存(必要时会被释放)

方法2:top/htop(动态监控)

htop  # 需安装(色彩更丰富,支持鼠标操作)

重点看

内存管理|系统监控|linux查看内存使用情况的多种方法与详细步骤

  • %MEM列:进程占用物理内存百分比
  • RES列:实际使用的物理内存(单位KB)
  • F2可自定义显示列

方法3:vmstat(专业级统计)

vmstat -s -S M  # 以MB为单位显示摘要

输出亮点

      15892 M total memory  
       4821 M used memory  
       3271 M active memory  
       2100 M inactive memory  

💡 小技巧vmstat 2 5表示每2秒刷新,共5次


方法4:/proc/meminfo(底层数据源)

cat /proc/meminfo | grep -E 'MemTotal|MemFree|Buffers|Cached'

文件特点

  • 所有内存工具的数据源头
  • 直接反映内核内存状态(单位KB)

方法5:smem(高级统计工具)

smem -t -k  # 显示每个进程的USS/PSS/RSS(需安装)

术语解释

内存管理|系统监控|linux查看内存使用情况的多种方法与详细步骤

  • USS:进程独占内存(最真实的内存占用)
  • PSS:按比例计算共享库内存

方法6:glances(全能监控)

glances  # 一个界面集成CPU/内存/网络/磁盘监控

🌟 优势

  • 彩色进度条直观显示使用率
  • 支持Web端远程查看

方法7:ps命令(快速排查)

ps aux --sort=-%mem | head -5  # 显示内存占用前5的进程

输出示例

USER       PID %MEM %CPU COMMAND  
mysql     1234  25%  12% /usr/sbin/mysqld  
chrome    5678  18%  23% /opt/google/chrome/chrome

🚨 内存不足怎么办?

1️⃣ 释放缓存(紧急时使用):

sync && echo 3 > /proc/sys/vm/drop_caches  

2️⃣ 杀灭进程

内存管理|系统监控|linux查看内存使用情况的多种方法与详细步骤

kill -9 $(pgrep -f "内存泄漏的进程名")  

3️⃣ 增加Swap空间

dd if=/dev/zero of=/swapfile bs=1G count=4  # 创建4GB交换文件  
mkswap /swapfile && swapon /swapfile  

📝 总结对比表

工具 适用场景 特点
free 快速查看总量 简单粗暴
htop 交互式监控 颜值高,操作方便
smem 精准分析进程内存 区分USS/PSS
/proc/meminfo 开发调试 最原始数据

💬 一句话建议:日常运维用htop,精准分析用smem,写脚本用/proc/meminfo!遇到内存报警别慌,先按本文方法定位问题进程🧐。

发表评论