侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

如何查看Linux系统中内存使用情况?

2025-12-12 / 0 评论 / 2 阅读

题目

如何查看Linux系统中内存使用情况?

信息

  • 类型:问答
  • 难度:⭐

考点

Linux内存管理,性能监控工具,基础命令

快速回答

查看Linux系统内存使用的主要方法:

  • 使用free -h命令查看内存总量、使用量和缓存情况
  • 通过tophtop命令实时监控进程内存占用
  • 查看/proc/meminfo文件获取详细内存数据
  • 关键指标:可用内存(available)、缓存(cache)、交换空间(swap)
## 解析

一、核心命令详解

1. free 命令(推荐)

$ free -h
              total    used    free  shared  buff/cache   available
Mem:           7.7Gi   2.1Gi   1.2Gi   123Mi        4.4Gi        5.2Gi
Swap:          2.0Gi    0B     2.0Gi
  • total:物理内存总量
  • available:真正可用内存(含缓存可回收部分)
  • buff/cache:内核缓冲区+页面缓存(可被快速回收)
  • -h 参数:人性化显示单位(GiB/MiB)

2. top/htop 命令

$ top
MiB Mem :   7852.2 total,   1176.8 free,    ...
MiB Swap:   2048.0 total,   2048.0 free
  • 实时刷新显示内存和进程数据
  • M按内存排序进程
  • htop提供更友好的交互界面(需安装)

3. /proc/meminfo 文件

$ grep -E 'MemTotal|MemFree|MemAvailable|Swap' /proc/meminfo
MemTotal:        8050448 kB
MemFree:         1205120 kB
MemAvailable:    5324560 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB

二、关键指标解读

指标说明健康标准
available应用可用内存>20% total
swap used交换空间使用量持续>0需警惕
buff/cache缓存占用高值正常(可回收)

三、最佳实践

  • 优先关注 available而非 free(free低但available高属正常)
  • 定期监控命令watch -n 5 'free -h'(每5秒刷新)
  • 排查内存泄漏:连续执行free观察 used 是否持续增长
  • 交换空间使用:Swap频繁读写说明物理内存不足

四、常见错误

  • ❌ 误判:看到 free 内存少就认为内存不足(忽略缓存可回收)
  • ❌ 混淆:buffers(块设备缓存) vs cache(文件页缓存)
  • ❌ 遗漏:未检查 Swap 使用导致OOM(Out-Of-Memory)风险

五、扩展知识

  • 内存回收机制:内核通过kswapd守护进程回收缓存
  • OOM Killer:内存耗尽时自动终止进程的机制
  • 高级工具
    - vmstat 2(查看内存/交换活动)
    - smem -s swap(进程内存排序)