当前位置:首页 > Linux > 正文

Linux内存查看方法

Linux查看内存使用常用命令: free -h显示总量、已用和空闲内存; tophtop实时监控进程内存占用; vmstat分析内存趋势, /proc/meminfo文件提供详细数据。

free 命令(最常用)

作用:快速查看内存总量、使用量及缓存情况
常用参数-h(人性化单位)、-s(间隔刷新)
示例

free -h

输出解读

              total    used    free    shared  buff/cache   available
Mem:           7.7G    2.1G    1.2G     123M        4.4G        5.2G
Swap:          2.0G     0B      2.0G
  • available:系统可用内存(含缓存可回收部分),关键指标!
  • buff/cache:内核缓存(可被程序快速回收)
  • Swap:虚拟内存使用量(过高可能需优化物理内存)

top / htop 命令(动态监控)

作用:实时查看进程级内存占用
操作

Linux内存查看方法  第1张

  1. 运行 top 后按 M 按内存排序
  2. htop(需安装)提供更友好的交互界面
    关键列
  • %MEM:进程占用物理内存百分比
  • VIRT:虚拟内存总量(含共享库等)
  • RES:实际物理内存使用量(常关注此项)

/proc/meminfo(底层数据源)

作用:所有内存命令的数据来源,提供最详细信息
查看方式

cat /proc/meminfo

核心参数

  • MemTotal:总物理内存
  • MemFree:完全未使用的内存
  • Cached:页面缓存(文件读取缓存)
  • SwapCached:交换区缓存
  • Buffers:块设备缓存(如磁盘写入)
  • Shmem:共享内存/tmpfs用量

vmstat 命令(统计内存趋势)

作用:监控内存、交换、IO等系统活动
示例(每2秒刷新1次):

vmstat 2

内存相关输出

--memory--          --swap--
 swpd   free   buff   cache   si   so
  0    1.2G   0.3G    4.1G    0    0
  • si/so:Swap换入/换出速度(>0 表示内存紧张)
  • buff/cache:与 free 命令含义一致

smem 工具(高级报告)

安装sudo apt install smem(Debian/Ubuntu)
优势:按进程、用户或全局统计实际内存占用(PSS/USS)
示例

smem -t -k  # 表格化显示(含百分比)
  • USS:进程独占内存(最准确)
  • PSS:均摊共享内存后的实际用量

GNOME System Monitor(图形化工具)

适用场景:桌面环境用户
路径:gnome-system-monitor → “资源”标签页
功能:直观展示内存/交换空间曲线图及进程列表


关键概念解析

  • 可用内存(available)空闲内存(free)
    available = free + 可回收缓存(系统实际可用资源)
  • 缓存(Cache):主动保留加速读写,内存不足时自动释放
  • Swap使用:少量使用正常,持续增长需警惕内存瓶颈

最佳实践建议

  1. 日常监控用 free -h 关注 available
  2. 进程排查用 topsmem 定位高内存进程
  3. 内存泄漏检测:连续运行 vmstat 2 观察 freesi/so 变化
  4. 警惕现象:Swap持续写入(so>0)且 available < 10% 总内存

引用说明参考 Linux man 手册(free、top、vmstat)、内核文档 /proc/meminfo,以及 Red Hat 性能优化指南,数据解读基于 Linux 内核内存管理机制。

0